python学习 外星人入侵 右键不移动 什么原因(只有左键向左移动)?

如题所述

主要看看向右移动的地方的代码有没有问题:

        # è®¾ç½®å‘右移动flag
        self.move_right = False

 def listening_key_down(self, event):
        """
        ç›‘听key_down事件
        :param event:
        """
        if event.key == pygame.K_RIGHT:
            self.air_ship.move_right = True
        elif event.key == pygame.K_LEFT:
            self.air_ship.move_left = True
            
 def listening_key_up(self, event):
        """
        ç›‘听key_up事件
        :param event:
        """
        if event.key == pygame.K_RIGHT:
            self.air_ship.move_right = False
        elif event.key == pygame.K_LEFT:
            self.air_ship.move_left = False
            
    def move(self):
        """
        æ›´æ–°é£žèˆ¹æ¨ªè½´ä½ç½®ï¼Œå®žçŽ°å·¦å³ç§»åŠ¨
        """
        if self.move_right and self.air_ship_rect.right <= self.screen_rect.right:
            self.center += self.speed_factor        if self.move_left and self.air_ship_rect.left >= self.screen_rect.left:
            self.center -= self.speed_factor

        self.air_ship_rect.centerx = self.center
        
    def listening_game_event(self):
        """
        ç›‘听事件
        """
        for event in pygame.event.get():            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()            elif event.type == pygame.KEYDOWN:
                self.listening_key_down(event)            elif event.type == pygame.KEYUP:
                self.listening_key_up(event)
                
# æ¸¸æˆä¸»å¾ªçŽ¯
        while True:            self.listening_game_event()            self.air_ship.move()            self.update_game_screen()
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-13
同样问题,按右键,屏幕上不显示,其实是已经移动的了,屏幕上没有显示移动,怎么解决