使用Turtle实现流畅稳定的WASD移动问题求助
Turtle实现流畅稳定的WASD移动问题求助
大家好,我正在用Python的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()
希望有经验的小伙伴能帮我看看问题出在哪,非常感谢!
备注:内容来源于stack exchange,提问作者bread
相关产品推荐
相关产品推荐

