我正在用 pygame 开发游戏,但我不知道哪些任务应该转到哪个进程。
我有两个通过管道连接的进程,一个将有窗口,另一个将进行计算。
我的问题是:主循环的哪些部分应该转到另一个进程?
在我的游戏中,我必须进行事件处理、碰撞检测、人工智能、绘图和大量计算(2D 照明系统)。
恐怕如果我在另一个进程上放很多东西,主要的进程将不得不等待输入并且 FPS 将冻结。
PS:现在我刚刚开始编写游戏代码,所以我无法向您展示太多代码。
我正在用 pygame 开发游戏,但我不知道哪些任务应该转到哪个进程。
我有两个通过管道连接的进程,一个将有窗口,另一个将进行计算。
我的问题是:主循环的哪些部分应该转到另一个进程?
在我的游戏中,我必须进行事件处理、碰撞检测、人工智能、绘图和大量计算(2D 照明系统)。
恐怕如果我在另一个进程上放很多东西,主要的进程将不得不等待输入并且 FPS 将冻结。
PS:现在我刚刚开始编写游戏代码,所以我无法向您展示太多代码。
我建议使用以下架构来创建具有两个进程的 PyGame:
您将程序分为两部分:
模型
所有的游戏逻辑都保存在子进程中,计算整个游戏。每当有值得注意的变化时,它都会通知其他进程。
职责:
桂
gui 位于主进程中,因为它启动了几个游戏。当游戏开始时,它开始观察游戏的重要部分。
责任
请注意,我对 PyGame 的了解并不多。但是将模型和视图分开是可能的。
你也可以看看MVC 模式。但它真的很重。如果程序不应跨计算机分布,只需合并 View 和 Controller 就足够了。
然后我听说了MVVM 模式。不确定这是否太多了,因为您只需要将游戏分成两部分而不是三部分。