Por que meu aplicativo PyGame não está funcionando?
Dec 12 2020
Tenho um programa Pygame simples:
#!/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")
Mas sempre que tento executá-lo, recebo o seguinte:
pygame 2.0.0 (SDL 2.0.12, python 3.8.3)
Hello from the pygame community. https://www.pygame.org/contribute.html
E então nada acontece. Por que não consigo executar este programa?
Respostas
4 Rabbid76 Dec 12 2020 at 19:11
Seu aplicativo funciona bem. No entanto, você não implementou um loop de aplicativo:
#!/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()
O loop de aplicativo PyGame típico deve:
- manipular os eventos por pygame.event.pump()ou pygame.event.get().
- atualizar os estados do jogo e as posições dos objetos dependentes dos eventos de entrada e do tempo (respectivamente frames)
- limpar toda a tela ou desenhar o fundo
- desenhe a cena inteira (
blit
todos os objetos) - atualize a exibição por pygame.display.update()oupygame.display.flip()
Veja também Evento e loop de aplicação
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?