SFML и C++ Уроки \ Разработка игр › Форумы › Предложения к администрации сайта › Будующие уроки › Ответ в теме: Будующие уроки
Ну, у меня как раз-таки учитывается вариант с разным размером кадров – ведь в каждой анимации у меня хранится массив IntRect, который не только позицию кадра внутри текстуры задаёт, но и её размеры. Плюс к тому же, кадры могут быть расположены где угодно в текстуре, не обязательно в одном ряду.
Однако, я сейчас понял, что физический центр объекта неправильный будет… Т.к. отрисовка всегда от левого верхнего угла будет…
Значит, нужно добавить координаты центра объекта внутри каждого кадра, чтобы корректировать отрисовку кадра. Что ж, это не сложно.
Я сейчас подготовил свой формат xml-файла, который будет хранить в себе все объекты, ссылки на текстуры и их анимации.
Теперь вот собираюсь тулзу запилить для удобного создания таких xml-ек.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
<xml> <objecttype type="SomeType" name="SomeName"> <size> <width>10</width> <height>10</height> </size> <texture> tileset.png </texture> <animations> <anim timespan="0" type="IDLE" subtype="RIGHT"> <slide>0,0,10,10</slide> </anim> <anim timespan="0" type="IDLE" subtype="LEFT"> <slide>10,0,10,10</slide> </anim> <anim timespan="200" type="IDLE" subtype="FRONT"> <slide>20,0,10,10</slide> <slide>30,0,10,10</slide> <slide>40,0,10,10</slide> <slide>50,0,10,10</slide> </anim> <anim timespan="200" type="WALK" subtype="RIGHT"> <slide>0,10,10,10</slide> <slide>10,10,10,10</slide> <slide>20,10,10,10</slide> <slide>30,10,10,10</slide> <slide>40,10,10,10</slide> </anim> <anim timespan="200" type="WALK" subtype="LEFT"> <slide>0,20,10,10</slide> <slide>10,20,10,10</slide> <slide>20,20,10,10</slide> <slide>30,20,10,10</slide> <slide>40,20,10,10</slide> </anim> <anim timespan="300" type="RUN" subtype="RIGHT"> <slide>0,30,10,10</slide> <slide>10,30,10,10</slide> <slide>20,30,10,10</slide> <slide>30,30,10,10</slide> <slide>40,30,10,10</slide> </anim> <anim timespan="300" type="RUN" subtype="LEFT"> <slide>0,40,10,10</slide> <slide>10,40,10,10</slide> <slide>20,40,10,10</slide> <slide>30,40,10,10</slide> <slide>40,40,10,10</slide> </anim> </animations> </objecttype> </xml> |
1
Ещё есть какие-нибудь замечания или комментарии?