User Tag List

Показано с 121 по 130 из 589

Тема: Sea Dragon

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Есть 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 = список обьектов
    Последний раз редактировалось jerri; 08.12.2009 в 11:53.
    С уважением,
    Jerri / Red Triangle.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Dizzy-AGE: Dragon Valley Dizzy
    от Rindex в разделе Dizzy-AGE
    Ответов: 82
    Последнее: 02.09.2011, 17:54
  2. New CEZ Silver game: Mariano the dragon
    от riskej в разделе Игры
    Ответов: 8
    Последнее: 16.05.2008, 13:37

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •