我试图使立方体能够加速和减速在所有4个方向使用箭头键。我能解出1个方向(向上),但我不知道如何在其他3个方向上。基本上,我只需要它做我现在的代码做的事情,只是在所有4个方向。你知道吗
from tkinter import *
SPEED = 1
def handle_key(event):
sym = event.keysym
print(sym)
cdx, cdy = 0, 0
if sym == 'Up':
dy.set(dy.get()-SPEED)
elif sym == 'Down':
dy.set(SPEED)
elif sym == 'Right':
cdx = SPEED
elif sym == 'Left':
cdx = -SPEED
dx.set(cdx)
def animate():
canvas.move(player, dx.get(), dy.get())
if dy.get() < 0:
dy.set(min(dy.get() + .12, 0))
canvas.after(1, animate)
root = Tk()
dx = DoubleVar()
dy = DoubleVar()
canvas = Canvas(root, width=800, height=600)
canvas.pack()
player = canvas.create_rectangle(395, 590, 405, 600, fill='red')
canvas.bind('<Key>', handle_key)
canvas.focus_set()
animate()
root.mainloop()
您的代码几乎没有问题,例如函数
animate()
将连续运行,即使没有按键事件。另外,代码可以更好,比如可以使用<KeyPress>
加速,<KeyRelease>
减速。我给你举了个例子。你知道吗我使用
after(1,..)
来平滑地加速和减速,因为连续的按键有一些明显的延迟。你知道吗相关问题 更多 >
编程相关推荐