2つのスプライトを含むゲームループ内で1つのスプライトだけを移動しようとしています。私はを、Bit.update()
の方法に含めたので、wを押すとspr1.y -= 60
が表示されます。言い換えれば、wを押すと、spr1
だけが移動されることを期待して、スプライトはself
に割り当てられます。しかし、現在のコードでは、wを押すと、spr1
とspr2
の両方が移動します。更新方法でspr1
のみを参照して更新するにはどうすればよいですか?ゲームループ内の個々のスプライトを更新する
class Bit(games.Sprite):
def update(self):
if games.keyboard.is_pressed(games.K_w):
self = spr1
self.y -= 60
def main():
spr1_image = games.load_image("spr1.png")
spr1 = Bit(image = spr1_image,
x = games.screen.width/10,
y = games.screen.height/10)
spr2_image = games.load_image("spr2.png")
spr2 = Bit(image = spr2_image,
x = games.screen.width * 9/10,
y = games.screen.height * 9/10)
games.screen.add(spr1)
games.screen.add(spr2)
games.screen.mainloop()
main()
それはあなたがやろうとしているかは明らかではありません。とにかく各インスタンスはそれ自身を参照します。 'self.y'を呼び出すことは、' update'が呼び出されるインスタンスに対してのみ作用します。 –
wを押すと、両方のスプライトが移動します。私は、wを押すとspr1だけを動かすようにプログラムを書こうとしています。 – Astrophe