1

Artemis 似乎是一个出色的 ECS 框架,但至少可以说缺乏文档。我是 ECS 新手,不知道自己在做什么,但我想学习。

我的目标是在屏幕上画一些东西。我正在使用 MonoGame 和 Visual Studio 2012(与 Artemis)。我花了很多时间浏览 StarWarrior 代码,但没有任何成功。我找不到 SpatialFormComponent 和我想要绘制的东西(例如 PlayerShip)之间的链接。

我对这个问题的最佳猜测是我错误地使用了游泳池。所以我的两个问题:

1. 什么是阿尔忒弥斯的游泳池?(AddComponentFromPool() 有什么作用?)

2. 如何使用 Artemis 在屏幕上绘制一些东西?(缺少的链接是什么?)

如果这个问题似乎没有得到很好的研究,我很抱歉,但我向你保证它是。话虽如此,如果您找到解决我问题的来源(我怀疑您会),那么我欢迎反对。

4

1 回答 1

4

问题有点老了,但我想回答。

  1. 对象池是一种设计模式,它通过重用曾经创建的对象来帮助减少垃圾收集。当您使用对象时,您可以从池中获取它。当您不再需要它时,将其放回池中,以便以后可以重复使用。在 gamedev 中使用对象池的最佳示例是粒子系统实现。

  2. 在 ECS 中有很多方法可以做到这一点。最简单的就是创建一些RenderableComponent,放置一些PositionComponent 和基于这两者渲染的RenderSystem。您可能会错过的事实是 Artemis 不提供任何渲染,它只是用于管理实体和系统。查看此 wiki并在底部点赞以获取有关使用 ECS 的更多信息。

于 2014-08-24T08:29:15.227 回答