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

Тема: Источник проблемы дерганности ивентов?

Древовидный режим

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

    По умолчанию Источник проблемы дерганности ивентов?

    На тестовой карте заметил странный баг.
    При прыжке на 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]
    Последний раз редактировалось Tsargorn Ragver De Zatire; 03.11.2021 в 18:19. Причина: дополнение

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

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

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

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

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