Эта конструкция не будет работать. LDD уменьшает HL на 1. Будешь рисовать первую строку спрайта 2 раза.
И вообще, дело тут совсем не в тактах, а в рациональном использовании возможнстей ассемблера.
--
По организации игры:
1) Нужна процедура которая рисует танк с заданными параметрами (X,Y,направление, цвет).
2) Определяемся сколько маскимально танков может быть на игровой локации и формируем статический список из параметров танков и флагом активности. Эта процедура должна будет отрисовывать весь список каждые N фреймов. Далее у нас логические процедуры будут работать уже с этим списком.
3) Карта. Задаём коодинату каждого танка типа word. Получается большой максимальный размер карты 8192 знакомест по X и по Y.
4) Задаём координаты окна проекции (X:word,Y:word). Процедура читает массив карты коодинат танков, пересчитывает координаты для окна (в экранные), а также устанавливает флаг активности для тех танков которые попали в область проекции. Процедура №2 этот список отрисовывает.
5) Игрок изменяет глобальные координаты танка, при этом отслеживаются границы проекции... как только танк у границы, изменяются координаты окна проекции. Процедура №4 все пересчитывает, экран сдвигается. Все танки перерисовываются.
Как-то так. Но это без логики ещё.





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