mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-28 20:51:38 +08:00
[c] Fixed binary skeleton parsing.
This commit is contained in:
parent
c24990a1c4
commit
a9deff2d2f
@ -42,13 +42,15 @@ typedef struct spEventData {
|
|||||||
int intValue;
|
int intValue;
|
||||||
float floatValue;
|
float floatValue;
|
||||||
const char* stringValue;
|
const char* stringValue;
|
||||||
|
const char* audioPath;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
spEventData() :
|
spEventData() :
|
||||||
name(0),
|
name(0),
|
||||||
intValue(0),
|
intValue(0),
|
||||||
floatValue(0),
|
floatValue(0),
|
||||||
stringValue(0) {
|
stringValue(0),
|
||||||
|
audioPath(0) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} spEventData;
|
} spEventData;
|
||||||
|
|||||||
@ -38,6 +38,7 @@ spEventData* spEventData_create (const char* name) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void spEventData_dispose (spEventData* self) {
|
void spEventData_dispose (spEventData* self) {
|
||||||
|
FREE(self->audioPath);
|
||||||
FREE(self->stringValue);
|
FREE(self->stringValue);
|
||||||
FREE(self->name);
|
FREE(self->name);
|
||||||
FREE(self);
|
FREE(self);
|
||||||
|
|||||||
@ -885,6 +885,7 @@ spSkeletonData* spSkeletonBinary_readSkeletonData (spSkeletonBinary* self, const
|
|||||||
/* Skip images path & fps */
|
/* Skip images path & fps */
|
||||||
readFloat(input);
|
readFloat(input);
|
||||||
FREE(readString(input));
|
FREE(readString(input));
|
||||||
|
FREE(readString(input));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Bones. */
|
/* Bones. */
|
||||||
@ -1072,6 +1073,7 @@ spSkeletonData* spSkeletonBinary_readSkeletonData (spSkeletonBinary* self, const
|
|||||||
eventData->intValue = readVarint(input, 0);
|
eventData->intValue = readVarint(input, 0);
|
||||||
eventData->floatValue = readFloat(input);
|
eventData->floatValue = readFloat(input);
|
||||||
eventData->stringValue = readString(input);
|
eventData->stringValue = readString(input);
|
||||||
|
eventData->audioPath = readString(input);
|
||||||
skeletonData->events[i] = eventData;
|
skeletonData->events[i] = eventData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -124,7 +124,7 @@ void spineboy (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
Skeleton_setToSetupPose(skeleton);
|
Skeleton_setToSetupPose(skeleton);
|
||||||
|
|
||||||
skeleton->x = 320;
|
skeleton->x = 320;
|
||||||
skeleton->y = 460;
|
skeleton->y = 590;
|
||||||
Skeleton_updateWorldTransform(skeleton);
|
Skeleton_updateWorldTransform(skeleton);
|
||||||
|
|
||||||
Slot* headSlot = Skeleton_findSlot(skeleton, "head");
|
Slot* headSlot = Skeleton_findSlot(skeleton, "head");
|
||||||
@ -134,7 +134,7 @@ void spineboy (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
AnimationState_addAnimationByName(drawable->state, 0, "jump", false, 3);
|
AnimationState_addAnimationByName(drawable->state, 0, "jump", false, 3);
|
||||||
AnimationState_addAnimationByName(drawable->state, 0, "run", true, 0);
|
AnimationState_addAnimationByName(drawable->state, 0, "run", true, 0);
|
||||||
|
|
||||||
sf::RenderWindow window(sf::VideoMode(640, 480), "Spine SFML - spineboy");
|
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - spineboy");
|
||||||
window.setFramerateLimit(60);
|
window.setFramerateLimit(60);
|
||||||
sf::Event event;
|
sf::Event event;
|
||||||
sf::Clock deltaClock;
|
sf::Clock deltaClock;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user