С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Слепленные буквы на заставке -- это уже традиция Sea Dragon, см. версию для Атари. Буквы нарисованы ландшафтом, поэтому как есть. Что касается обрисовки -- это явно снизит число вариантов комбинирования тайлов ландшафта. В общем, пока оставлю как есть.
---------- Post added at 20:23 ---------- Previous post was at 20:19 ----------
Пишу на асме в нотепаде.
Компилю и линкую пакетом RGBDS: http://www.otakunozoku.com/rednex-ga...opment-system/
В качестве редактора уровней используется Tiled: http://sourceforge.net/apps/mediawik...itle=Main_Page
Пара мелких утилит для конвертации написаны на C#.
Гоняю в эмуляторе VisualBoyAdvance.
---------- Post added at 20:44 ---------- Previous post was at 20:23 ----------
Некоторые технические детали.
У GameBoy довольно интересная организация экрана. Как таковой сплошной экранной памяти (как в БК или хотя бы как в ZX Spectrum) вообще нету. Отдельно лежат тайлы 8x8 в количестве до 192 штук. На экран выводится проекция аж трёх планов, снизу вверх: фона, окна и объектов (т.е. спрайтов). И фон и окно -- это матрицы 32x32 индексов тайлов. И для фона и для окна можно задать координаты от угла, с точностью до пиксела -- тем самым, полноэкранный скроллинг не стоит буквально ничего, значение в регистр занести! Объекты (они же спрайты) -- это те же тайлы, но для каждого спрайта задано положение с точностью до пиксела, и цвет 00 считается прозрачным. При этом можно создать до 40-ка спрайтов размером 8x8 либо 8x16 (размер одинаков для всех спрайтов). Каждому спрайту можно задать отражение по вертикали и/или горизонтали -- тоже даром, один битик взвести. Но в одной строке может быть не более 10-ти спрайтов.
В общем, получается вещь довольно удобная для разного рода платформеров и скроллеров -- загружаем кучу тайлов, набираем из них игровую сцену, сверху плюхаем подвижные спрайты. С другой стороны, работать с экраном как со сплошным полем -- довольно тяжело.
В Sea Dragon использую все три плана: фон скроллируется попиксельно, над ним статичные индикаторы в окне, а над этим всем подвижные спрайты.
Первая засада оказалась в том что окно, которое над фоном -- непрозрачно. Т.е. даже белые тайлы не позволяют увидеть под ними фон. Но оказалось, что можно ловить прерывание и перед каждой скан-строкой включать или выключать окно -- вывод строк окна приостанавливается или продолжается дальше.
У меня выводятся вверху 17 строк окна (верхние две строки надписей), затем 115 строк скроллируемого фона, затем ещё 12 строк окна (индикатор воздуха).
Получается, что высота видимой части фона -- примерно 14,5 знакомест. Поэтому ландшафт делается высотой в 15 тайлов. На хранении ландшафта не экономил, просто записываю линейно номера тайлов. Сейчас в целом ландшафт нарисован, занимает около 12 КБ.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)