Окно Pygame зависает после запуска game_loop () - PullRequest
0 голосов
/ 27 августа 2018

Эй, это максимум У меня проблема, мой game_loop() работает около полсекунды, затем зависает, он не говорит, что не отвечает, или что-то просто не отвечает на все кнопки, кто-нибудь знает, что я сделал неправильно? Я определяю game_intro() и говорю, что если я нажму, введите [RETURN] start game_loop() и intro=False.

ЛЮБАЯ ПОМОЩЬ ОЧЕНЬ ЦЕНА:)

def game_loop():
global bot_x1
global bot_x2
global bot_y1
global bot_y2
global x
global y  
global running
pygame.display.update()
clock.tick(60)
pygame.display.update()

if running:
    pygame.display.update()
    pygame.display.update()

    for event in pygame.event.get():
            #CLOSE
            if event.type==pygame.QUIT:
                pygame.quit()
                pygame.quit()
                quit()

                  #MOVEMENT

##                if pygame.key.get_pressed()[pygame.K_LEFT] and x > 0:
##                    x-= selfspeed
##                     
##                if keys [pygame.K_RIGHT] and x < 710 :
##                    x+= selfspeed
##
##                if keys [pygame.K_UP] and y > 0:
##                    y-= selfspeed
##
##                if keys [pygame.K_DOWN] and y < 400:
##                    y+= selfspeed

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT and x > 0:
                    x-=selfspeed
                elif event.key == pygame.K_RIGHT and x < 710 :
                    x+=selfspeed
                elif event.key == pygame.K_UP and y > 0:
                    y-=selfspeed
                elif event.key == pygame.K_DOWN and y < 400 :
                    y+=selfspeed

#BOT MOVEMENT
            if bot_y2 > window_height:
                bot_y2 = 0
                bot_x2 = random.uniform(50,750) 

            if bot_y1 > window_height:
                bot_y1 = 0
                bot_x1 = random.uniform(50,750)                    

#SHOW PICTURES
    bot_y1+=botspeed
    bot_y2+=botspeed             
    window.fill(grey)
    bot_1(bot_x1,bot_y1)
    bot_2(bot_x2,bot_y2)
    plane(x,y)
    print("working")
    running=True

#UPDATE GAME DISPLAY+FPS
    keys=pygame.key.get_pressed()
    pygame.display.flip()
    clock.tick(30)

#GAME LOOP BROKEN CLOSE
game_intro()
game_loop()

1 Ответ

0 голосов
/ 27 августа 2018

Мой представитель недостаточно высок, чтобы комментировать, но есть довольно много деталей, которые вы недостаточно проясняете, например, что делает функция game_intro() или закрывается ли окно после зависания. Вы также ссылаетесь на переменную в своем объяснении, которая никогда не отображается в коде (intro = False). Но, исходя из предоставленного вами кода, похоже, что вы никогда не помещаете game_loop() в реальный цикл. Вместо ...

...
if running:
     pygame.display.update()
...

внутри вашего game_loop() попробуйте вместо этого

...
while running:
     pygame.display.update()
....

Если это по-прежнему не работает, попробуйте предоставить больше кода либо с обновленным вопросом, либо с помощью ссылки на вставку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...