Pygame和多处理策略

时间:2013-06-22 11:22:44

标签: python multiprocessing pygame

我在pygame中开发游戏,我不知道哪些任务应该进入哪个过程。

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

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

在我的游戏中,我将不得不进行事件处理,碰撞检测,人工智能,绘图和重型计算(2D照明系统)。

我担心如果我在另一个进程上放了很多东西,主要的就必须等待输入,FPS会冻结。

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

1 个答案:

答案 0 :(得分:1)

the observer pattern

我建议使用以下架构来创建一个包含两个进程的PyGame:

您将程序分为两部分:

  1. <强>模型

    所有游戏逻辑都保存在子进程中,计算整个游戏。 只要有值得注意的变化,它就会通知另一个过程。

    职责:

    • 更新游戏,例如在循环中
    • 做物理
    • 向gui发送更新
  2. <强> GUI

    gui处于主要过程中,因为它开始了几场比赛。 当游戏开始时,它开始观察游戏的重要部分。

    责任

    • 处理用户输入,例如按下右箭头
    • 向模型发送修改,例如球员走向右边
    • 在收到更新时呈现模型元素的视图
  3. 请注意,我对PyGame的了解并不多。 但是可以保持模型和视图分开。

    您也可以查看MVC pattern。但它真的很重。如果程序不能跨计算机分发,只需合并View和Controller就足够了。

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