|
-+++++++++++++++++++++++++++++++++++++++- КОДИНГ -+++++++++++++++++++++++++++++++++++++++- Закодено by Sokol/Infotek Бросаю сюды процедуру вывода спрай- тов, с точностью до пиксела от самого Славы Медноногова; кстати применяемую в Чёрном Вороне: ;E-маска,D-байт спрайта, HL- по- зиция в экране. НЕЗ LD A,E ;вывод маски по AND RRCA RRCA RRCA RRCA LD C,A AND #1F AND (HL) LD (HL),A LD A,C AND #E0 INC L AND (HL) LD (HL),A ; LD A,D ;вывод спрайта по OR RRCA RRCA RRCA LD C,A AND #E0 OR (HL) LD (HL),A LD A,C AND #1F DEC L OR (HL) LD (HL),A Пример взят из ЧВ. Что там было в НЛО-2 - я смутно помню :))) Могу дополнить: а) для скорости выборка спрайта - стеком (т.е. этот кусок предваряется POP DE). Соответственно, спрайт хранится - "байт маски", "байт изображения","байт маски", "байт изображения","байт маски", "байт изображения"... б) завершается этот кусок, конечно, командами по организации цикла (переходом к след. строке экрана). в) поэтому для унификации вывода спрайты любой ширины хранятся по столбцам г) всего таких п/п - 8 штук. Если не- обходимо обрезать спрайты по правой/левой границе экрана - будет ещё 8+8 п/п д) (в примере маска/спрайт выводятся по AND/OR, однако на самом деле я в ЧВ вывожу по OR/XOR :))) Хотелось бы узнать (у демомейкеров, конечно :) - возможно ли выводить быстре- е? В голову лезет мысль хранить заранее все сдвиги на все байты (получим два бай- та), но только табличка будет 256*8*2 =8-[ ] (c)Copper Feet
Other articles:
|
|
|
|
|
|
Similar articles:
В этот день... 21 November