2017-04-08 3 views
0

私は画面の周りを動くドットを作っていますが、方向を変えるときには一時停止(停止)しているようです。Python Tk canvasで動きをスムーズにする方法はありますか?

動きをスムーズにする方法や、方向を変更する際の遅延を防ぐ方法がありますか?ここで

は、私はそれを移動するために使用していますものです:

def keypress(event): 
    key = (event.keysym) 

    if key == "w": 
     canvas.move(player,0,-20) 

    if key == "a": 
     canvas.move(player,-20,0) 

    if key == "s": 
     canvas.move(player,0,20) 

    if key == "d": 
     canvas.move(player,20,0) 

canvas.bind_all("<Key>", keypress) 
+0

単純に少しずつ移動してみましたか?移動するたびに20ピクセル飛びます。 –

答えて

0

ネーミング定数と同じ定数はコード内の複数の場所で使用されている場合は特に、それが簡単にそれらと実験を変化させることができます。以下のコードでは、Bryan氏が提案したように、20のコピーを変更するだけでよいのです。

distance = 20 
movements = { 
    'w': (0, -distance), 
    'a': (-distance, 0), 
    's': (0, distance), 
    'd': (distance, 0), 
    } 

def keypress(event): 
    key = (event.keysym).lower() 
    canvas.move(player, *movements[key]) 

これを書いている間、私は変更コードから共通コードを因数分解することにより、複数の条件文を置き換えるために辞書を使用する方法を表示する機会を得ました。移動呼び出しの*構文は、タプルを2つの引数に分割します。

関連する問題