2017-04-08 1 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]) 

, 나는 변화의 코드에서 공통의 코드를 감안하여 여러 조건문을 대체 할 딕셔너리를 사용하는 방법을 보여 할 수있는 기회를했다. 이동 호출의 * 구문은 튜플을 두 개의 인수로 분리합니다.

관련 문제