python - 在外星人入侵pygame中为什么这个错误显示 "' pygame.Rect'对象没有属性 'get_rect'“?

标签 python python-3.x pygame pygame-surface

在外星人入侵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

关于python - 在外星人入侵pygame中为什么这个错误显示 "' pygame.Rect'对象没有属性 'get_rect'“?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59632740/

相关文章:

javascript - 将 Javascript 示例中的暴力 Voronoi 图转换为 Python

python - 在Python中添加当前时间2小时并以时间戳打印时间

python - 尝试读取 docx 文件时出现 UnicodeDecodeError

python - Kivy:使用 kivy.storage.jsonstore 在另一个 JSON 对象中添加 JSON 对象

Python,tictactoe,语法错误

python - 如何将元组列表的字符串转换为 Python 元组列表

python - Pygame 简单程序测试显示卡住

python - 为什么我的代码无法访问 ENTER 或 STRAIGHT 文件夹或 .png 文件

python - 如何在 Django 的模型中将数字字符串存储为日期时间?

python - 在 Python 中将 scipy interp1d 数组转换为浮点值