将游戏逻辑与渲染线程分开

时间:2019-07-13 14:53:02

标签: language-agnostic logic abstraction

我的游戏结构如下:

  • Engine具有包含PhysicsWorldEntity的属性 数组。

  • Entity的属性包含PhysicsBodySkinupdate()方法,将其Skin移至最新 PhysicsBody位置。

  • SkinPhysicsBody的视觉表示。他们是 两者都扩展为我们想要的形状,因此如果我们希望实体为 一个圆圈,我通常会同时创建一个CircleBody和一个CircleSkin并 将两者都分配给Entity

  • Engine每帧调用Game.PhysicsWorld.step(),然后调用 每个Entity.update()的{​​{1}},以便他们可以直观地反映 物理步进。

我对该游戏的抽象如何工作并不满意,我认为让游戏逻辑和渲染线程基本上对于每个Entity具有两个不同的属性并不是一个好的解决方案。我还认为Entity类及其与Skin类集成的方式并不理想。

如何更改游戏的结构,使其具有更好的抽象性并以更简洁的方式工作?

0 个答案:

没有答案