我正在使用海龟进行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")
感谢任何建议......
答案 0 :(得分:1)
{0}}语句在像turtle这样的事件驱动环境中没有位置。至少有几种解决方案可供您使用。最直接的方法是使用turtle的内置while True:
事件来使函数以固定(或可变)的间隔独立运行。
另一个选择是为程序引入线程。但是,由于turtle是基于tkinter的,你必须通过主线程引导所有图形操作,这使事情变得复杂。
尝试搜索StackOverflow:
python turtle ontimer
python turtle threading
一个粗略的例子:
ontimer()
平台来回漂浮。如果你点击向上箭头(点击窗口使其激活),你会看到平台在浮动时交换填充和轮廓颜色。