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)