User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 30

Тема: Обрезание спрайта на краю экрана.

  1. #11

    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от axor
    Можно сделать экран не во всю ширину, а по краям поставить атрибуты (ширина этой полоски зависит от max ширины спрайта), у которых совпадает ink и paper.

    Т.е. печатаем как обычно, а пользователь видит, что спрайт ушел вправо/влево. Ну а выход за реальные размеры экрана отрабатывать уж как придется.
    да, такое делалось в некоторых демках и игрушках.
    но имхо не лучший выход.
    тем более что не всегда применимо- допустим если игра не во весь экран, а в "рамочке". там уж атрибуты особо не расставишь
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  2. #12

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    двойная маска. т.е. к маске которую имеет сам спрайт, добавлять еще одну маску. Если спрайт ширины 2 или 3 байта - вполне эту маску можно перед выводом спрайта грузануть в регистры со штрихом, и там и держать, для небольшого ускорения. Если не нравится замедление - сделать 2 варианта процедуры вывода, вариант с дополнительной маской работает только для спрайтов, которые "выехали" за край. Идея ясна?
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  3. #13

    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sinus
    да, такое делалось в некоторых демках и игрушках.
    но имхо не лучший выход.
    тем более что не всегда применимо- допустим если игра не во весь экран, а в "рамочке". там уж атрибуты особо не расставишь
    Но зато самый простой способ
    axor/Perspective
    http://abzac.retropc.ru/

  4. #14

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    спрайт фиксированной ширины? если да, то можно написать набор подпроцедур типа:

    ;если влазит целиком
    put_all:
    dup N
    ldi
    edup
    inc d
    dec e
    dup N
    ldd
    edup
    inc d,e
    ret

    ;если не влазит K знакомест справа
    put_noK:
    dup N-K
    ldi
    edup
    inc d
    dec e
    dup K+K
    inc hl
    edup
    dup N-K
    ldd
    edup
    inc d,e
    dup K+K
    inc hl
    edup
    ret

    естесно соптимизировать коррекцию адреса в HL

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

    зы: код можно переделать и под маску

  5. #15

    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    acidrain ну во-первых это не я такое решение предложил (кста можно и не в ПЗУ, а в любое свободное место ОЗУ), а во-вторых, если там страничка озу, то надо каким-нибудь битом в каком-нибудь порте запрещать туда запись.

    или отключалку делать
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  6. #16

    Регистрация
    17.01.2005
    Адрес
    Tallinn
    Сообщений
    2,517
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    86
    Поблагодарили
    39 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sinus
    да, такое делалось в некоторых демках и игрушках.
    но имхо не лучший выход.
    тем более что не всегда применимо- допустим если игра не во весь экран, а в "рамочке". там уж атрибуты особо не расставишь
    выход отличный, сам на данный момент держу в голове как вариант. пофиг до рамочки, главное - геймплэй

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

  8. #17

    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    а если большие, так это какие ж поля надо будет чёрными (читать INK=PAPER) оставлять ???
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  9. #18

    Регистрация
    17.01.2005
    Адрес
    Tallinn
    Сообщений
    2,517
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    86
    Поблагодарили
    39 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    блин, и правда, торможу после работы

  10. #19

    Регистрация
    02.04.2005
    Адрес
    Минск
    Сообщений
    378
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  11. #20

    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    1) тормозно
    2) проще обрезать спрайт, чем высчитыват где запортился экран
    3) тормозно
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

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

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

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

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

Похожие темы

  1. Разрешение экрана.
    от CityAceE в разделе Форум
    Ответов: 19
    Последнее: 06.03.2005, 06:37

Ваши права

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