【发布时间】:2023-01-21 00:04:57
【问题描述】:
我正在玩 Turtle 中的运动,我正在尝试让基本的 2D WASD 运动工作;我所说的一致是指相同的速度,没有滞后峰值和/或随机速度提升。这是我当前的代码:(我将键映射到字典以防止按键延迟)
import turtle
keys = {
"w": False,
"s": False,
"a": False,
"d": False
}
turtle.setup(800, 590)
turtle.delay(0)
turtle.tracer(0, 0)
wn = turtle.Screen()
player = turtle.Turtle()
player.speed(4)
def movement():
if keys["w"]:
player.goto(player.xcor(), player.ycor() + 3)
if keys["s"]:
player.goto(player.xcor(), player.ycor() - 3)
if keys["a"]:
player.goto(player.xcor() - 3, player.ycor())
if keys["d"]:
player.goto(player.xcor() + 3, player.ycor())
turtle.update()
def c_keys(key, value):
keys[key] = value
wn.onkeypress(lambda: c_keys("w", True), "w")
wn.onkeyrelease(lambda: c_keys("w", False), "w")
wn.onkeypress(lambda: c_keys("s", True), "s")
wn.onkeyrelease(lambda: c_keys("s", False), "s")
wn.onkeypress(lambda: c_keys("a", True), "a")
wn.onkeyrelease(lambda: c_keys("a", False), "a")
wn.onkeypress(lambda: c_keys("d", True), "d")
wn.onkeyrelease(lambda: c_keys("d", False), "d")
wn.listen()
while True:
movement()
任何帮助表示赞赏,谢谢!
【问题讨论】:
标签: python turtle-graphics python-turtle