我的游戏结构如下:
Engine
具有包含PhysicsWorld
和Entity
的属性
数组。
Entity
的属性包含PhysicsBody
,Skin
和
update()
方法,将其Skin
移至最新
PhysicsBody
位置。
Skin
是PhysicsBody
的视觉表示。他们是
两者都扩展为我们想要的形状,因此如果我们希望实体为
一个圆圈,我通常会同时创建一个CircleBody
和一个CircleSkin
并
将两者都分配给Entity
。
Engine
每帧调用Game.PhysicsWorld.step()
,然后调用
每个Entity.update()
的{{1}},以便他们可以直观地反映
物理步进。
我对该游戏的抽象如何工作并不满意,我认为让游戏逻辑和渲染线程基本上对于每个Entity
具有两个不同的属性并不是一个好的解决方案。我还认为Entity
类及其与Skin
类集成的方式并不理想。
如何更改游戏的结构,使其具有更好的抽象性并以更简洁的方式工作?