KTSerg, спасибо за код и за старания выявить проблему. Теперь DCR "глюк"![]()
KTSerg, спасибо за код и за старания выявить проблему. Теперь DCR "глюк"![]()
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
metamorpho(24.07.2020)
Может я что-то пропустил, но сдвиг ширмы может быть с любым шагом кратным степени двойки - при этом после прохождения 256 строк снова придем к той строке, с которой начали. Ограничивающий фактор - уложиться во временной промежуток от прерывания до активной области отображения, с учетом этого максимальный шаг сдвига - 8 строк при использовании push (8 push, 4 рисуют и 4 стирают).
Ясно.DCR "глюк" это "глюк"="глюк"-1 на один "глюк" стало меньше
В данном случае используется сплошная ширма высотой 16 строк, по 8 строк вверху и внизу экрана.
За одно прерывание происходит скроллинг 4 строки.
Соответственно, (с моей точки зрения) не имеет смысла перерисовывать по 8 строк ширмы. Достаточно с одной стороны удалить 4 строки, с другой добавить к ширме 4 строки. В связи с этим и "оптимизация", сокращающая работу с ширмой в 3-4 раза. И это в каждом прерывании при наличии перемещения по вертикали. А при отсутствии перемещения по вертикали, чего вообще тратить ресурсы на перерисовку ширмы...
Написал код для движущихся по уровню объектов (просчитываются все движущиеся по уровню объекты, даже если их нет на экране).
Скорость сразу приуныла. Придётся придумывать более скоростной вариант.
ivagor(27.07.2020), KTSerg(28.07.2020), svofski(27.07.2020), Xrust(27.07.2020), Дмитрий2012(27.07.2020)
Красивая графика, впечатляет.
metamorpho(28.07.2020)
metamorpho(28.07.2020)
Ндас... при отсутствии возможности остановиться, пока не добежишь до стены, количество "помех" может оказаться критичным.
metamorpho(28.07.2020)
Спасибо!! Графику в основном - ищу подходящие готовые образы и - перекрашиваю цвета (под свои 8 цветов), сокращаю цветовую палитру (под 8 цветов), преобразую размер (очень трудно уместить в 24 точки что-либо не потеряв качество), дорисовываю некоторые элементы, делаю дополнительные кадры анимации и др.
Спасибо за советы !
Привязать движение к прерываниям - это несколько рискованно, т.к. в прерывании уже достаточно много чего, а если добавить ещё немного то начнуться глюки недорисовки. А если потом ещё нужно будет увеличить объём программы в прерываниях то это каждый раз это риск получить глюки, и придётся возвращаться и переписывать всё снова без использования прерываний - вот такие "страхи" есть.
Это всего лишь тестовый вариант.
----
На данный момент переписал программу обработки всех движущихся объектов.
Скорость вернулась.
Но столкнулся с новой проблемой - выход объектов за границу экрана.
Поскольку на Векторе нельзя рисовать за границей экрана, возникает проблема с тем чтобы сделать так, чтобы уходя с экрана спрайт исчезал плавно, а не резко. Сейчас придумываю как это сделать.
Последний раз редактировалось metamorpho; 28.07.2020 в 18:26.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)