C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C:设计基于组件的实体系统 – 高级问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的游戏引擎中,这是用C写的,我已经离开了古典的层次实体系统,并建立了一个基于组件的体系.它大致以这种方式工作:

实体只是组件的容器.一些示例组件是:Point,Sprite,Physics,Emitter.

每个实体最多可以容纳每种类型的一个组件.某些组件依赖于另一个组件,如Physics和Sprite依赖于Point,因为它们需要由其传递的位置和角度.

所以一切都适用于组件系统,但现在我无法实现更专业的实体,如:

>相机,需要附加功能来处理移动和缩放
>一个播放器,需要支持用户接收输入并移动

现在,我可以很容易地用继承来解决这个问题.只需从实体派生相机,并添加附加的缩放功能和成员.但这只是感觉错了.

我的问题:

>如何使用C中的组件系统解决专门实体的问题?

解决方法

你似乎怀疑这里的IS-A关系.那么为什么不使它成为HAS-A的关系呢?相机和播放器不是作为实体,而是可以是具有实体(或对实体的引用)但存在于组件系统之外的对象.这样,您可以轻松保持组件系统的均匀性和正交性.

这也很适合这两个例子(摄像机/播放器)作为“胶”对象的含义.播放器将实体系统粘贴到输入系统并充当控制器.相机将实体系统粘贴到渲染器,并作为一种观察者.

大佬总结

以上是大佬教程为你收集整理的C:设计基于组件的实体系统 – 高级问题全部内容,希望文章能够帮你解决C:设计基于组件的实体系统 – 高级问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。