На тестовой карте заметил странный баг.
При прыжке на 1 клетку Ивенты дергаются в противоположную сторону, что особенно хорошо видно по крышам домов.
Видео:
С чем это в теории может быть связано? А то хочется пофиксить с минимумом костылей.
П.С. Я во всем разобрался. И решил поделиться результатом.
Объяснительная часть:
Ошибка на 1 пиксель у ивентов возникает при обновлении координат в (передвижении камеры, прыжках или нестандартных скоростях персонажа)
В случае прыжков ошибка возникает в update_jump при взаимодействии @jump_count с координатами @real_X,@real_y.
(Это момент перемещения в прыжке.)
Так вот это происходит когда @jump_count не входит в [2,4,8,16,32], а так как @jump_count=@jump_peak*2
то его значение зависит от distance и @move_speed от сюда и разброс что с одной скоростью на одно кол-во клеток все хорошо, а с другой уже нет.
Решение:
1.Способ решения через обновлении карты
Этот способ описан здесь: https://forums.rpgmakerweb.com/index...ror-fix.17448/
П.С. В том скрипте координаты Х и У приводятся к ближайшему 32 (в принципе 16 тоже пойдут)
2.Способы решения (костыли для прыжков):
a) Переписать update_jump.
Только для кастомных прыжков иначе лучше взять вариант с обновлением или костыль.
b) Привести к наиболее вероятным высотам 4,8
@jump_peak = 10 + distance -@move_speed
@jump_peak/=4
@jump_peak*=4
@jump_peak=[@jump_peak,8].min
c) Привести к потенциальным 4,8,16
@jump_peak = 10 + distance -@move_speed
@jump_peak/=4
@jump_peak*=4
@jump_peak=(@jump_peak > 12 ? [@jump_peak,16].max : [@jump_peak,8].min)
Нет смысла ради этого прибегать к бинарным операции(1 и 2 невозможны и визуально являются отсутствием прыжка)
d) Задать подходящую высоту и по совместительству длину анимации перехода:
@jump_peak = 8
e) Разделить @jump_peak и @jump_count где приводить уже @jump_count
f) Привязать к вашим переменным, как одно из значений, так и оба дабы иметь возможность быстра настроить нужные параметры.
@jump_peak = $game_variables[x]
Социальные закладки