pygame无法正常检测KEYUP事件

运行系统:Windows10专业版
Python版本:3.9.7

我的代码:
主文件:

class Fire_Water_Fight:
    """管理游戏资源和行为"""

    def __init__(self):
        pygame.init()
        self.settings = Settings()

        self.screen = pygame.display.set_mode(
            (self.settings.screen_width, self.settings.screen_height))
        pygame.display.set_caption("Fire_Water_Fight")

        self.fire = Fire(self)
        self.water = Water(self)

    def run_game(self):
        """开始游戏的主循环"""
        while True:
            self._check_events()
            self._update_screen()
            self.water.update()
            
    def _check_events(self):
        """监视键盘和鼠标事件"""
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_RIGHT:
                    #向右移动水娃
                    self.water.moving_right = True
                elif event.type == pygame.KEYUP:
                    if event.key == pygame.K_RIGHT:
                        self.water.moving_right = False
    def _update_screen(self):
        """更新屏幕上的图像,并切换到新屏幕"""
        self.screen.fill(self.settings.bg_color)
        self.fire.blitme()
        self.water.blitme()

        #让绘制的屏幕可见
        pygame.display.flip()

if __name__ == '__main__':
    ai = Fire_Water_Fight()
    ai.run_game()

fire_water.py:

import pygame

class Fire:
    """管理火娃的类"""

    def __init__(self, ai_game):
        """初始化人物并设置初始位置"""
        self.screen = ai_game.screen
        self.screen_rect = ai_game.screen.get_rect()

        #加载图像并获取其外接矩形
        self.image = pygame.image.load('images/fire.bmp')
        self.rect = self.image.get_rect()

        #将人物放在指定位置
        self.screen_rect.midbottom

        #移动标志
        self.moving_right = False

    def blitme(self):
        """在指定位置绘制人物"""
        self.screen.blit(self.image, (180,850))

    

class Water:
    """管理冰娃的类"""

    def __init__(self, ai_game):
        """初始化人物并设置初始位置"""
        self.screen = ai_game.screen
        self.screen_rect = ai_game.screen.get_rect()

        #加载图像并获取其外接矩形
        self.image = pygame.image.load('images/water.bmp')
        self.rect = self.image.get_rect()


        #将人物放在指定位置
        self.screen_rect.midbottom

        #移动标志
        self.moving_right = False

    def blitme(self):
        """在指定位置绘制人物"""
        self.screen.blit(self.image, (1420,850))

    def update(self):
        """根据移动标志调整水娃的位置"""
        print(self.moving_right)
        if self.moving_right:
            self.rect.x += 1

主程序第27-33代码打错了

elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_RIGHT:
                    #向右移动水娃
                    self.water.moving_right = True
                elif event.type == pygame.KEYUP:
'''你这边缩进有问题,这部分代码向左边退4格(tab)
两个event.type的检测要对齐'''
                    if event.key == pygame.K_RIGHT:
                        self.water.moving_right = False