Построение пошаговой игры с Kivy - PullRequest
0 голосов
/ 10 марта 2019

Я строю на Python реализацию пошаговой игры «Манкала» для школьного проекта. У меня уже есть базовая игра с вводом / выводом из консоли. Теперь мне нужно интегрировать графику с Kivy в проект. Короче говоря, доска игры наследует GridLayout Киви, а ямы - Button Киви. Проблема, с которой я сталкиваюсь, заключается в том, что для запуска приложения Kivy мне нужно вызвать app.run(), и этот метод работает бесконечно долго. Это проблема, потому что я уже реализовал базовую игру без графики с моим собственным петлителем здесь , поэтому, если я запускаю приложение Kivy, вся программа просто ждет и практически останавливается. У меня вопрос, как мне интегрировать цикл Киви (app.run()) с моим собственным циклом. Я думал о вызове всей логики игры из on_press нажатой кнопки, но это дизайн, который я предпочитаю не использовать. Другое решение, о котором я подумал, - это использование двух отдельных потоков, один из которых запускает цикл Киви, а другой - мой цикл, но у меня нет никакого опыта работы с потоками.

Весь проект можно найти здесь (да, я знаю, что имя репо теперь неверно :-)). Большое спасибо!

1 Ответ

1 голос
/ 10 марта 2019

Быстрый и грязный способ - использовать класс Clock в Kivy для регулярного запуска метода Game._turn ().

from kivy.clock import Clock

И: Clock.schedule_interval (Game._turn, 0.1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...