User Tag List

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

Тема: Новый графический режим для игр

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

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

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Пример подпрограммы рисования спрайта с маской в режиме COLOR2M размером 24х24 точки по координатам, заданным в знакоместах. Спрайт в памяти хранится так: байт маски 1 линии в столбике, байт данных 1 линии в столбике, байт маски 2 линии в столбике, байт данных 2 линии в столбике, ... байт маски 24 линии в столбике, байт данных 24 линии в столбике. Затем аналогично записан второй и третий столбики спрайта.
    Код:
    ; перед выводом спрайтов устанавливаетя режим цвета color_mode = COLOR2M 
    ; и выбирается номер слоя current_layer для рисования
    ;
    ; hl - адрес спрайта 
    ; d - координата x в знакоместах
    ; e - координата y в знакоместах
    ; a - цвет спрайта, соответствует стандартному атрибуту Спектрума
    
    ld (attr), a ; устанавливаем цвет спрайта
    
    sla e ; вычисляем адрес младшего байта e в области пикселов
    sla e ; старший байт d соответствует координете x
    sla e
    
    push de ; сохраняем координаты начала столбика
    
    dup 24 ; рисуем 1 столбик спрайта высотой 24 байта         
    ldi         
    dec e         
    ldi         
    edup
    
    pop de ; восстанавливаем координаты начала столбика
    inc d ; переходим к столбику справа
    push de ; сохраняем координаты начала столбика
    
    dup 24 ; рисуем 2 столбик спрайта высотой 24 байта        
    ldi         
    dec e         
    ldi         
    edup
    
    pop de ; восстанавливаем координаты начала столбика
    inc d ; переходим к столбику справа
    
    dup 24 ; рисуем 3 столбик спрайта высотой 24 байта
    ldi         
    dec e         
    ldi         
    edup
    
    ret

    Пример подпрограммы рисования спрайта без маски в режиме COLOR1C размером 24х24 точки по координатам, заданным в знакоместах. Спрайт в памяти хранится так: байт данных 1 линии в столбике, байт данных 2 линии в столбике, ... байт данных 24 линии в столбике. Затем аналогично записан второй и третий столбики спрайта.
    Код:
    ; перед выводом спрайтов устанавливаетя режим цвета color_mode = COLOR1C 
    ; и выбирается номер слоя current_layer для рисования
    ;
    ; hl - адрес спрайта  
    ; d - координата x в знакоместах
    ; e - координата y в знакоместах
    ; a - цвет спрайта от 1 до 15
    
    ld (color), a ; устанавливаем цвет спрайта
    
    sla e ; вычисляем адрес младшего байта e в области пикселов
    sla e ; старший байт d соответствует координете x
    sla e
    
    push de ; сохраняем координаты начала столбика
    
    dup 24 ; рисуем 1 столбик спрайта высотой 24 байта         
    ldi         
    edup
    
    pop de ; восстанавливаем координаты начала столбика
    inc d ; переходим к столбику справа
    push de ; сохраняем координаты начала столбика
    
    dup 24 ; рисуем 2 столбик спрайта высотой 24 байта        
    ldi         
    edup
    
    pop de ; восстанавливаем координаты начала столбика
    inc d ; переходим к столбику справа
    
    dup 24 ; рисуем 3 столбик спрайта высотой 24 байта
    ldi         
    edup
    
    ret

    Пример подпрограммы стирания спрайта размером 24х24 точки по координатам, заданным в знакоместах.
    Код:
    ; перед стиранием спрайтов устанавливаетя режим цвета color_mode = COLOR1C, 
    ; цвет для стирания color = 0 и выбирается номер слоя current_layer для стирания
    ;
    ; d - координата x в знакоместах
    ; e - координата y в знакоместах
    
    sla e ; вычисляем адрес младшего байта e в области пикселов
    sla e ; старший байт d соответствует координете x
    sla e
    
    ld a, #FF; байт для стирания - стираем все 8 точек в байте
    
    dup 24 ; стираем 1 столбик спрайта высотой 24 байта сверху-вниз     
    ld (de),a
    inc e        
    edup
    
    inc d ; переходим к столбику справа
    
    dup 24 ; стираем 2 столбик спрайта высотой 24 байта снизу-вверх        
    dec e
    ld (de),a
    edup
    
    inc d ; переходим к столбику справа
    
    dup 24 ; стираем 3 столбик спрайта высотой 24 байта сверху-вниз           
    ld (de),a
    inc e        
    edup
    
    ret
    Последний раз редактировалось zx-kit; 25.09.2015 в 05:56.
    "L-256"

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

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

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

Похожие темы

  1. Ответов: 18
    Последнее: 11.04.2021, 10:54
  2. графический редактор
    от yur в разделе Вектор
    Ответов: 1
    Последнее: 08.11.2012, 13:01
  3. графический режим на Атари
    от goblinish в разделе Atari
    Ответов: 3
    Последнее: 06.01.2012, 11:19
  4. графический софт для 48 К
    от goglus в разделе Софт
    Ответов: 6
    Последнее: 02.08.2006, 15:33

Ваши права

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