Почему мое приложение PyGame вообще не работает?
Dec 12 2020
У меня простая программа Pygame:
#!/usr/bin/env python
import pygame
from pygame.locals import *
pygame.init()
win = pygame.display.set_mode((400,400))
pygame.display.set_caption("My first game")
Но каждый раз, когда я пытаюсь его запустить, получаю следующее:
pygame 2.0.0 (SDL 2.0.12, python 3.8.3)
Hello from the pygame community. https://www.pygame.org/contribute.html
И тогда ничего не происходит. Почему я не могу запустить эту программу?
Ответы
4 Rabbid76 Dec 12 2020 at 19:11
Ваше приложение работает хорошо. Однако вы не реализовали цикл приложения:
#!/usr/bin/env python
import pygame
from pygame.locals import *
pygame.init()
win = pygame.display.set_mode((400,400))
pygame.display.set_caption("My first game")
clock = pygame.time.Clock()
run = True
while run:
clock.tick(60)
# handle events
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
# update game objects
# [...]
# clear display
win.fill((0, 0, 0))
# draw game objects
# [...]
# update display
pygame.display.flip()
pygame.quit()
Типичный цикл приложения PyGame должен:
- обрабатывать события либо, pygame.event.pump()либо pygame.event.get().
- обновлять игровые состояния и позиции объектов в зависимости от входных событий и времени (соответственно кадров)
- очистить весь дисплей или нарисовать фон
- нарисовать всю сцену (
blit
все объекты) - обновите отображение либо, pygame.display.update()либоpygame.display.flip()
См. Также Цикл событий и приложений.