Python初学者碰撞检测问题

时间:2014-08-07 17:33:13

标签: python pygame collision

我是编码的初学者,我正在制作基本的平台游戏。在过去的几天里,我查看了许多不同的资源,并且无法获得清晰的图片。在这一点上,我很难从一个人的方法切换到另一个人的方法。     现在,我正在看这个Pygame tut。我收到以下错误:

  File ".../PlayerPlat.py", line 87, in <module>

hero = Player(400, 0)

  File ".../PlayerPlat.py", line 10, in __init__

  self.rect = pygame.rect(32, 32, 16, 16)

TypeError: 'module' object is not callable

代码如下:

    class Player(pygame.sprite.Sprite):

    def __init__(self, dx, dy):
        self.rect = pygame.rect(32, 32, 16, 16)
        self.image = pygame.image.load("hero.png")
        self.image.set_colorkey(white)

    def move(self, dx, dy):
        if dx!=0:
            self.move_single_axis(dx, 0)
        if dy!=0:
            self.move_single_axis(0,dy)

    def move_single_axis(self, dx, dy):
        self.rect.x +=dx
        self.rect.y +=dy

    hero = Player(400, 0)

为什么会出错?

2 个答案:

答案 0 :(得分:0)

不熟悉pygame,rect pygame.Rect(32, 32, 16, 16)应该大写,如{{1}} - 尝试一下。

答案 1 :(得分:0)

该方法使用大写 R 而不是小写r

self.rect = pygame.Rect(32, 32, 16, 16) # capital `R`