簡體   English   中英

有沒有一種方法可以使Python Tk畫布中的運動更流暢?

[英]is there a way to make movement smoother in the 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)

命名常量使更改它們和進行實驗變得更加容易,尤其是當在代碼中的多個位置使用相同的常量時。 在下面的代碼中,您只需要更改20一個副本即可進行實驗,如Bryan建議的那樣。

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])

在撰寫本文時,我借此機會展示了如何通過從更改的代碼中剔除通用代碼來使用字典來替換多個條件。 move調用中的*語法將元組分成兩個參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM