Важная информация

User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 31

Тема: Выводим спрайт, с проверкой границ экрана

  1. #11
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В общем сделал расчет атрибутов верх и низ, теперь лево-право думаю... Тока с атрибутами, высота спрайта должна быть кратна 8, иначе — видеоэффекты Фаза расчитывается исходя из высоты спрайта, а регистр B в цикле DJNZ используется как счетчик, чтобы не заводить лишний. Правда зачем некратная высота нужна с атрибутом?
    Последний раз редактировалось drbars; 01.01.2013 в 21:42.

  2. #12
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,751
    Спасибо Благодарностей отдано 
    256
    Спасибо Благодарностей получено 
    266
    Поблагодарили
    200 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    drbars, давай рассмотрим ситуацию
    ты выводишь спрайт с аттрибутами

    высота спрайта 64
    выводишь с точностью до 4

    последнюю строку аттрибутов будешь дублировать? чтобы изображение не плыло или может проще спрайт одним цветом красить?
    С уважением,
    Jerri / Red Triangle.

  3. #13
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    jerri, нет, строка пока не дублируется. Завтра доделаю базовую часть, а там дальше думать будем

  4. #14
    Guru
    Регистрация
    15.01.2005
    Адрес
    USSR
    Сообщений
    2,038
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я делал так: таблица адресов экрана с избыточным количеством значений. Для крайних координат вместо адресов экрана указываются адреса в ПЗУ. В итоге отсечка получается автоматически без специальных мер.

  5. #15
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Wlodek Посмотреть сообщение
    Я делал так: таблица адресов экрана с избыточным количеством значений. Для крайних координат вместо адресов экрана указываются адреса в ПЗУ. В итоге отсечка получается автоматически без специальных мер.
    Процедура не использует таблиц, расчет на лету Код доработал, обновил топик.
    Проблема в том, что с таблиц очень удобно стеком снимать адрес в регистовую пару. Если же без стека, то нужно считывать в регистр сначала один байт, затем инкремент, второй байт, снова инкремент... а ещё и сам регистр HL затирать нельзя. Так что без стека, гораздо быстрее считать на лету.

    Кто-нибудь видит способы оптимизации? Думается мне, можно как-то уменьшать кол-во лишних итераций в цикле умножения при проверке верхней границы.
    Последний раз редактировалось drbars; 01.01.2013 в 23:12.

  6. #16
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сложность номер 2 — внедрить вывод спрайта с заданным цветом в рамках аглоритма:

    Чтобы это работало, на этапе инициализации задать:
    A' — цвет спайта
    E' — длина спрайта (можно и напрямую передавать, так даже быстрее. Сделал для примера)

    Код:
    AT_OUT	LD A,D          
    	RRCA
    	RRCA
    	RRCA
    	AND #0B
    	OR #50
    	LD D,A
    	EX AF,AF'
    	JP Z,AT_CLR
    	PUSH BC
    	EX AF,AF'
    	EXX
    	LD A,E
    	EXX
    	LD B,A
    	EX AF,AF'
    AT_FILL	LD (DE),A
    	INC E
    	DJNZ AT_FILL
    	EX AF,AF'
    	EXX
    	LD A,E
    	EXX
    	LD E,A
    	LD D,#00
    	ADD HL,DE
    	POP BC
    	RET	
    AT_CLR	EX AF,AF'
    	...
    Последний раз редактировалось drbars; 02.01.2013 в 12:42.

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

  8. #17
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,751
    Спасибо Благодарностей отдано 
    256
    Спасибо Благодарностей получено 
    266
    Поблагодарили
    200 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    drbars, есть такое предложение по организации графики

    есть битмап шириной 2048 точек (256 байт) высотой 64 точки (16384 байт)
    если нужен цвет создаем еще массив (256*8) 2048

    итого 18432 под графику
    если надо больше - можно выделить больше
    далее
    вывод спрайта

    ldi
    ldi
    ldi
    ld a(hl) ld (de),a
    inc h inc d
    ldd
    ldd
    ldd
    ld a(hl) ld (de),a
    inc h
    inc d

    вариант с маской возможен тоже

    далее - урезание поверху - берем координату Y и если она отрицательно и меньше высоты то прибавляем к адресу спрайта и прибавляем к высоте.

    подробнее раскладывать?
    С уважением,
    Jerri / Red Triangle.

  9. #18
    Guru
    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А сабж для каких игр?

  10. #19
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alone Посмотреть сообщение
    А сабж для каких игр?
    Для отрисовки статических локаций спрайтом произвольного размера.

    jerri, ты предлагаешь из bitmap'а выкусывать спрайт, расчитывая отступ слева и справа?

    upd. понял inc h =) Метод прикольный, поэксперементирую
    Единственное, придётся ещё держать таблицу указателей на спрайт в массив и его размеры. Но это в любом случае нужная информация.

    ---------- Post added at 16:58 ---------- Previous post was at 15:46 ----------

    Вот какой из PC форматов может такой bitmap хранить без конверсии? Чтобы накидать в фотошопе спрайтов и не париться с вырезанием кстати

    upd. .wbm отлично подходит) кстати, этот алгорим решил ещё одну мою системную проблему.
    ну, а вывод спарйтов в топике — может кому пригодится Он тоже хорош, для своих целей.
    Последний раз редактировалось drbars; 02.01.2013 в 17:19.

  11. #20
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,751
    Спасибо Благодарностей отдано 
    256
    Спасибо Благодарностей получено 
    266
    Поблагодарили
    200 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    drbars, могу кинуть свою нарезалочку
    С уважением,
    Jerri / Red Triangle.

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. времянки экрана Pentagon'а
    от siril в разделе Программирование
    Ответов: 6
    Последнее: 10.08.2011, 00:09
  2. Времянки экрана БК
    от Sandro в разделе БК-0010/0011
    Ответов: 18
    Последнее: 19.12.2010, 19:36
  3. посоветуйте спрайт-едитор
    от boo_boo в разделе Софт
    Ответов: 11
    Последнее: 15.03.2007, 10:43
  4. Самый большой спрайт игрока
    от goodboy в разделе Игры
    Ответов: 17
    Последнее: 21.08.2006, 07:52
  5. Разрешение экрана.
    от CityAceE в разделе Форум
    Ответов: 19
    Последнее: 06.03.2005, 06:37

Ваши права

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