0

互いに衝突をチェックするスプライト グループがいくつかあり、次のようにスプライト グループの 1 つのメンバーのメソッドにアクセスしたい...

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 に答える