微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pygame 没有响应!尽管调用事件和更新屏幕

如何解决Pygame 没有响应!尽管调用事件和更新屏幕

如果我不将它添加到类中,它可以完美运行,但是如果我这样做了它没有响应,我已经尝试使用 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 函数中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。