1

我正在用 pygame 开发游戏,但我不知道哪些任务应该转到哪个进程。

我有两个通过管道连接的进程,一个将有窗口,另一个将进行计算。

我的问题是:主循环的哪些部分应该转到另一个进程?

在我的游戏中,我必须进行事件处理、碰撞检测、人工智能、绘图和大量计算(2D 照明系统)。

恐怕如果我在另一个进程上放很多东西,主要的进程将不得不等待输入并且 FPS 将冻结。

PS:现在我刚刚开始编写游戏代码,所以我无法向您展示太多代码。

4

1 回答 1

1

观察者模式

我建议使用以下架构来创建具有两个进程的 PyGame:

您将程序分为两部分:

  1. 模型

    所有的游戏逻辑都保存在子进程中,计算整个游戏。每当有值得注意的变化时,它都会通知其他进程。

    职责:

    • 更新游戏,例如循环
    • 做物理
    • 向 gui 发送更新
  2. gui 位于主进程中,因为它启动了几个游戏。当游戏开始时,它开始观察游戏的重要部分。

    责任

    • 处理用户输入,例如按下右箭头
    • 向模型发送修改,例如玩家向右走
    • 收到更新时渲染模型元素的视图

请注意,我对 PyGame 的了解并不多。但是将模型和视图分开是可能的。

你也可以看看MVC 模式。但它真的很重。如果程序不应跨计算机分布,只需合并 View 和 Controller 就足够了。

然后我听说了MVVM 模式。不确定这是否太多了,因为您只需要将游戏分成两部分而不是三部分。

于 2013-06-22T12:36:39.710 回答