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