расточительная трата драгоценных байт. Ведь мы адепты 48к.
---------- Post added at 23:32 ---------- Previous post was at 23:14 ----------
Мой хилоу-ворлд:
Перегнал тулзой в ДЭФы
Скрытый текст
[свернуть]
Исходник Пасцалевской проги:
Результат:Код:Program EX4; begin PutSpriteClear(gg1,7+2,25-14); end. GG1 DEFB 24 DEFB 0,2, 15,7,3,3,7,29,246,155 DEFB 0,3, 252,254,255,234,255,245,255,255 DEFB 0,4, 0,0,0,0,0,128,128,128 DEFB 1,1, 3,7,6,14,15,31,63,63 DEFB 1,2, 237,119,183,191,127,237,246,123 DEFB 1,3, 227,240,248,248,252,252,254,95 DEFB 1,4, 128,0,0,0,0,0,0,0 DEFB 2,1, 127,126,124,63,63,31,15,7 DEFB 2,2, 104,223,254,253,94,255,245,239 DEFB 2,3, 1,255,71,255,127,234,103,243 DEFB 2,4, 12,255,255,170,255,224,224,128 DEFB 2,5, 64,240,240,188,224,64,56,0 DEFB 3,1, 3,0,0,0,0,1,1,1 DEFB 3,2, 31,255,255,255,255,252,252,252 DEFB 3,3, 248,252,254,255,255,255,127,31 DEFB 3,4, 0,0,0,0,128,192,224,240 DEFB 4,1, 1,1,3,7,14,29,51,103 DEFB 4,2, 120,184,112,240,240,224,192,128 DEFB 4,3, 15,3,1,1,0,0,0,0 DEFB 4,4, 184,88,176,248,184,184,216,92 DEFB 5,0, 0,0,0,1,1,1,1,1 DEFB 5,1, 206,220,248,240,112,248,254,127 DEFB 5,4, 108,44,60,60,46,127,127,103 DEFB 5,5, 0,0,0,0,0,128,224,240
Скрытый текст
[свернуть]
В чём косяк?
отсутствуют байты атрибутов
---------- Post added at 23:24 ---------- Previous post was at 23:20 ----------
ты пиши пока с атрибутами, я потом редактну.
В принципе, планировал сделать флаг учета/не учета атрибутов в компиле. Но тоже отложил.
---------- Post added at 23:36 ---------- Previous post was at 23:24 ----------
Получилось?
Да... но синий инк, чёрный пэйпер по дэфолту.
---------- Post added at 02:30 ---------- Previous post was at 01:21 ----------
Вписал бесконечный цикл:
while true do begin
...
end;
В асм компилируется, а из асма в машинные коды - пишет: name _TRUE not defined
(на инструкции ld hl,(_TRUE) )
---------- Post added at 02:32 ---------- Previous post was at 02:30 ----------
А... на пасцале repeat же... Совсем всё позабывал.
while true do begin ... end должно работать
---------- Post added at 04:18 ---------- Previous post was at 04:18 ----------
Странно, что константу true скомпиленный код загружает из памяти.
Отзеркаливание спрайтов реализовано?
Или
?
---------- Post added at 10:29 ---------- Previous post was at 10:10 ----------
И ещё с обновлением картинки как быть?
Допустим, есть бэкграунд, поверх него рисуются спрайты по принципу PutSpriteClear (затирание значений на знакоместе новыми).
На следующем шаге для смещения спрайта что надо, чтоб избежать заметных морганий\мерцаний ?
В выражениях допускаются только числовые типы, тип boolean не реализован. Так что, пиши чё-нить такое:
while 1<2 do begin ... end
В асме есть несколько способов, некоторые из них:
1. Запоминать кусок фона под спрайтом, а потом обратно выводить.
2. Рисовать заново весь экран в памяти, а потом быстро копировать на экран (это когда много спрайтов сдвинулось).
На Паскале я не подумал над этим. Нуна бы get и put сделать.
Если у тебя фон состоит из элементов, попробуй выводить заново элементы.
---------- Post added at 13:09 ---------- Previous post was at 13:06 ----------
еще нет.
В общем, я собираю для следующей версии доработки.
то бишь просрётся ещё 7 кб ОЗУ... эх... так не хочется вырвиглазным XOR-ом делать.
Вот на движке Savage (dan dare, extreme) круто сделано. Причём всё с огромными (как для спектрума) спрайтами, всё динамично, да и умещается в 48 кб. Там тоже экран рисуется в буфер ОЗУ ?
---------- Post added at 14:21 ---------- Previous post was at 14:10 ----------
В общем-то, нынешний паскал для написания крестиков-ноликов вполне годится.
Но дабы наваять экшон, уже без асмовских процедур никак. Жаль. Рано обрадовался.
Предлагаю автору выделить работу со спрайтами в отдельную либу. zx82sprt.lib например. Если кто-то решит писать игру со своей спрайтовской либой (или воспользуется компилятором чтобы написать что-нибудь безспрайтовое) -- зачем ему грузить в память лишний код? Ещё нужна либа для работы с биперным звуком, это если для 48к. В дальнейшем (особенно если на этом писать что-то вроде Цивилизации) без поддержки разных вариантов 128к не обойтись, там потребуется и с АУ работать, и с дискетой.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)