С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
jerri, переделал переход между планами по твоему, спрайт выводится ещё быстрее.
Судя по таймингу, стало с запасом хватать на вывод 4-ёх подвижных объектов при перемещении во вертикали, хотя раньше запаса совсем не было.
metamorpho(02.08.2020)
jerri, примерно да. Только у меня алгоритм значительно длиннее, и не построчно, а по две строки.
Т.е. две строки в одной колонке, потом две во второй, в третьей. Потом переход на след. план. По две строки справа налево. Переход на след. план. Снова по две строки в право. И так дважды.
За счет более длинного и развёрнутого алгоритма, по тактам, мой не значительно быстрее. Видимо за счет меньшего количества проверок на конц цикла. Т.к. у тебя на 4 строки дважды проверка на повтор, а у меня один раз.
Поскольку у тебя, переход между планами и проверка циклов компактнее, чем у меня.
Спасибо за идею.
И подозреваю, что у моего метода "по две строки" выше вероятность появлению мельтешения (мерцания).
- - - Добавлено - - -
jerri, в алгоритме рисования спрайта, есть для меня один не понятный момент.
При переходе на след строку (в средине алгоритма):
Уменьшение аккумулятора на 40 - это я понимаю, переход не след строку "inc l" - тоже.Код:ld (hl),c ;возвращаемся на первый план sub #40 ;переходим на следующую строку inc l ;повторяем цикл рисования ld (hl),b
А как происходит перевод регистра H - на начало?
Не пропущено "mov h,a" ?
Последний раз редактировалось KTSerg; 02.08.2020 в 06:36.
Да, команда пропущена.
Можно ускорить переход между плоскостями, если перейти на змейки по плоскостям и в пространстве. В варианте jerri переходы между плоскостями (при добавлении mov h,a) займут 80 тактов на две строки. Если первую строку выводить слева-направо и в одну сторону по плоскостям, а вторую справа-налево и в другую сторону по плоскостям, то переходы можно ужать до 56 тактов на две строки.
Последний раз редактировалось ivagor; 02.08.2020 в 06:52.
metamorpho(02.08.2020)
Ага пропущено.
Как вариант конечно можно и по 2 строки по высоте выводить, это ещё ускорит алгоритм, но увеличит вероятность мерцания цвета.
Насколько головоломным станет формат спрайта?
Сейчас спрайт выводится построчно.
С другой стороны если снизить минимальную частоту до 25 фпс это будет не важно.
С уважением,
Jerri / Red Triangle.
metamorpho(02.08.2020)
Не смотрел шторку/ширму у metamorpho, но ничего быстрее push+...+push+inr h+sphl представить не могу. Для 4 строк будет по 1536 тактов на рисование и столько же на стирание. Это для 32 колонок, для 30 понятно меньше.
- - - Добавлено - - -
Рисование под ширмой я не считал. Я бы рисовал под "высокой" ширмой сразу всю строку, а потом сдвигал уже без рисования.
metamorpho(02.08.2020)
Поскольку перенос ширмы всегда в прерываниях, при изменении значения скроллинга, то ширма формируется стековыми операциями записи. На моём примере, это синий цвет бордюра.
Формирование поля в 4 строки под ширмой, для равномерности использования ресурсов. Если выводить под ширмой полностью весь спрайт, да ещё на всю ширину экрана, то как минимум одно из 6 прерываний, будет занято, и перемещение подвижных объектов будет с характерным дёрганием - не будет плавным.Рисование под ширмой я не считал. Я бы рисовал под "высокой" ширмой сразу всю строку, а потом сдвигал уже без рисования.
Мне кажется. Я не пробовал.
metamorpho(02.08.2020)
metamorpho(02.08.2020)
metamorpho(02.08.2020)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)