Подправил создание пуль, чтобы вылетали изнутри стреляющего, а не как раньше, возникали перед пушкой. Для спрея приделал костылёк, чтобы распылялось всё таки перед пушкой.
Когда покадрово сравнивал старую и новую анимацию выстрелов, внезапно заметил, что сама собой наладилась анимация попадания пульки от турели в землю. Раньше было так: 1 - рисовалась пулька , 2 - двигались её координаты, 3 - проверялось попадание, начало вспышки рисовалось в этом же кадре, 4 - потом уже смещался адрес. В результате был крестик, поверх которого точка, не OR, а LD, и получалась вертикальная палочка.
А сейчас я перенёс первый пункт после четвёртого, и такого налезания нет.
Прикладываю последнюю версию, но не пугайтесь, что Вторая заставка, красный "REX" подпорчена, это я на потом оставил поправить.
А пока взялся вникать, как рисуется статика. Оказалось, что в цикле, через стек читается адрес знакоместа в теневом экране и в "знакогенераторе", потом переносится 8 байт знака и так далее.
Данные для этого, что и куда переносить, готовятся при входе в экран. Всё закодировано 10х7 блоками, каждый состоит из 3х3 значков. Чтобы лучше понять что там, начал ляпать в Лазарусе просмоторщик уровней, с прицелом в дальнейшем на редактор.
Забавные вещи. Область в 30х21 байт выделена для того чтобы писать туда порядковый номер вывода на экран значка. И это потом нигде не используется. Наверное было для отладки, а потом забыли.
Чтобы умножить на 70, нужно все лишь семьдесят раз сделать "ADD HL,DE".
Переделать процедуру входа на экран планирую так:
1 Изменить цикл, чтобы шёл не блоками 3х3 а строками символов, для меньшего мерцания. Статику выводить прямо на экран. В команды писать вывод, опять-же на экран, статику, только ту, которая не статика, то есть всякие дёргающиеся стрелки, крутящиеся крутилки и ползающие элеваторы-транспортёры. Также сразу в те-же команды писать команды переноса строчек символов из теневого экрана в основной, те на которых могут быть спрайты.




Ответить с цитированием