void AnimationStateData_setMixByName (AnimationStateData* self, const char* fromName, const char* toName, float duration) { Animation* from = SkeletonData_findAnimation(self->skeletonData, fromName); if (!from) return; Animation* to = SkeletonData_findAnimation(self->skeletonData, toName); if (!to) return; AnimationStateData_setMix(self, from, to, duration); }
int main (void) { Atlas* atlas = Atlas_readAtlasFile("data/spineboy.atlas"); printf("First region name: %s, x: %d, y: %d\n", atlas->regions->name, atlas->regions->x, atlas->regions->y); printf("First page name: %s, size: %d, %d\n", atlas->pages->name, atlas->pages->width, atlas->pages->height); SkeletonJson* json = SkeletonJson_create(atlas); SkeletonData *skeletonData = SkeletonJson_readSkeletonDataFile(json, "data/spineboy.json"); if (!skeletonData) { printf("Error: %s\n", json->error); exit(0); } printf("Default skin name: %s\n", skeletonData->defaultSkin->name); Skeleton* skeleton = Skeleton_create(skeletonData); Animation* animation = SkeletonData_findAnimation(skeletonData, "walk"); if (!animation) { printf("Error: Animation not found: walk\n"); exit(0); } printf("Animation timelineCount: %d\n", animation->timelineCount); Skeleton_dispose(skeleton); SkeletonData_dispose(skeletonData); SkeletonJson_dispose(json); Atlas_dispose(atlas); return 0; }
void AnimationState_setAnimationByName (AnimationState* self, const char* animationName, int/*bool*/loop) { Animation* animation = animationName ? SkeletonData_findAnimation(self->data->skeletonData, animationName) : 0; AnimationState_setAnimation(self, animation, loop); }