AttributeError:'播放器'对象没有属性' rect' (pygame的)

时间:2017-01-19 19:39:59

标签: python pygame

我创建了一个名为 Player 的类。我设法在屏幕上显示它(作为一个桨),但是当我试图移动它时(按下键盘上的向下箭头),游戏崩溃并且我留下了这个错误:

  

回溯(最近一次调用最后一次):文件

     

" C:/Users/Optimus/Desktop/PongGame.py" ;,第37行,

     

player.controlkeys()File" C:/Users/Optimus/Desktop/PongGame.py" ;,第23行,在控制键中

     

self.rect.move_ip(-50,0)AttributeError:' Player'对象没有属性' rect'

代码(班级):

class Player(object):
    def __init__(self):
        self.playerpaddle = pygame.rect.Rect((40,350,35,100))

    def controlkeys(self):
        key = pygame.key.get_pressed()
        if key[pygame.K_DOWN]:
            self.rect.move_ip(-50, 0)

    def draw(self, screen):
        self.draw = pygame.draw.rect(screen, white, self.playerpaddle)

pygame.display.update()

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()

    player = Player()
    player.draw(screen)
    player.controlkeys()
    pygame.display.update()

完整代码:http://pastebin.com/inwVgcsk。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的播放器对象只有一个您定义的属性: playerpaddle 。没有元素 rect 。但请注意, playerpaddle 的类型为 Rect 。我怀疑你想要的是

self.playerpaddle.move_ip(-50, 0)

您不是要移动特定的矩形 - 对象将具有类 Rect 的属性。

这能为你解决问题吗?