User Tag List

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

Тема: Пишу шедевр для «Вектора 06Ц»

Комбинированный просмотр

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

    Регистрация
    24.08.2012
    Адрес
    г. Волжский
    Сообщений
    467
    Спасибо Благодарностей отдано 
    797
    Спасибо Благодарностей получено 
    277
    Поблагодарили
    106 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Судя по видео, уходят с экрана они как-раз плавно, а вот появляются рывком - сразу целиком. А раз уходят плавно, значит и появляться могут так-же. Просто вывод нужно начинать на позицию раньше.Или я не правильно проблему понял?
    Например вверх плавно уходят они за ширму и в итоге появляются с нижней стороны экрана, т.к. ширма=16 строк а спрайт 24 строки + подпрограмма вывода спрайта не контролирует Y, т.е. если Y=0ffh то inr y будет 00h и т.д. В итоге образуется мусор на экране и при скроллинге это ещё больше ухудшается.

    Цитата Сообщение от jerri Посмотреть сообщение
    ты не совсем верно понимаешь концепт
    на прерываниях у тебя обработка объектов...в процессе обработки создаешь массив выводимых обьектов
    в 2 списка....в основном теле только отрисовка....ты берешь по очереди один из списков и рисуешь по нему объекты........у тебя размер шторки должен быть равен или больше высоты спрайта.
    .....выложи последний билд

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

    Если делать "ширму" высотой равной высоте спрайта, то это потеря двух строк, т.е. вместо 10 станет 8.
    На мой взгляд не очень хороший вариант, т.к. даже сейчас когда 10 строк уровня по горизонтали, всё равно чувствуется некоторая теснота в них. Поэтому увеличить ширму это конечно вариант, но к нему прибегну только если другие варианты не помогут.

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

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    Если делать "ширму" высотой равной высоте спрайта, то это потеря двух строк, т.е. вместо 10 станет 8.
    Ширму надо сделать не менее высоты спрайта, т.е. >=24. При этом ширма получится высотой 40 строк изображения, 216 останется для отображения, а это 9 строк спрайтов/тайлов.

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

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

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

    metamorpho(29.07.2020)

  4. #3

    Регистрация
    24.08.2012
    Адрес
    г. Волжский
    Сообщений
    467
    Спасибо Благодарностей отдано 
    797
    Спасибо Благодарностей получено 
    277
    Поблагодарили
    106 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Ширму надо сделать не менее высоты спрайта, т.е. >=24. При этом ширма получится высотой 40 строк изображения, 216 останется для отображения, а это 9 строк спрайтов/тайлов.
    9 это уже лучше

    Сейчас есть труднореализуемая идея - написать подпрограмму вывода спрайта, которая учитывает смещение спрайта по Y и рисует только то что есть на экране (до ширмы) + нужно отслеживать когда происходит вертикальный скроллинг чтобы контролировать какую часть спрайта снова нужно рисовать.

  5. #4

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

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    написать подпрограмму вывода спрайта, которая учитывает смещение спрайта по Y и рисует только то что есть на экране (до ширмы)
    Самый простой и очевидный вариант - перейти на построчное рисование. Для досрочного прерывания процедуры (когда строк <24) просто ставим команду перехода вместо команд рисования первой "лишней" строки. После перехода сразу восстанавливаем испорченные команды.

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

    metamorpho(31.07.2020)

  6. #5

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,891
    Спасибо Благодарностей отдано 
    337
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    242 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Ширму надо сделать не менее высоты спрайта, т.е. >=24. При этом ширма получится высотой 40 строк изображения, 216 останется для отображения, а это 9 строк спрайтов/тайлов.
    почему 40? 24 достаточно - 12 наверху и 12 внизу.

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

    Цитата Сообщение от KTSerg Посмотреть сообщение
    И алгоритма вывода спрайта видимо нужно как минимум два: один для вывода спрайта снизу-вверх, второй сверху-вниз.
    Т.к. в верхней части экрана может быть видена только нижняя часть спрайта. А в нижней части экрана нужна только верхняя часть спрайта.
    Если пользоваться универсальным алгоритмом вывода спрайта, то потребуются дополнительные расчеты для каждого объекта, чтобы вычислить на сколько он "спрятался", и какое смещение (в спрайте) нужно для начала его вывода.
    Можно конечно не париться, и придумать какую-то таблицу с координатами, размерами, смещениями. И пересчитывать её при каждом: скроллинге, перемещении.
    Тогда для вывода спрайта достаточно будет из таблицы брать кол-во видимых строк в спрайте, смещения, и проч...

    Да, и действительно, если выводить только видимую часть спрайта, то алгоритм построчного вывода проще прервать после вывода нужного кол-ва строк спрайта.
    просто скипать лишние строчки.

    а в случае рисования за ширмой вообще не обращать внимания на урезание.


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

    Цитата Сообщение от metamorpho Посмотреть сообщение
    Если программа обработки прерывания слишком длинная, то разве это не повлияет на отрисовку спрайтов в основном цикле программы ? Какой предел общего количества тактов команд, который можно без последствий для основного цикла программы, внедрить в программу обработки прерываний ?

    вот здесь обработка обьектов отдельно освежение фона отдельно.


    Если делать "ширму" высотой равной высоте спрайта, то это потеря двух строк, т.е. вместо 10 станет 8.
    На мой взгляд не очень хороший вариант, т.к. даже сейчас когда 10 строк уровня по горизонтали, всё равно чувствуется некоторая теснота в них. Поэтому увеличить ширму это конечно вариант, но к нему прибегну только если другие варианты не помогут..
    высота 10 элементов = 240 точек
    256-24 = 232 точки - просто сверху и снизу по 4 линии тайла не будут видны.
    Последний раз редактировалось jerri; 29.07.2020 в 19:30.
    С уважением,
    Jerri / Red Triangle.

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

    metamorpho(31.07.2020)

  7. #6

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

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    почему 40? 24 достаточно - 12 наверху и 12 внизу.
    Чтобы было только 24 придется при сдвиге экрана не только пририсовывать несколько строк к ширме с одной стороны и стирать столько же с другой, но еще и в условном центре ширмы делать эту операцию. Можно сказать, что вместо одной ширмы в 40 строк будет 2 по 12. И целиком объект 24x24 под такой составной ширмой не нарисуешь, смысл ее мне не понятен.

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

    metamorpho(31.07.2020)

  8. #7

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,891
    Спасибо Благодарностей отдано 
    337
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    242 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Чтобы было только 24 придется при сдвиге экрана не только пририсовывать несколько строк к ширме с одной стороны и стирать столько же с другой, но еще и в условном центре ширмы делать эту операцию. Можно сказать, что вместо одной ширмы в 40 строк будет 2 по 12. И целиком объект 24x24 под такой составной ширмой не нарисуешь, смысл ее мне не понятен.
    в смысле? ты неправильно смотришь.

    у тебя есть ширма высотой 24

    у тебя есть столбец экрана высотой 256
    просто рисуешь ширму с -12 до +12 от первой строки.

    и также спрайты врагов надо рисовать в этом же периоде -12 до 243
    тогда ширма будет из скрывать.
    С уважением,
    Jerri / Red Triangle.

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

    metamorpho(31.07.2020)

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

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

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

Похожие темы

  1. Бейсики для Вектора-06Ц и клонов
    от ivagor в разделе Вектор
    Ответов: 696
    Последнее: 25.10.2025, 02:34
  2. Картотека ПО для Вектора-06ц
    от svofski в разделе Вектор
    Ответов: 719
    Последнее: 04.04.2024, 11:13
  3. Восстановление Вектора-06ц
    от Daniil Chislov 86 в разделе Вектор
    Ответов: 100
    Последнее: 11.03.2021, 00:23
  4. Ответов: 198
    Последнее: 26.04.2020, 13:05
  5. Ответов: 58
    Последнее: 06.07.2019, 23:56

Ваши права

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