我正在为学校的一个项目构建回合制游戏“ Mancala”的Python实现。我已经从控制台通过I / O进行了基本的游戏。现在,我需要将带有Kivy的图形集成到项目中。
简而言之,游戏板继承了Kivy的file:///data/user/0/io.ionic.starter/files/mypdf.pdf
,而坑是Kivy的GridLayout
。我遇到的一个问题是,要运行Kivy应用程序,我需要调用Button
,并且此方法会无限期地运行。这是一个问题,因为我已经使用自己的循环器here实现了没有图形的基本游戏,因此,如果我运行Kivy应用程序,则整个程序将等待并实际上停止。
我的问题是如何将Kivy的循环(app.run()
)与自己的循环集成在一起。我曾考虑过通过按下按钮的app.run()
调用游戏的所有逻辑,但这是我不希望采用的设计。我想到的另一种解决方案是使用两个单独的线程,一个运行Kivy的循环,另一个运行我的循环,但是我对线程没有任何经验。
可以找到整个项目here(是的,我知道仓库的名称现在不正确:-))。 非常感谢!
答案 0 :(得分:1)
一种快速而肮脏的方法是,如果您在Kivy中使用Clock类来定期运行Game._turn()方法。
from kivy.clock import Clock
并且: Clock.schedule_interval(Game._turn,0.1)