User Tag List

Страница 16 из 39 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя
Показано с 151 по 160 из 443

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

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

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

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,714
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    320
    Поблагодарили
    223 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    DCR "глюк" это "глюк"="глюк"-1 на один "глюк" стало меньше
    Ясно.

    Цитата Сообщение от ivagor Посмотреть сообщение
    Может я что-то пропустил, но сдвиг ширмы может быть с любым шагом кратным степени двойки - при этом после прохождения 256 строк снова придем к той строке, с которой начали. Ограничивающий фактор - уложиться во временной промежуток от прерывания до активной области отображения, с учетом этого максимальный шаг сдвига - 8 строк при использовании push (8 push, 4 рисуют и 4 стирают).
    В данном случае используется сплошная ширма высотой 16 строк, по 8 строк вверху и внизу экрана.
    За одно прерывание происходит скроллинг 4 строки.
    Соответственно, (с моей точки зрения) не имеет смысла перерисовывать по 8 строк ширмы. Достаточно с одной стороны удалить 4 строки, с другой добавить к ширме 4 строки. В связи с этим и "оптимизация", сокращающая работу с ширмой в 3-4 раза. И это в каждом прерывании при наличии перемещения по вертикали. А при отсутствии перемещения по вертикали, чего вообще тратить ресурсы на перерисовку ширмы...

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

  3. #2

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

    По умолчанию

    Написал код для движущихся по уровню объектов (просчитываются все движущиеся по уровню объекты, даже если их нет на экране).
    Скорость сразу приуныла. Придётся придумывать более скоростной вариант.

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

    ivagor(27.07.2020), KTSerg(28.07.2020), svofski(27.07.2020), Xrust(27.07.2020), Дмитрий2012(27.07.2020)

  4. #3

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

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    Написал код для движущихся по уровню объектов (просчитываются все движущиеся по уровню объекты, даже если их нет на экране).
    Скорость сразу приуныла. Придётся придумывать более скоростной вариант.

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

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

    metamorpho(28.07.2020)

  5. #4

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

    По умолчанию

    Красивая графика, впечатляет.

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

    metamorpho(28.07.2020)

  6. #5

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,714
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    320
    Поблагодарили
    223 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ндас... при отсутствии возможности остановиться, пока не добежишь до стены, количество "помех" может оказаться критичным.

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

    metamorpho(28.07.2020)

  7. #6

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Красивая графика, впечатляет.
    Спасибо!! Графику в основном - ищу подходящие готовые образы и - перекрашиваю цвета (под свои 8 цветов), сокращаю цветовую палитру (под 8 цветов), преобразую размер (очень трудно уместить в 24 точки что-либо не потеряв качество), дорисовываю некоторые элементы, делаю дополнительные кадры анимации и др.

    Цитата Сообщение от jerri Посмотреть сообщение
    1. сократи количество обьектов на уровне и сделай их умнее.
    2. перепиши процедуру отрисовки. должен был быть резерв по ускорению.
    3. привяжи движение обьектов к прерываниям.
    Спасибо за советы !
    Привязать движение к прерываниям - это несколько рискованно, т.к. в прерывании уже достаточно много чего, а если добавить ещё немного то начнуться глюки недорисовки. А если потом ещё нужно будет увеличить объём программы в прерываниях то это каждый раз это риск получить глюки, и придётся возвращаться и переписывать всё снова без использования прерываний - вот такие "страхи" есть.

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Ндас... при отсутствии возможности остановиться, пока не добежишь до стены, количество "помех" может оказаться критичным.
    Это всего лишь тестовый вариант.

    ----
    На данный момент переписал программу обработки всех движущихся объектов.
    Скорость вернулась.
    Но столкнулся с новой проблемой - выход объектов за границу экрана.
    Поскольку на Векторе нельзя рисовать за границей экрана, возникает проблема с тем чтобы сделать так, чтобы уходя с экрана спрайт исчезал плавно, а не резко. Сейчас придумываю как это сделать.
    Последний раз редактировалось metamorpho; 28.07.2020 в 18:26.

  8. #7

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,714
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    320
    Поблагодарили
    223 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    ...
    Но столкнулся с новой проблемой - выход объектов за границу экрана.
    Поскольку на Векторе нельзя рисовать за границей экрана, возникает проблема с тем чтобы сделать так, чтобы уходя с экрана спрайт исчезал плавно, а не резко. Сейчас придумываю как это сделать.
    Ширмы в 16 строк уже мало
    Либо увеличивать ширму, либо для пограничных "строк" лабиринта использовать специализированные (адаптированные) подпрограммы вывода спрайта.

    Судя по видео, уходят с экрана они как-раз плавно, а вот появляются рывком - сразу целиком.
    А раз уходят плавно, значит и появляться могут так-же. Просто вывод нужно начинать на позицию раньше.

    Или я не правильно проблему понял?
    Последний раз редактировалось KTSerg; 28.07.2020 в 18:52.

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

    metamorpho(29.07.2020)

  9. #8

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

    По умолчанию

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

    на прерываниях у тебя обработка объектов
    в процессе обработки создаешь массив выводимых обьектов
    в 2 списка

    в основном теле только отрисовка
    ты берешь по очереди один из списков и рисуешь по нему объекты

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

    как то так.

    Это всего лишь тестовый вариант.

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

    выложи последний билд
    Последний раз редактировалось jerri; 28.07.2020 в 19:47.
    С уважением,
    Jerri / Red Triangle.

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

    metamorpho(29.07.2020)

  10. #9

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

    По умолчанию

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

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

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

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

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

  11. #10

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

    По умолчанию

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

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

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

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

    metamorpho(29.07.2020)

Страница 16 из 39 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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