Нестандартный подход к построению уровней

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

Встроенный редактор не всегда бывает удобен, так как не позволяет "рисовать" (копировать объекты), зажав кнопку мышки.

Так как обычно каркас уровня состоит из невидимых solid-спрайтов определенного размера, почему бы не заменить их... пикселями?

В данном примере весь уровень 640х480 целиком нарисован в спрайте 32х24, который был растянут до нужного размера. Памяти он занимает столько же, сколько бы занимал, если бы это был простой блок, из которого копированием строили уровень, но зато теперь уровень можно рисовать прямо в редакторе изображений за считанные секунды!


Пара советов:

1. Реальный размер спрайта должен быть не произвольным, а кратным 2 из расчета размера уровня (чтобы один пиксель соответствовал спрайтам 16х16, 24х24, 32х32 или 64х64, в общем, минимальному размеру тайлов в вашем проекте). Таким образом, при дальнейшем оформлении уровня тайлами не будет проблем с разностью размеров. В данном примере спрайт в 20 раз меньше размеров уровня.

2. Для большего визуального удобства, можно в редакторе изображений расставлять пиксели разного цвета в тех местах, где должны находится какие-либо объекты (враги, бонусы, т.д.) После того, как объекты расставлены в лэйаут-едиторе, эти пиксели нужно будет удалить.

3. Для больших уровней лучше использовать несколько спрайтов

Enginer
Почему? Позволяет! Есть 2 варианта как расставлять объекты. 1 - С помощью зажатой клавиши "Contrl" и 2 - кликать по "Enter" во время переноса объекта с помощью курсора мышки.
А вообще, ваша идея мне понравилась. Очень экономит ресурсы.

tr0yQ
Это не совсем то. Много лишних действий. Речь шла о том, чтоб при движении мышки (при определенных зажатых клавишах) за ней появлялись копии, как это в GameMaker'е и некоторых других игровых редакторах.

У этого способа, кстати, есть один недостаток - если нужно будет прикрутить поведение физики, придется рисовать custom mask для всего уровня :D, и, помимо неудобства, я не уверен, что это хорошо отразится на производительности.