使用Kivy构建回合制游戏

时间:2019-03-09 21:34:04

标签: python kivy

我正在为学校的一个项目构建回合制游戏“ 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(是的,我知道仓库的名称现在不正确:-))。 非常感谢!

1 个答案:

答案 0 :(得分:1)

一种快速而肮脏的方法是,如果您在Kivy中使用Clock类来定期运行Game._turn()方法。

from kivy.clock import Clock

并且:     Clock.schedule_interval(Game._turn,0.1)