User Tag List

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

Тема: Вывод спрайта любой ширины с точностью до пикселя.

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

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

    Регистрация
    22.12.2007
    Адрес
    г. Владивосток
    Сообщений
    915
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Вывод спрайта любой ширины с точностью до пикселя.

    Написал процедуру вывода спрайта в линейный буфер, возможно кто-нибудь предложит вариант оптимизации по скорости выполнения

    Процедура состоит из 8 почти идентичных блоков, различие в величине смещения. Все показывать смысла нет, вот самый медленный кусок, смещение = 4

    Код:
    ;смещение 4
    ;HL - адрес в буфере экрана vscreen
    ;DE - данные спрайта [байт маски, байт данных]
    ;B - ширина спрайта в символах
    ;C - высота спрайта в пикселях
    ;vscreen.len - ширина строки в буфере экрана
    drw_sprite_sm4		ld a,b
    			ld (drw_sprite_sm4_loop1+1),a
    			neg
    			add a,vscreen.len
    			ld (drw_sprite_sm4_offsetx+1),a
    			ld a,c
    			exx
    			ld c,a
    			exx
    drw_sprite_sm4_loop1	ld a,0
    			ld bc,#ff00
    drw_sprite_sm4_loop2	exa
    			ld a,(de)
    			inc de
    			dup 4
    			rr b
    			rra
    			edup
    			rr b	
    			and (hl)
    			ld (hl),a						
    			ld a,b
    			dup 4
    			rrca
    			edup
    			ld b,a				
    			ld a,(de)
    			inc de
    			dup 4
    			rr c
    			rra
    			edup
    			rr c			
    			or (hl)
    			ld (hl),a						
    			ld a,c
    			dup 4
    			rrca
    			edup
    			ld c,a					
    			inc hl
    			exa
    			dec a
    			jp nz,drw_sprite_sm4_loop2
    			ld a,b
    			dup 4
    			rrca
    			edup 
    			or #0f
    			ld b,a
    			ld a,c
    			dup 4
    			rrca
    			edup
    			and #f0
    			ld c,a
    			ld a,(hl)
    			and b
    			or c
    			ld (hl),a
    drw_sprite_sm4_offsetx	ld a,0
    			add a,l
    			ld l,a
    			jp nc,$+4
    			inc h
    			exx
    			dec c
    			exx
    			jp nz,drw_sprite_sm4_loop1
    			ret

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

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

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

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

Похожие темы

  1. Вывод спрайта по X,Y
    от drbars в разделе Программирование
    Ответов: 7
    Последнее: 20.03.2022, 10:43
  2. Спрайтовывыводилка с пиксельной точностью без таблиц
    от shadwork в разделе Программирование
    Ответов: 11
    Последнее: 20.08.2015, 20:23
  3. Поворот спрайта
    от Soplik в разделе Программирование
    Ответов: 22
    Последнее: 03.10.2011, 21:53
  4. куплю любой спекипум(минск)
    от fergus в разделе Барахолка (архив)
    Ответов: 5
    Последнее: 30.04.2009, 00:49
  5. Поворот спрайта
    от acidrain в разделе Графика
    Ответов: 9
    Последнее: 06.12.2008, 14:27

Ваши права

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