我正在尝试使用pygame制作精灵,但是当我尝试运行主游戏循环时出现的错误是
AttributeError:'Paddle'对象没有属性'rect'
然而,对我而言,我似乎已经使用了 self.rect = self.paddle.get_rect()所以它应该意味着我已经初始化了它?这是代码:
import pygame
class Paddle(pygame.sprite.Sprite):
def __init___(self, screen):
pygame.sprite.Sprite.__init__(self)
self.paddle = pygame.Surface((100, 40))
self.paddle = self.paddle.convert()
self.paddle.fill((0, 0, 0))
self.rect = self.paddle.get_rect()
self.rect.left = 200
self.rect.top = 400
self.__screen = screen
self.__dx = 0
def change_direction(self, xy_change):
self.__dx = xy_change[0]
def update(self):
if ((self.rect.left > 0) and (self.__dx > 0)) or ((self.rect.left < self.__screen.get_width()) and (self.__dx < 0)):
self.rect.left -= (self.__dx*5)
感谢任何帮助!
答案 0 :(得分:0)
在init中,你在单词init之后有3个下划线,因此它永远不会被调用,单词init(__init__()
)的任一侧应该有2个