AttributeError:“Player”对象没有属性“rect”(PyGame)

2024-05-23 23:42:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我上了一个名为Player的课程。我设法在屏幕上显示它(作为一个划子),但当我试图移动它(按下键盘上的箭头)时,游戏崩溃,我留下了这个错误:

Traceback (most recent call last): File

"C:/Users/Optimus/Desktop/PongGame.py", line 37, in

player.controlkeys() File "C:/Users/Optimus/Desktop/PongGame.py", line 23, in controlkeys

self.rect.move_ip(-50, 0) AttributeError: 'Player' object has no attribute '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。 我做错什么了?在


Tags: keyinrectselfeventdefscreenpygame
1条回答
网友
1楼 · 发布于 2024-05-23 23:42:17

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

self.playerpaddle.move_ip(-50, 0)

您并不是要移动一个特定的矩形,它的对象将具有类Rect的属性。在

这样你就清楚了吗?在

相关问题 更多 >