我刚开始使用pygame,我只是想在屏幕上移动点。问题是它以快速的方式发生,并且在循环运行时我的pygame屏幕冻结(不响应),然后仅显示点的最后迭代位置。我认为更新发生得很快。
[当包含pygame.event.wait()
时,当我输入时,循环继续进行,我可以在窗口中实时跟踪点如何在屏幕上移动。但是,我希望它们在屏幕上移动而无需输入。
这是我的主循环:
def run(self):
self.food_spread()
self.spawn_animal()
for k in range(20000):
print(k)
for member in self.zoo:
self.move(member)
self.screen.fill(black)
for i in range(self.food_locations.shape[0]):
pygame.draw.rect(self.screen, white, (self.food_locations[i,1], self.food_locations[i,2],1,1))
for member in self.zoo:
pygame.draw.circle(self.screen, green,(member.location[0], member.location[1]), 2,1)
pygame.display.update()
pygame.event.wait()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
您有一个应用程序循环,请使用if。用pygame.time.Clock()
控制帧率。应用程序循环必须
pygame.time.Clock()
)例如:
clock.tick(60)