Глюки при анимации

В этой теме 2 ответа, 1 участник, последнее обновление  Alaz777 7 года/лет, 6 мес. назад.

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Автор
    Сообщения
  • #4243

    Alaz777
    Участник
    Сообщений:19

    Зарегистрирован:
    19.01.2016

    Репутация:18

    Всем доброго времени суток!

    Полтора месяца назад начал серьезно работать над платформером. Нанял художника и все такое. Сейчас уже готов спрайт лист главного героя получилось много анимаций. И как раз тут начались разного рода проблемы.

    Анимации у меня хранятся в XML файле, для них есть 2 специальных класса, которые отлично работают. Но когда был нарисован спрайт лист ГГ получилось что ширина и высота почти всех кадров отличается, причем иногда сильно (это из-за большого разнообразия способностей ГГ и меча). Получилось что, из-за того что координаты в SFML начинаются в левом верхнем углу, персонаж все время скачет вверх вниз (т.к. высота спрайта разная, а коорд. y  – привязана к голове а не к ногам, т.е. голова в одном положении а ноги прыгают, хотя д.б. наоборот). Аналогичная ситуация получилась и по оси Х, если персонаж отражен влево.

    Решение данной проблемы я нашел. Каждый раз сохранял высоту и ширину кадра в прошлом цикле и каждый раз брал их же в новом и затем делал следующее:

    На первый взгляд все работало превосходно. Но когда я подгрузил 1 анимацию, у которой при смене 2-х кадров особенно сильно меняются размеры спрайта, начали проскальзывать глюки.

    Иногда (примерно раз в 13 – 14 полных циклов проблемной анимации, а иногда и чаще) происходило что на короткое мгновение кадр рисовался выше и (если спрайт отражен) правее чем должен быть примерно на величину разницы высот кадров, во время перехода между которыми происходит данный глюк. А затем тут же снова рисовался как надо. Немного поразмыслив, я пришел к выводу, что все выглядит так, как будто  иногда программа просто пропускает из указанного выше кода, либо 1-ю строку, либо 2 последние.

    В общем, у меня 2 вопроса. Прав ли я в своих догадках насчет причины проблемы и как с этим бороться?

    П.С. До этого все работало идеально на тестовых спрайтах (с малыми разницами высоты и ширины) без присутствия вышеуказанных 5 строк кода. Также, думаю стоит отметить, что программа написана без предупреждений.

    #4244

    Alaz777
    Участник
    Сообщений:19

    Зарегистрирован:
    19.01.2016

    Репутация:18

    Хотя наверно я какую-то глупость написал. Как программа может раз в кучу циклов пропускать какую-то конкретную строчку кода, а все остальные разы не пропускать ее, и причем только эту… бред. Но все равно, проблема странная, может кто сталкивался с чем-то подобным.

    #4245

    Alaz777
    Участник
    Сообщений:19

    Зарегистрирован:
    19.01.2016

    Репутация:18

    Нашел проблему, из-за того что анимация не лупнутая, в последнем кадре бралось неправильное h и из-за этого глюки возникали. Странно только почему они не всегда были видны…

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)

Для ответа в этой теме необходимо авторизоваться.