Python龟移动平台

时间:2017-12-06 19:55:55

标签: python while-loop turtle-graphics

我正在使用海龟进行Python游戏。

我有一个在按键上上下移动(跳跃)的玩家对象。我正在尝试添加一个移动平台,玩家必须跳上它。

我尝试将移动平台放在while循环中。问题是因为while循环正在运行以保持平台移动,程序不会检测到按键。

我尝试在主turtle.listen()循环中移动while,但这不起作用。

如何在while True循环中保持平台移动,让监听器处于活动状态?

# moving platform
while True:
    s13.backward(3)
    if s13.xcor() > 250:
        s13.setheading(0)
    if s13.xcor() < -200:
        s13.setheading(180)

...
turtle.listen()
turtle.onkey(jump, "Up")

感谢任何建议......

1 个答案:

答案 0 :(得分:1)

{0}}语句在像turtle这样的事件驱动环境中没有位置。至少有几种解决方案可供您使用。最直接的方法是使用turtle的内置while True:事件来使函数以固定(或可变)的间隔独立运行。

另一个选择是为程序引入线程。但是,由于turtle是基于tkinter的,你必须通过主线程引导所有图形操作,这使事情变得复杂。

尝试搜索StackOverflow:

  • python turtle ontimer

  • python turtle threading

一个粗略的例子:

ontimer()

平台来回漂浮。如果你点击向上箭头(点击窗口使其激活),你会看到平台在浮动时交换填充和轮廓颜色。