Python Pygame没有响应!尽管调用事件并更新屏幕
如果我不将它添加到类中,它将非常有效,但如果我添加了它,它将不会响应,我尝试使用pygame.update,因为pygame.event.pump/get甚至是jumbling都应该从事件开始,但问题仍然存在。我做错了什么?下面的代码Python Pygame没有响应!尽管调用事件并更新屏幕,python,pygame,pygame-surface,Python,Pygame,Pygame Surface,如果我不将它添加到类中,它将非常有效,但如果我添加了它,它将不会响应,我尝试使用pygame.update,因为pygame.event.pump/get甚至是jumbling都应该从事件开始,但问题仍然存在。我做错了什么?下面的代码 . . class start_game: def __init__(self,path,width = 400,height = 600): self.width = width self.height = height
.
.
class start_game:
def __init__(self,path,width = 400,height = 600):
self.width = width
self.height = height
self.head = None
self.running = False
self.path = path
pygame.init()
pygame.mixer.init()
self.background = load_img(self.path + '\AnimatedStreet.png')
self.enemy = pygame.image.load(self.path + '\Enemy.png')
self.backg0_pos = [0,0]
self.screen = pygame.display.set_mode((self.width,self.height))
def _run(self):
self.running = True
while self.running:
#pygame.event.pump()
self.screen.fill([0,0,0])
self.screen.blit(self.background, self.backg0_pos)
pygame.display.flip()
pygame.display.update()
self.backg0_pos[1] += 1
self._init_controls()
return
def _init_controls(self):
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_RIGHT:
self.player_pos[0] += 5
if event.key == K_q:
pygame.quit()
return
a = start_game(path)
a._run()
错误是while循环中的返回函数导致它停止。
解决方案是将return函数放在run函数中。您的while循环在第一个循环之后结束,因为您将“return”放在循环中。这就是问题所在。另外,您应该使用flip()或update(),而不是两者都使用。您可以在应用程序中执行
返回操作loop@Starbuck5谢谢你,这样就好了,我怎么会错过呢!