在外星人入侵中 pygame 为什么这个错误显示“'pygame.Rect' object has no attribute 'get_rect'”?

In alien invation pygame why this error shows " 'pygame.Rect' object has no attribute 'get_rect' "?

外星人入侵pygame,为什么会出现下面的错误?

'pygame.Rect' object has no attribute 'get_rect'

import pygame
from pygame.sprite import Sprite

class Alien(Sprite):

    def __init__(self,ai_settings,screen):
        super().__init__()
        self.screen=screen
        self.ai_settings=ai_settings

        #alien image
        self.image=pygame.image.load('images/alien.bmp')
        self.rect=self.image.get_rect()

        #new alien near top of screen
        self.rect.x=self.rect.width
        self.rect.y=self.rect.height

        #alien's position
        self.x=float(self.rect.x)

    def blitme(self):
        self.screen.blit(self.image,self.rect)

    def check_edges(self):
        #true if alien at ages of screen
        screen_rect=self.screen.get_rect()
        if self.rect.right >= screen_rect.right :
            return True
        elif self.rect.left <= 0:
            return True

    def update(self):
        self.x += (self.ai_settings.alien_speed_factor * self.ai_settings.fleet_direction)
        self.rect.x=self.x

screen 是一个 pygame.Rect 对象,如前所述,它没有 get_rect 方法。您需要将 Surface 对象而不是 Rect 对象传递到屏幕。

参见:

https://www.pygame.org/docs/ref/display.html#pygame.display.set_mode