首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在基于组件的游戏架构中处理游戏对象数据?

如何在基于组件的游戏架构中处理游戏对象数据?
EN

Stack Overflow用户
提问于 2011-12-05 08:58:12
回答 1查看 543关注 0票数 2

我正在设计一个基于组件的游戏对象架构。在我的情况下,我有渲染器和物理对象。渲染场景包含可渲染对象。物理场景包含物理对象。我有一个游戏对象,它有一个可渲染对象和一个物理对象。其中每一个都是绝对零耦合的。它们甚至位于不同的库中。

游戏对象需要的最明显的数据之一是位置和旋转。可渲染对象和物理对象都需要读取此信息,在某些情况下还需要对其进行写入。有什么有效的方法来处理特定于游戏,而不是组件,但某些组件需要的信息?

EN

回答 1

Stack Overflow用户

发布于 2011-12-05 09:21:16

这对我来说似乎有点奇怪--你将不得不做很多工作来保持两个独立的场景图的同步,而且你可能会发现不可能让它们完全分散(你在问题中描述的情况只是一个例子,但还会有更多……)

我鼓励您考虑单个游戏对象图。您仍然可以为每个对象使用物理策略和渲染策略,但我建议您更多地将它们视为游戏对象的“插件”,而不是单独的对象图。这样,游戏对象可以具有可由物理组件和渲染组件访问的位置/旋转向量。

另一种方法是,如果你不想重新架构到一个单一的游戏对象图,可以将位置/旋转信息分离到一个单独的结构中,例如一个大的矢量数组。物理对象和渲染对象都可以共享对此结构的访问。

这意味着:

  • 物理对象和渲染对象都需要知道它们自己在数组中位置的索引(通过直接存储索引,或者通过某种形式的散列查找)
  • 物理对象和渲染对象都必须满足相同的位置/旋转格式
  • 在创建对象时必须进行一些额外的记账/

必须注意并发性,例如,如果在渲染发生时添加新的物理对象会发生什么?

总体而言,我不确定这对你有多大好处......但是,如果你有一些其他的约束,比如第三方物理库的设计,这可能是有意义的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8379924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档