Есть 2 нюанса
1. перенеси весь исполняемый код выше #8000
2. чего у тебя весь экран одного цвета?лодка должна быть белая
---------- Post added at 10:30 ---------- Previous post was at 09:45 ----------
ладно
раз уж дошли до момента когда надо рисовать спрайты
вот технология для быстрого сортирования обьектов
итак
создаем таблицу 256 байт (чтоб работать удобнее было)
можно конечно и поболее таблицу создать но это надо смотреть по месту
итак 256 байт
первые 12 байт - счетчики обьектов в строке
последующие 240 байт - данные по обьектам в строках
итак обрабатываем какойто обьект
например мину
в С - номер обьекта
ну или еще какой регистр
ld h,table_object/256
берем координату Y
делим на 16 получаем число 0 до 11
and #f0
rra
rra
rra
rra
ld l,a
inc (hl)
ld a,(hl)
add a,a
add a,(hl)
add a,a
add a,a
//умножаем на 12
add a,l
ld l,a
ld (hl),c //номер обьекта
и теперь обработка обьектов
ld hl,table_object
ld b,12
obj_
ld a,(hl)
берем количество обьектов
or a
jr nz,object_proceed
inc l
djnz obj_
object_proceed
ld b,a количество обьектов
ex de,hl
ld hl,12
add hl,de
hl - список обьектов
переход к следующему обьекту
add hl,12
естественно перед выходом hl восстановить
Другой вариант
в С - номер обьекта
ну или еще какой регистр
ld h,table_object/256
берем координату Y
делим на 32 получаем число 0 до 11
and #e0
ld l,a
inc (hl)
add a,(hl)
ld l,a
ld (hl),c
после отработки получается примерно такая таблица
#8000
#00,#00,#00,....
#8020
#01,#05,.......
#8040
#02,#01,#02,....
т.е строка 1 - координаты Y от 0 до 31 - 0 обьектов
строка 2 - координаты Y от 32 до 63 - 1 обьект ID5
строка 3 - координаты Y от 64 до 93 - 2 обьекта ID1 ID3
зачем это надо
для того чтобы при отрисовке перед лучом нарисовать сначала обьект №5 с координатой 32
а потом уже рисовать №1 с координатой 64 и №3 с координатой 90
ld hl,table_object
ld b,#8
obj_
ld a,(hl)
берем количество обьектов
or a
jr nz,object_proceed
ld a,l
add a,32
ld l,a
djnz obj_
object_proceed
ld b,a количество обьектов
inc l
hl = список обьектов




лодка должна быть белая
Ответить с цитированием