Как должны выглядеть параметры добавляемого игрового объекта?

Предположим, что у нас есть функция, которая принимает два аргумента: имя объекта и сам объект (или его конструктор).
Функция, принявшая аргументы, создает игровой элемент, который состоит из:
1. одного спрайта размером в один тайл
— ширина и высота составляет один тайл, у него есть графический вид и анимация.
2. одного спрайта площадью в несколько тайлов
— задана ширина и высота, есть графический вид и анимация, которая занимает всю заданную площадь
3. нескольких спрайтов и имеет пустые зоны
— в заданной ширине и высоте есть разрывы, в которых при игровом процессе могут появляться другие объекты
— все тайлы могут иметь как одинаковый графический вид, так и свой индивидуальный.

Приведу примеры.
В первом варианте можно представить некоторого персонажа (например Марио), который перемещается по игровому миру.
Во втором — здание или большой танк, как в стратегиях.
А в третьем — здание с пристройкой или пулеметное гнездо в которое можно поместить пулеметчика, или деталь пазла.
  • Вопрос задан
  • 219 просмотров
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Обычно, делается с помощью "дерева" зависимостей.
Нужно различать "скелет", "шкуру", а так же поведенческий класс: роль в сюжете игры и обработка реакций на игровые события: попали в меня, вижу противника/препятствие в радиусе R и т.д.
Т.е. передавать для создания нужно:
1. Координаты
2. Дерево спрайт-объектов (идентификаторы спрайт-объектов, относительные координаты (от центра всего объекта), их центры вращения, зависимости преобразований при вращении объекта или каждого спрайта в отдельности)
3. Спрайт-карту для этого дерева (частично/полностью статичную или анимированную)
4. Имя поведенческого класса (роль объекта с обработкой реакции на игровые события)

Как правило не делают сложных зависимостей и всегда хватает обычных объектов и дальше делается из них attach/detach (то же самое дерево зависимостей координатных перемещений и поворотов), чтобы создать сложный (шагающий робот и т.п.).

Если пустое место должно чем-то быть заполнено, обычно не делают его реально пустым, а ставят другой идентификатор, указывающий, что там, например, слот для пулемёта. Но в тоже время не дают ему атрибут SOLID (непроходимый).

Тонкостей - ВАГОН)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы