Спрайты - это просто :)

CALL'ы и RET'ы

Postby VBI » Sat, 06.09.2014 08:58:20

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

что нужно вообще спрайтам
1. закинуть в страницу спрайт, правильным макаром - как тайлы:
Спрайт - Набор из расположенных рядом тайлов. Размер задается произвольно в диапазоне 1-8 тайлов (8-64 пикселей) независимо для высоты и ширины.
не забывай о кратности адреса, кратности размера спрайта, и о том, что у тебя 16 цветов на спрайты, т.е. 4битный режим
тайлмап тебе не нужен!
2. указать какая страница для графики спрайта - в SGPage
3. TSConfig - включи спрайты, само собой
4. PalSel для палитры спрайта, сенкс Буяну, все палитры в SPAL дескриптора указываем, целиком готовую в 16 цветов.
5. готовим данные для дескрипторов спрайта

пример:
Code: Select all
spr1        db 0 - позиция по У
        db %00111110 - спрайт включен, Y Size: 111 (7=64точки)
        db 96 - Х
        db %00001110 - X Size - 7, 64 линии
        db 0 - позиция в странице графика (всё как тайлы - 8х8)
        db %00100000 - номер в палитре и позиция в тайлах.


потом забрасываем это всё в спрайтовый дескриптор - #200 той памяти. если это делать через дма, то для порта #27af юзаем биты #85

основная бука - http://tslabs.info/forum/viewtopic.php?f=35&t=157
и ексель, что поделаешь. библейа

и ещё: для примера - возьми рубик, там есть исходник <_<
смотри rubicon_spr_view, где logo_spr - дескриптор, а rubikon_logo_spr - данные портов и значений для дма
ещё спрайты там в Tunnel_part, там - spr_out, где spr1 - дескриптор, rubik_spr - данные портов и значений для дма
заметь, я всё дмой програмлю через подпрограмму set_ports, так удобно, лаконечнее, да и понятно.
User avatar
VBI
 
Posts: 1883
Joined: Mon, 03.06.2013 09:20:29

Return to Coding

Who is online

Users browsing this forum: No registered users and 1 guest

x