私は、スペースバーを押したときに剣を表示させると、私はキー5を打ったときに消えしようとしています。
if event.type == pg.KEYUP:
if event.key == pg.K_ESCAPE:
self.quit()
if event.key == pg.K_SPACE:
self.sword = Sword(self, self.player.rect.centerx-7, self.player.rect.bottom, self.player)
if event.key == pg.K_5:
self.sword.kill()
私は最初の剣がどんな問題なく表示されたり消えたりすることができますが、私はもう一度スペースキーを押ししようとすると、私はこのエラーメッセージが表示されます:
File "/Users/(User)/Desktop/ZeldaGame/sprites.py", line 183, in __init__
self.image.set_colorkey(WHITE)
AttributeError: 'Sword' object has no attribute 'set_colorkey'
ここに私の剣クラスは次のとおりです。
class Sword(pg.sprite.Sprite):
def __init__(self, game, x, y, entity):
self.groups = game.all_sprites
pg.sprite.Sprite.__init__(self, self.groups)
self.game = game
self.image = self.game.sword
self.image.set_colorkey(WHITE)
self.rect = self.image.get_rect()
self.x = x
self.y = y
self.rect.x = x
self.rect.y = y
if entity.direction == 'down':
self.image = pg.transform.rotate(self.image, -90)
def update(self):
kill()
誰の助けが私には、表示され消えて、何度も繰り返し現れるとする剣ができるようにするだろうか?
警告:私はpygameのダウンロードについては何も知りません。
あるかのように思えるgame.sword
最初は非常に最初の剣が作成される前に、あるpygame.Surface
あなたは、コードの一部を示さなかったので、これは単なる推測です-オブジェクト。(set_colorkey
ように思わpygame.Surface
方法、そしてあなたが呼び出すことができるという事実によってSword.__init__
、エラーなしで初めてのことを私に告げるgame.sword
最初になければなりませんpygame.Surface
それ以外の場合は、オブジェクトself.image.set_colorkey(WHITE)
エラーが発生します)。
次に、あなたがスペースバーを押して二回目は、game.sword
に参照のうえされSword
、あなたが実行するので、オブジェクトself.sword = Sword(...
あなたは、スペースバーを押す初めて。あなたは二刀のを入力して__init__
、今game.sword
を指しSword
、ではありませんpygame.Surface
。Sword
sがありませんset_colorkey
(私は推測しているが故に方法、エラーをpygame.Sprite
継承しませんpygame.Surface
)。