Что такое бассейн Артемиды?

Артемида кажется отличной основой для ECS, но, по крайней мере, документации не хватает. Я новичок в ECS и понятия не имею, что я делаю, но я хочу учиться.

Моя цель - нарисовать что-то на экране. Я использую MonoGame и Visual Studio 2012 (с Artemis). Я провел много часов, просматривая код StarWarrior без какого-либо успеха. Я не могу найти связь между SpatialFormComponent и тем, что я хочу нарисовать (например, PlayerShip).

Мое лучшее предположение для проблемы - то, что я использую бассейн неправильно. Итак, мои 2 вопроса:

1. Что такое бассейн в Артемисе? (Что делает AddComponentFromPool()?)

2. Как мне нарисовать что-то на экране с помощью Артемиды? (Что за недостающее звено?)

Прошу прощения, если этот вопрос не выглядит хорошо изученным, но я вас уверяю, что это так. При этом, если вы найдете источник, который решает мою проблему (я сомневаюсь, что вы будете), то я приветствую отрицательные отзывы.

1 ответ

Вопрос немного староват, но мне хочется ответить.

  1. Object Pool - это шаблон проектирования, который помогает сократить сбор мусора за счет повторного использования созданных объектов. Когда вы используете объект, вы получаете его из пула. Когда он вам больше не нужен, поместите его обратно в пул, чтобы позже его можно было использовать повторно. Лучший пример использования пулов объектов в gamedev - реализация системы частиц.

  2. Есть много способов сделать это в ECS. Самое простое - это создать некоторый RenderableComponent, поместить несколько PositionComponent и RenderSystem, которые рендерится на основе этих двух. Тот факт, что вы можете пропустить это, заключается в том, что Артемида не предоставляет никакого рендеринга, она просто управляет сущностями и системами. Посмотрите эту вики и лайки внизу, чтобы получить больше информации об использовании ECS.

Другие вопросы по тегам