Tkinterを使用して小惑星のバージョン(https://en.wikipedia.org/wiki/Asteroids_(video_game))をプログラミングしています。これは先に移動する船を聞かせてコードの一部であるTkinter:キーボードのダブルクリック防止を削除する
:あなたが押すと
def avanti(self, event):
self.s = -2.5
x = self.s * math.sin(math.radians(self.angle)) * -1
y = self.s * math.cos(math.radians(self.angle))
self.move(x, y)
上矢印:
def move(self, sx=0, sy=0, ms=2):
try:
self.root.after_cancel(self.m)
except AttributeError:
pass
ms += 1
if ms > 30:
return
self.parent.move(self.ship, sx, sy)
self.m = self.root.after(ms, lambda sx1=sx, sy1=sy, millisec=ms: self.move(sx1, sy1, ms))
そしてここで、上矢印が押されたときに実行される実際のfuctionがありますコードがうまく機能していますが、唯一の問題は、船を一度動かしてから0.2秒のような小さな休憩があり、それから鍵を離すまで定期的に進めることです。私は、コンピュータがあなたが実際にしたいと思っているときに、あなたがダブルクリックするのを妨げると思っています。
最初のプレスからこのブロックを削除する方法はありますか?
EDIT:あなたが実際にキーボードの上に行くことによって計算された全体のタイピングの遅延を変更することができます - >遅延を入力しますが、私がやりたいことだけ Pythonプログラム上の遅延を削除することです。
あなたは変数すなわちを設定するために ''を使用することができます。 'move_up = True'と' 'を使って' move_up = False'を設定します。そして、 'after'を使って' move_up'とmoveオブジェクトをチェックする関数を実行することができます。 –
furas