2016-01-05 2 views
0

Я программирую свою первую игру в LibGDX, и часть игрового процесса имеет логику смешивания между элементами (подобно Doodle God или Little Alchemy). Прочитав и просмотрев гиды, я попытался разработать эту логику с помощью классов LibGDX Stage, Actor (для элементов) и Group (для организации элементов), но потом я понял, что для каждого элемента потребуется актер. Поскольку я намерен иметь более 150 из них, создание класса java для каждого из них действительно не оптимально. Я также не знаю эффективный способ хранения всей логики, поэтому я могу искать комбинации с одним вызовом (я не хочу писать миллионные if операторов в методе).Слишком много актеров в LibGDX?

Я хотел бы знать, есть ли простой и элегантный способ для этого. Заранее спасибо!

P.S .: Единственными отличиями между элементами являются их текстуры, группы, в которые они входят, и элементы, с которыми они объединяются.

ответ

1

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

Это требует сдвига в мышлении, как разрабатывать игры, но это того стоит, особенно для его модульности и многоразового использования.

В Википедии есть много detailed article about it.

И хорошо, что у libgdx есть Ashley, их реализация ECS.

0

Если вы можете, повторно использовать Актеры?

Если говорить о логике. Вы можете группировать логику и записывать функцию для каждой группы. Не используйте ifs, используйте переключатель и перечисления.

Возможно, если вы сообщите нам больше, мы сможем предложить что-то новаторское.

Смежные вопросы