Как ускорить время запуска в Pygame? - PullRequest
0 голосов
/ 22 июня 2019

Я начинаю писать игру, но всякий раз, когда я запускаю свой код, для загрузки требуется 2 минуты, и даже тогда некоторые методы не работают. Основные из них не работают - выход из pygame и drawGameScene ().

Мой код:

import  os, random
from pygame import *

init()

os.environ['SDL_VIDEO_WINDOW_POS'] = "%d, %d" %(0, 20)

scalefactor = 2

FPS = 60

screenWidth = round(224 * scalefactor)
screenHeight = round(298 * scalefactor)

size = screenWidth, screenHeight

screen = display.set_mode(size)

button = 0

RED = (255, 0, 0)
BLUE = (0,0,255)

STATEGAME = 1
STATEQUIT = 3

curState = STATEGAME

titleFont = font.SysFont("Times New Roman",45)

def drawText(words, screen,position, color, font):
    text = font.render(words, False, color)
    textSize = text.get_size()

    position[0] = position[0] - textSize[0]//2
    position[1] = position[1] - textSize[1]//2

    #centers the text
    screen.blit(text,position)

def gameRun():
    while curState != STATEQUIT:
        if curState == STATEGAME:
            drawGameScene()
            eventCheck()
            updater()

def eventCheck():
    for evnt in event.get():
        if evnt.type == QUIT:
            curState == STATEQUIT

def updater():
    pass

def drawGameScene():
    draw.rect(screen,RED,(0,0,screenWidth,screenHeight))
    drawText("High Score", screen, [0,0], BLUE, titleFont)
    display.update

gameRun()

display.flip()

сообщения об ошибках не выдаются Пожалуйста, помогите, это для проекта

1 Ответ

0 голосов
/ 22 июня 2019

Для выхода из пигмея:

Вы должны использовать код, приведенный ниже:

for events in event.get():

    if events.type == QUIT:

        pygame.quit()
        exit() #this is from sys module

Таким образом, ваша пигмейма прекращается с самого начала.Таким образом, вам ничего не нужно о curstate и т. Д.

Кроме того, вам нужно использовать оператор True, чтобы повторить процесс блитинга.

Полный код:

import os, random
from pygame import *
from sys import exit
init()
os.environ['SDL_VIDEO_WINDOW_POS'] = "%d, %d" %(0, 20)
scalefactor = 2
FPS = 60
screenWidth = round(224 * scalefactor)
screenHeight = round(298 * scalefactor)
size = screenWidth, screenHeight
screen = display.set_mode(size)
button = 0
RED = (255, 0, 0)
BLUE = (0,0,255)
titleFont = font.SysFont("Times New Roman",45)

def drawText(words,screen,position,color,font):
    text = font.render(words, False, color)
    textSize = text.get_size()
    position[0] = position[0] - textSize[0]//2
    position[1] = position[1] - textSize[1]//2
    #centers the text
    screen.blit(text,position)

def gameRun():
    drawGameScene()
    eventCheck()
    updater()

def eventCheck():
    for events in event.get():
        if events.type == QUIT:
            quit()
            exit()

def updater():
    pass

def drawGameScene():
    draw.rect(screen,RED,(0,0,screenWidth,screenHeight))
    drawText("High Score", screen, [0,0], BLUE, titleFont)
    #display.update()

while True:
    gameRun()
    display.flip()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...