python中的pygame有关rect 和传参有关问题

python中的pygame有关rect 和传参有关问题,实在弄不明白,麻烦讲解一下谢谢!

import pygame
from pygame.sprite import Sprite

class Alien(Sprite):
    ''''''
    def __init__(self,ai_game):
        # 这里ai_game为主类的实例引用
        # 这个ai——game是与下面这个有关系么?
        # if __name__== "__main__":
        #     ai = AlienInvasion()
        #     ai.run_game()
        # 那为什么不直接引入ai这个参数,非要设定为ai_game?
        """"""
        super().__init__()
        self.screen = ai_game.screen
        self.settings = ai_game.settings
        self.image = pygame.image.load("images/ufo-4778062_960_720.png")
        self.image = pygame.transform.scale(self.image,(50,50))
        self.rect = self.image.get_rect()
        # 每个外星人最初都默认在屏幕左上角附近
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height
        # 每个外星人的左边距设置为外星人的宽度,并将上边距设置为外星人的高度
        # 这里我为了自己好理解,将self.rect.x改为了self.image_rect.x ,
        # 同样上面也做了更改self.image_rect = self.image.get_rect(),然后游戏窗口打开后直接闪退,没有报错
        # 这是为什么?
#他这个rect 为什么一定是rect,我自己编写的时候为了好区分用的image_rect,能不能麻烦好好给我讲一下这个rect用法
        self.x = float(self.rect.x)



这个继承pygame.sprite的Sprite类,他的系统代码内部就是使用self.rect的名字,继承下来也得使用self.rect的名字呀