В настоящее время я использую следующую библиотеку веб-сокетов для создания текстовой игры (MUD).Вот базовый код веб-сокета: https://github.com/Pithikos/python-websocket-server
В веб-сокете есть функция, называемая service_actions, которая зацикливается снова и снова .5s.
Я создал много рабочих вещейв игре, где объекты могут взаимодействовать, и вы можете распечатать результаты для соответствующих клиентов.
Однако проблема, с которой я сталкиваюсь, заключается в игровом цикле.Пока что мне это не нужно, потому что все работает реактивно.Если вы получаете предмет или стреляете из оружия, запускаются правильные функции и влияют на объекты.
Мне нужно регулярно проверять вещи, например: если игрок находится в одной комнате сNPC, то игра что-то делает.Единственный способ сделать это так же, как и многие другие подобные проверки, это постоянно проходить по игровым событиям.Я знаком с графиками.
К сожалению, я не могу найти способ сделать это.В библиотеке веб-сокетов есть функция "service_actions", которая зацикливается, как я описал, но веб-сокет импортируется в другие файлы, чтобы иметь возможность использовать его методы, такие как send_message и т. Д. Из-за этого яневозможно импортировать другие файлы игры в веб-сокет для запуска изнутри service_actions.
Каким образом можно было бы разработать игровой цикл, выполняющий то, что я изложил выше?Каким-то образом получить доступ к циклу service_actions или создать совершенно другой механизм цикла?
Я не многопоточен, если это поможет.