Artemis似乎是ECS的优秀框架,但文档至少可以说缺乏。我是ECS的新手,不知道我在做什么,但我想学习。
我的目标是在屏幕上画一些东西。我正在使用MonoGame和Visual Studio 2012(使用Artemis)。我花了很多时间通过StarWarrior代码搜索没有任何成功。我找不到SpatialFormComponent和我想绘制的东西之间的链接(例如PlayerShip)。
我对这个问题的最好猜测是我错误地使用了游泳池。所以我的两个问题:
1。阿耳忒弥斯的游泳池是什么? (AddComponentFromPool()做什么?)
2。如何使用Artemis在屏幕上绘制内容? (缺少的链接是什么?)
如果这个问题没有得到很好的研究,我很抱歉,但我向你保证。话虽这么说,如果你找到一个解决我的问题的来源(我怀疑你会),那么我欢迎这个问题。
答案 0 :(得分:4)
有点老问题,但我想回答。
Object Pool是一种设计模式,它通过重复使用一次创建的对象来帮助减少垃圾收集。当您使用对象时,您可以从池中获取它。如果您不再需要它,请将其放回池中,以便以后可以重复使用。在gamedev中使用对象池的最佳示例是粒子系统实现。
在ECS中有很多方法可以做到这一点。最简单的是创建一些RenderableComponent,放置一些基于这两个渲染的PositionComponent和RenderSystem。您可能会错过的事实是Artemis不提供任何渲染,它只是为了管理实体和系统。查看this wiki并点击底部以获取有关使用ECS的更多信息。