User Tag List

Показано с 1 по 10 из 589

Тема: Sea Dragon

Комбинированный просмотр

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

    Регистрация
    17.06.2009
    Адрес
    Москва
    Сообщений
    401
    Спасибо Благодарностей отдано 
    421
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Спрайты

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    мне кажется, что если печатать шахты не в виде тайлов (даже стрип-тайлов), а с помощью специализированных процедур, которые максимально быстрым образом рисуют вертикальный столбик - то может быть удастся еще что-нибудь выиграть.
    К сожалению, печать идет строго по знакострокам чтобы пристраиваться за лучом. Поэтому - никак нельзя.

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    два набора данных,
    Идея хорошая, но в мою структуру данных ландшафта вряд ли впишется. На досуге подумаю.



    Насчет спрайтов.

    Естественно, чтобы печать шла по знакострокам, нужно заполнить буфер спрайтов в формате приблизительно: адрес процедуры печати знакостроки спрайта, адрес экрана для вывода, адрес спрайта.

    Есть 2 метода организации.

    1) Один буфер. Как только знакострока кончается, то в буфере вместо адреса процедуры ставим 0.
    В этом случае очень усложняется заполнение этого буфера, т.к. Нужно сначала спрайты разбить на объекты - знакоспрайты, потом их отсортировать по Y, потом уже заполнять последовательно буфер.
    2) На каждую знакостроку - свой буфер спрайтов. В этом случае спрайты не нужно сортировать. А, последовательно перебирая их, разбивать на объекты-знакоспрайты, и записывать сразу в буфер нужной знакостроки. Недостаток метода 2) - в том, что нужно держать указатели на окончания всех 20 буферов и при записи в буфер соответственно корректировать эти указатели.

    Сейчас подлодка печатается по методу 2). Получилось 1000 тактов на заполнение буфера. Много. Правда я еще не особо оптимизировал. Лодка имеет в высоту - 12 пикселей. В ширину - 5 знакомест. К тому же еще не применяется клиппинг.

    На обработку мин уйдет больше времени, т.к. там еще нужно обсчитывать клиппинг.

    Думаю мины можно не стирать, а печатать с маской поверх старого изображения, затирая маской соседние 2 пикселя справа и снизу.

    У кого какие мысли? Может еще есть какие способы, методы?

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,896
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    321
    Поблагодарили
    245 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение

    Думаю мины можно не стирать, а печатать с маской поверх старого изображения, затирая маской соседние 2 пикселя справа и снизу.

    У кого какие мысли? Может еще есть какие способы, методы?
    Код:
    pop hl,de,ix
    ld sp,hl
    ex de,hl
    dup 3
    pop bc
    ld a,(hl)
    xor c
    ld (hl),a
    inc h
    ld a,(hl)
    xor b
    ld (hl),a
    inc h
    edup
    pop bc
    ld a,(hl)
    xor c
    ld (hl),a
    inc h
    ld a,(hl)
    xor b
    ld (hl),a
    ld sp,ix
    ret
    
    эта процедура должна использоваться для отрисовки левого и правого края обьекта  (мины?) 
    для отрисовки середины можно использовать такую же, но просто с копированием  
    
    pop hl,de,ix
    ld sp,hl
    ex de,hl
    dup 3
    pop bc
    ld (hl),c
    inc h
    ld (hl),b
    inc h
    edup
    pop bc
    ld (hl),c
    inc h
    ld (hl),b
    ld sp,ix
    ret
    
    естественно перед тем как так рисовать 
    надо создать таблицу вида
    #8000 адрес_обработчика, адрес_спрайта, адрес_на экране, #8008
    #8008 адрес_обработчика, адрес_спрайта, адрес_на экране, #8010
    #8010 конец обработки строки
    вот это примерный алгоритм
    как создавать такую таблицу и как к ней обращаться - об этом чуть позже
    С уважением,
    Jerri / Red Triangle.

  4. #3

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    5,002
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    324
    Спасибо Благодарностей получено 
    328
    Поблагодарили
    250 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ace210 Посмотреть сообщение
    Думаю мины можно не стирать, а печатать с маской поверх старого изображения, затирая маской соседние 2 пикселя справа и снизу
    Да не "маской затирать", а просто разницу ксорить - примерно как у jerri
    Только зачем там 4 раза pop? С двойными строками нужно только 4 байта
    Разве что мины по-другому нарисовать (что все равно не стоит возни со стеком)
    Прихожу без разрешения, сею смерть и разрушение...

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

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

Эту тему просматривают: 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

Ваши права

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