私は子供のためのpythonという本を通して働いています。本書の最後のプロジェクトはプラットフォームゲームに関するものです。このゲームは、出口のためにスティックマンレースと呼ばれています。キャラクターを動かす方法(スティックマン)は、左または右を押すことです。左または右に移動します。しかし、ほとんどのゲームとは違って、あなたが鍵を離れると、彼は動き続けます。キーが離されたときに彼はどのようにして停止するのですか?ここでキーがPythonで押されたときにだけ文字を移動する方法。
は、コードのダウンロードへのリンクです:https://www.nostarch.com/pythonforkids
あなたが本からダウンロードサンプルコードを押すと、プログラムは章18フォルダ内の「stickmangame7」です。コードに間違ったビットを埋め込んだ場合に備えてこのリンクを含めました。また
class StickFigureSprite(Sprite):
def __init__(self, game):
Sprite.__init__(self, game)
self.images_left = [
PhotoImage(file="stick-L1.gif"),
PhotoImage(file="stick-L2.gif"),
PhotoImage(file="stick-L3.gif")
]
self.images_right = [
PhotoImage(file="stick-R1.gif"),
PhotoImage(file="stick-R2.gif"),
PhotoImage(file="stick-R3.gif")
]
self.image = game.canvas.create_image(200, 470, image=self.images_left[0], anchor='nw')
self.x = -2
self.y = 0
self.current_image = 0
self.current_image_add = 1
self.jump_count = 0
self.last_time = time.time()
self.coordinates = Coords()
game.canvas.bind_all('<KeyPress-Left>', self.turn_left)
game.canvas.bind_all('<KeyPress-Right>', self.turn_right)
game.canvas.bind_all('<space>', self.jump)
:
def turn_left(self, evt):
if self.y == 0:
self.x = -2
def turn_right(self, evt):
if self.y == 0:
self.x = 2
P.S.ここ
は正しいビットとすることができるいくつかの埋め込みコードであります私はあなたがpygameを使ってこれを行うことができると知っていますが、これは残りのpygameを使用していないので、それはうまくいくとは思いません。 turn_left()
とturn_right()
方法はself.x
を変更していることを私はいくつかのイベントループにこの値がx
軸上のあなたの「スティック」の動きを計算するのに使用されることを前提としています与えられたコードの残りの部分を見ずに
編集していただきありがとうございます。私はフォーマットがうまくいかないです。申し訳ありません。 –