User Tag List

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 31 по 40 из 49

Тема: Быстрый попиксельный вывод спрайтов с маской без таблиц

  1. #31

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

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Автор игры подарил мне копию полной версии для Atari. И сказал, что не возражает, если сделаю порт на Специалист при условии, что игра будет бесплатной, а в титра будет его имя в качестве автора и дизайнера. Теперь прямо как-то стыдно включать заднюю... Но я всё ещё не определился, как делать вывод спрайтов с маской, чтобы и быстро и в память влезло. А то вся графика Тони с масками сейчас занимает 7 кб. Это слишком много, места столько нет.
    сделай с автомаской горизонтальной - будет норм
    С уважением,
    Jerri / Red Triangle.

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

  3. #32

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,648
    Поблагодарили
    573 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    сделай с автомаской горизонтальной - будет норм
    Объясни, пожалуйста, суть этого метода.
    С уважением, Станислав.

  4. #33

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    CityAceE, извини за любопытство - ты смотрел (или хотя бы слушал фоном) какие-нибудь стримы Alone Codera?

    - - - Добавлено - - -

    Слишком сузил, попробую расширить - какие-нибудь исходники современных игрописателей для спека или других ретроплатформ изучаешь?

  5. #34

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,648
    Поблагодарили
    573 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не смотрел, не слушал, не изучал. Увы... Мне вообще чужой код даётся с огромным трудом. Я даже свой перестаю понимать, если прошло какое-то небольшое время. Поэтому для себя стараюсь комментировать чуть ли не каждую строчку. Те видео уроки, которые я выкладывал - это по сути я просто пересказал своими словами то, что мне объяснил Sanchez и применил к Специалисту.
    С уважением, Станислав.

    Этот пользователь поблагодарил CityAceE за это полезное сообщение:

    ivagor(06.09.2024)

  6. #35

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,292
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    про `автомаску`
    https://zxpress.ru/article.php?id=8041

    Эти 2 пользователя(ей) поблагодарили goodboy за это полезное сообщение:

    CityAceE(07.09.2024), svofski(07.09.2024)

  7. #36

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

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Объясни, пожалуйста, суть этого метода.
    Хм... 1 берешь байт например %00111100 делаешь ROL влево, ROL вправо и OR ишь это все в один байт. потом инвертишь результат
    получается байт %10000001.

    2 делаешь этим способом все 256 байт от 0 до 255 и все кладешь в одну таблицу. Это таблица автомаски

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


    методы предложенные в zx press - остаются затратными всегда

    - - - Добавлено - - -

    Код:
    ;генератор таблицы маски
    
     ld hl,mask_tbl
    l0
     ld a,l
     add a,a
     ld c,a
     ld a,l
     or a
     rra
     or c
     or l
     cpl 
     ld (hl),a
     inc l
     jp nz,l0
    - - - Добавлено - - -

    Код:
    ;вывод спрайта
    ;наибыстрый вариант наверное через стек
    ; hl маска
    ; de место на экране или буфер спрайта
    ; sp адрес спрайта
    
    ...
     pop bc
     ld l,c
     ld a,(de)
     and (hl)
     or l
     ld (de),a
     inc e ;переход ниже
    
     ld l,b
     ld a,(de)
     and (hl)
     or l
     ld (de),a
     inc e ;переход ниже
    ...
    С уважением,
    Jerri / Red Triangle.

    Эти 2 пользователя(ей) поблагодарили jerri за это полезное сообщение:

    CityAceE(08.09.2024), svofski(08.09.2024)

  8. #37

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,648
    Поблагодарили
    573 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Опробовал данный способ. В принципе, учитывая, что в моём случае пересечения с фоном минимальны, то, наверное, этот метод будет приемлемым.

    С уважением, Станислав.

  9. #38

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Т.к. есть "настоящая" маска, то лучше попробовать использовать ее. Если каждому возможному байту спрайтов соответствует только один байт маски, то все отлично. Если нет (скорее всего нет), то можно сделать несколько таблиц масок, для разных групп спрайтов. Места займет больше чем автосгенерированная маска (но меньше, чем полный набор масок), но качество маскировки заметно лучше.

  10. #39

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,648
    Поблагодарили
    573 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Т.к. есть "настоящая" маска, то лучше попробовать использовать ее.
    Честно говоря, да, прямо очень не хочется идти на какие-то компромиссы. А хочется сделать всё максимально красиво, насколько это возможно. Я ведь даже пока не знаю, а вдруг у меня вообще на всё быстродействия хватит. Там не так уж и много анимации на экранах.

    Цитата Сообщение от ivagor Посмотреть сообщение
    Если каждому возможному байту спрайтов соответствует только один байт маски, то все отлично.
    Интересная мысль! Спасибо! Надо будет реально провести анализ, а вдруг!
    С уважением, Станислав.

  11. #40

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,648
    Поблагодарили
    573 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Надо будет реально провести анализ, а вдруг!
    Всего 4 спрайта движения 32*32 пикселя. Итого 512 байт. Но какой зоопарк среди масок!

    Скрытый текст


    # Спрайт Маска
    1 0 0
    2 0 255
    3 0 128
    4 1 1
    5 1 255
    6 1 127
    7 2 2
    8 3 255
    9 3 3
    10 4 255
    11 4 4
    12 5 7
    13 7 255
    14 7 7
    15 8 15
    16 9 15
    17 10 11
    18 12 12
    19 12 255
    20 12 252
    21 14 255
    22 14 14
    23 15 15
    24 16 17
    25 19 19
    26 24 248
    27 29 31
    28 30 30
    29 31 31
    30 31 255
    31 32 224
    32 40 63
    33 48 48
    34 53 63
    35 56 248
    36 57 57
    37 58 255
    38 59 59
    39 60 252
    40 62 63
    41 63 63
    42 64 192
    43 67 255
    44 68 127
    45 68 255
    46 79 255
    47 80 240
    48 87 127
    49 94 255
    50 96 224
    51 96 96
    52 99 127
    53 99 255
    54 109 127
    55 112 240
    56 112 112
    57 115 127
    58 116 255
    59 121 255
    60 122 255
    61 122 127
    62 123 127
    63 124 255
    64 127 255
    65 128 255
    66 128 128
    67 129 255
    68 129 129
    69 130 254
    70 131 255
    71 143 255
    72 152 255
    73 160 224
    74 167 255
    75 167 231
    76 168 248
    77 175 255
    78 189 255
    79 192 192
    80 195 195
    81 208 240
    82 220 252
    83 221 255
    84 222 255
    85 224 255
    86 224 224
    87 226 227
    88 229 255
    89 234 255
    90 235 255
    91 239 255
    92 240 240
    93 240 255
    94 240 243
    95 241 255
    96 245 255
    97 247 255
    98 248 255
    99 248 248
    100 252 255
    101 252 252
    102 254 255
    103 255 255

    [свернуть]
    С уважением, Станислав.

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

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

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

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

Похожие темы

  1. Попиксельный raycasting и sjasm
    от Destr в разделе Программирование
    Ответов: 98
    Последнее: 22.01.2020, 23:31
  2. Ответов: 7
    Последнее: 03.11.2015, 18:22
  3. Спрайтовывыводилка с пиксельной точностью без таблиц
    от shadwork в разделе Программирование
    Ответов: 11
    Последнее: 20.08.2015, 20:23
  4. Быстрый вывод картинки 88*88
    от ALKO в разделе Программирование
    Ответов: 49
    Последнее: 31.03.2011, 11:33
  5. Попиксельный скролл на Асме
    от helcril в разделе Для начинающих
    Ответов: 8
    Последнее: 17.12.2009, 09:31

Ваши права

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