飞机大战无法运行,如何解决?

飞机大战无法运行,不知道错误在哪?
这是主程序

import sys
import pygame
from rocket import Rocket
from zidan import Zidan

class Game:

    def __init__(self):
        pygame.init()
        #设置游戏窗口大小
        self.screen = pygame.display.set_mode((1200,800))
        #设置游戏窗口名称
        self.screen_name = pygame.display.set_caption("开始游戏")
        #设置游戏窗口背景
        self.bj_color = (255,255,255)
        #设置Rocket实例
        self.rocket=Rocket(self)
        #创建用于存储子弹的编组
        self.zidans=pygame.sprite.Group()
        #self.zidan=Zidan(self)

    #游戏主循环
    def run_game(self):
        while True:
            self._update_key_event()
            #self.rocket.hua()
            self.zidans.move_zidan()
            self._update_screen()
            self.rocket.move()
    def _update_key_event(self):
        #更新按键状态
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                self._check_keydown_event(event)
            elif event.type == pygame.KEYUP:
                self._check_keyup_event(event)


    def _check_keydown_event(self, event):
        #按键按下
        if event.key == pygame.K_q:
            sys.exit()
        elif event.key == pygame.K_SPACE:
            new_zidan = Zidan(self)
            self.zidans.add(new_zidan)
        elif event.key == pygame.K_LEFT:
            self.rocket.move_left = True
        elif event.key == pygame.K_RIGHT:
            self.rocket.move_right = True

    def _check_keyup_event(self,event):
        # 按键抬起
        if event.key == pygame.K_LEFT:
            self.rocket.move_left = False
        if event.key == pygame.K_RIGHT:
            self.rocket.move_right = False

    def _update_screen(self):
        #更新屏幕状态
        self.screen.fill(self.bj_color)
        self.zidans.move_zidan()
        for zhidan in self.zidans.sprites():
            zhidan.hua_zidan()
        print(len(self.zidans))
        pygame.display.flip()



if __name__ == "__main__":
    a=Game()
    a.run_game()

import pygame


class Rocket:

    def __init__(self,shili):

        self.screen=shili.screen
        self.screen_rect=shili.screen.get_rect()

        self.image=pygame.image.load("images/arm1.bmp")
        self.image_rect=self.image.get_rect()

        self.image_rect.midbottom=self.screen_rect.midbottom

        self.move_right=False
        self.move_left=False

    def hua(self):
        self.screen.blit(self.image,self.image_rect)

    def move(self):
        if self.move_right and self.image_rect.right<=self.screen_rect.right:
            self.image_rect.x+=1
        if self.move_left and self.image_rect.left>=0:
            self.image_rect.x-=1



```python
import pygame
from pygame.sprite import Sprite



class Zidan(Sprite):
    def __init__(self,shili):
        super().__init__()
        self.zd_color=(255,0,0)
        self.zd_height=15
        self.zd_width=3
        self.screen = shili.screen
        self.zidan_rect=pygame.Rect(0,0,self.zd_width,self.zd_height)
        self.zidan_rect.midtop=shili.rocket.image_rect.midtop
        self.y = float(self.zidan_rect.y)

    def move_zidan(self):
        self.y-=1
        self.zidan_rect.y=self.y

    def hua_zidan(self):
        pygame.draw.rect(self.screen,self.zd_color,self.zidan_rect)



不是空行的问题呀,出现的是这个错误

pygame 2.1.2 (SDL 2.0.18, Python 3.8.10)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
  File "C:\Users\xcz000\PycharmProjects\pythonProject\game.py", line 73, in <module>
    a.run_game()
  File "C:\Users\xcz000\PycharmProjects\pythonProject\game.py", line 27, in run_game
    self.zidans.move_zidan()
AttributeError: 'Group' object has no attribute 'move_zidan'