Плохо! Плохо!:  0
Показано с 1 по 3 из 3

Тема: Анимация съезжает в сторону. Баг ли это?

  1. #1
    Новичок Аватар для FromVillage
    Информация о пользователе
    Регистрация
    14.08.2020
    Адрес
    Дальний восток. Амурка.
    Сообщений
    22
    Репутация: 2 Добавить или отнять репутацию

    VX Ace Game Icon Анимация съезжает в сторону. Баг ли это?

    Здравствуйте!

    В редких случаях когда начинает проигрываться анимация на карте (например привязанная к игроку при лечении), то она почему то начинает смещаться в бок вместо того что бы проигрываться на персонаже. Далее оно заклинивает, и при следующих вызовах анимации (причём любой анимации) так же начинается на герое и улетает от него пока не кончится. Смена локации решает проблему, но механика подземелий RogueLike не позволяет это оставить без внимания.
    WTF.png
    Оно же так не должно работать? На светлой нашёл подобную тему, но там похоже что то не то, или я не понял что где они там наменяли. Даже подобных строчек не нашёл в скрипте, которые там написаны.
    Спойлер Светлая:
    https://rpgmaker.ru/forum/pomosh/585...sya-so-sdvigom Сам туда зайти поговорить не могу, капчу на восстановление пароля не показывает, а другой акк делать.. ну не почеловечи как то.

    Спойлер Подробнее:
    Не думаю что это из-за плагинов, стоят только Falcao Pearl v3, CP Dungeon Generator и разрешение изменено на 640х480 (на ютубе рекомендовали больше не делать и оно не влияет на это, пробовал убрать). В базовых скриптах только количество расходников в стаке до 999 поменяно.
    Вообще сделано так, что враг наносит удар и с ~25% шансом вызывает статус на игроке, который тригерит цикл цепочек анимаций по одной секунде из которой можно вырваться между анимациями по удерживанию кнопки или же по достижению определённых условий, которые выпустят игрока автоматически со статусом оглушения. Само действие работает отлично пока стоишь на месте, а вот во время движения если "поймали", то анимация ИНОГДА съезжает после такого захвата.
    Ладно бы оно само фиксилось после анимации, так это остаётся до смены локации. Даже пробовал второе событие сделать, которое следует за игроком и проигрывает эту анимацию. Не сработало. Уж очень не хочется картинками залеплять эту дыру. И избавится от этой механики нельзя, потому что без неё игра не заработает как надо в финальной версии.
    Кодовое название моего проекта: "LCS". (RPGM VX Ace)
    Жанр: H+18, Hack'n'Slash, Элементы Action-RPG и RogueLike.
    Стадия: Доделывание механик боя.
    Далее: Изучение Blender. Создание врагов, локаций и квестов. Полировка анимаций и озвучка.

  2. #2

    По умолчанию

    попробуй поставить этот скрипт https://pastebin.com/raw/XDd0tVWJ

  3. #3
    Новичок Аватар для FromVillage
    Информация о пользователе
    Регистрация
    14.08.2020
    Адрес
    Дальний восток. Амурка.
    Сообщений
    22
    Репутация: 2 Добавить или отнять репутацию

    По умолчанию Проблема решена!

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

    Спойлер Display rounding error fix created by Neon Black:

    ##------
    ## Display rounding error fix created by Neon Black.
    ##
    ## When certain slow display panning speeds are used, events will improperly
    ## round floating values to determine their position on screen. This causes
    ## them to appear off from the tilemap by a single pixel. Though minor this is
    ## noticable. This snippet fixes this behaviour.
    ##
    ## This snippet may be used in any project.
    ##------

    class Game_Map ## Rounds X and Y display values DOWN so the nearest 32 is found.
    def display_x
    (@display_x * 32).floor.to_f / 32
    end

    def display_y
    (@display_y * 32).floor.to_f / 32
    end

    def adjust_x(x)
    if loop_horizontal? && x < display_x - (width - screen_tile_x) / 2
    x - display_x + @map.width
    else
    x - display_x
    end
    end

    def adjust_y(y)
    if loop_vertical? && y < display_y - (height - screen_tile_y) / 2
    y - display_y + @map.height
    else
    y - display_y
    end
    end
    end

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

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

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

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

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

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

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Анимация съезжает в сторону. Баг ли это?