【发布时间】:2011-07-06 06:51:09
【问题描述】:
存储实体的显示数据和实体的逻辑数据的好方法是什么?实体需要在单独的层上进行(例如,背景对象位于前景之后,或者敌人总是显示在子弹下方等)。问题是,您如何管理这些列表?
这看起来像一个合乎逻辑的解决方案吗?
我有一个 World 对象。 World 对象存储所有实体的列表。要创建一个新实体,您可以使用world.createEntity(type),当创建一个新实体时,世界会触发一个entityCreatedCallback 函数,通知所有侦听器一个新实体已创建。在我的PlayGameState 类中,我将一个侦听器附加到世界以进行侦听,当创建一个新实体时,我将该实体添加到适当的显示层以供稍后绘制。
然后在游戏循环中,我像这样级联:
allScreens.update() -> world.update() -> allEntities.update()
allScreens.draw() -> playGameScreen.draw() -> allLayers.draw()
这看起来合理吗?
【问题讨论】:
标签: language-agnostic architecture game-engine