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