0

我有几个精灵组检查彼此的碰撞,我想访问精灵组的一个成员的方法,如下所示......

for hit in pygame.sprite.groupcollide(badSprites, Missiles, 0, 1):
     hit.health(100)
     hit.printMessage("NO")

出于某种原因,该hit.printYes方法有效,但该方法hit.health给了我一个类型错误

TypeError:“int”对象不可调用

这是我的碰撞对象内部的方法......

def health(self, damage):
    self.damage = damage
    self.health -= damage
    return self.health
def printMessage(self, message):
    print(message)

正如你所看到的,我只想在物体与导弹碰撞时改变它的健康状况,但似乎我只能传递字符串而不是数字。我尝试将“100”作为字符串发送,然后在 health() 中输入强制转换,但这也不起作用。也许我的代码在其他地方是错误的。

4

1 回答 1

1

您不能拥有与属性同名的方法,请将方法更改为 set_health 或类似的东西

于 2013-06-05T21:20:34.437 回答