问题描述
如果我不将它添加到类中,它可以完美运行,但是如果我这样做了它没有响应,我已经尝试使用 pygame.update,作为 pygame.event.pump/ get 甚至混乱是事件应该开始的,但问题仍然存在。我做错了什么?下面的代码
.
.
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])
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 函数中。