mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 01:36:02 +08:00
Updated SFML example to use unique_prts and stack allocation where possible.
This commit is contained in:
parent
b90c415cb3
commit
f9c25b7c40
@ -40,7 +40,7 @@ public:
|
|||||||
explicit HasRendererObject() : _rendererObject(NULL) {};
|
explicit HasRendererObject() : _rendererObject(NULL) {};
|
||||||
|
|
||||||
virtual ~HasRendererObject() {
|
virtual ~HasRendererObject() {
|
||||||
if (_dispose)
|
if (_dispose && _rendererObject)
|
||||||
_dispose(_rendererObject);
|
_dispose(_rendererObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -49,7 +49,7 @@ if(MSVC)
|
|||||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
|
||||||
else()
|
else()
|
||||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -std=c89")
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -std=c89")
|
||||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wnon-virtual-dtor -pedantic -std=c++03 -fno-exceptions -fno-rtti")
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wnon-virtual-dtor -pedantic -std=c++11 -fno-exceptions -fno-rtti")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Define spine-sfml-cpp library
|
# Define spine-sfml-cpp library
|
||||||
|
|||||||
@ -35,8 +35,12 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace spine;
|
using namespace spine;
|
||||||
#include <stdio.h>
|
#include <memory>
|
||||||
#include <stdlib.h>
|
|
||||||
|
template<typename T, typename... Args>
|
||||||
|
std::unique_ptr<T> make_unique(Args&&... args) {
|
||||||
|
return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
|
||||||
|
}
|
||||||
|
|
||||||
void callback (AnimationState* state, EventType type, TrackEntry* entry, Event* event) {
|
void callback (AnimationState* state, EventType type, TrackEntry* entry, Event* event) {
|
||||||
const String& animationName = (entry && entry->getAnimation()) ? entry->getAnimation()->getName() : String("");
|
const String& animationName = (entry && entry->getAnimation()) ? entry->getAnimation()->getName() : String("");
|
||||||
@ -77,15 +81,13 @@ SkeletonData* readSkeletonJsonData (const String& filename, Atlas* atlas, float
|
|||||||
}
|
}
|
||||||
|
|
||||||
SkeletonData* readSkeletonBinaryData (const char* filename, Atlas* atlas, float scale) {
|
SkeletonData* readSkeletonBinaryData (const char* filename, Atlas* atlas, float scale) {
|
||||||
SkeletonBinary* binary = new (__FILE__, __LINE__) SkeletonBinary(atlas);
|
SkeletonBinary binary(atlas);
|
||||||
binary->setScale(scale);
|
binary.setScale(scale);
|
||||||
SkeletonData *skeletonData = binary->readSkeletonDataFile(filename);
|
SkeletonData *skeletonData = binary.readSkeletonDataFile(filename);
|
||||||
if (!skeletonData) {
|
if (!skeletonData) {
|
||||||
printf("%s\n", binary->getError().buffer());
|
printf("%s\n", binary.getError().buffer());
|
||||||
delete binary;
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
delete binary;
|
|
||||||
return skeletonData;
|
return skeletonData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,17 +95,13 @@ void testcase (void func(SkeletonData* skeletonData, Atlas* atlas),
|
|||||||
const char* jsonName, const char* binaryName, const char* atlasName,
|
const char* jsonName, const char* binaryName, const char* atlasName,
|
||||||
float scale) {
|
float scale) {
|
||||||
SFMLTextureLoader textureLoader;
|
SFMLTextureLoader textureLoader;
|
||||||
Atlas* atlas = new (__FILE__, __LINE__) Atlas(atlasName, &textureLoader);
|
auto atlas = make_unique<Atlas>(atlasName, &textureLoader);
|
||||||
|
|
||||||
SkeletonData* skeletonData = readSkeletonJsonData(jsonName, atlas, scale);
|
auto skeletonData = unique_ptr<SkeletonData>(readSkeletonJsonData(jsonName, atlas.get(), scale));
|
||||||
func(skeletonData, atlas);
|
func(skeletonData.get(), atlas.get());
|
||||||
delete skeletonData;
|
|
||||||
|
|
||||||
skeletonData = readSkeletonBinaryData(binaryName, atlas, scale);
|
skeletonData = unique_ptr<SkeletonData>(readSkeletonBinaryData(binaryName, atlas.get(), scale));
|
||||||
func(skeletonData, atlas);
|
func(skeletonData.get(), atlas.get());
|
||||||
delete skeletonData;
|
|
||||||
|
|
||||||
delete atlas;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void spineboy (SkeletonData* skeletonData, Atlas* atlas) {
|
void spineboy (SkeletonData* skeletonData, Atlas* atlas) {
|
||||||
@ -114,10 +112,10 @@ void spineboy (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
stateData.setMix("walk", "jump", 0.2f);
|
stateData.setMix("walk", "jump", 0.2f);
|
||||||
stateData.setMix("jump", "run", 0.2f);
|
stateData.setMix("jump", "run", 0.2f);
|
||||||
|
|
||||||
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData, &stateData);
|
SkeletonDrawable drawable(skeletonData, &stateData);
|
||||||
drawable->timeScale = 1;
|
drawable.timeScale = 1;
|
||||||
|
|
||||||
Skeleton* skeleton = drawable->skeleton;
|
Skeleton* skeleton = drawable.skeleton;
|
||||||
skeleton->setFlipX(false);
|
skeleton->setFlipX(false);
|
||||||
skeleton->setFlipY(false);
|
skeleton->setFlipY(false);
|
||||||
skeleton->setToSetupPose();
|
skeleton->setToSetupPose();
|
||||||
@ -127,10 +125,10 @@ void spineboy (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
|
|
||||||
Slot* headSlot = skeleton->findSlot("head");
|
Slot* headSlot = skeleton->findSlot("head");
|
||||||
|
|
||||||
drawable->state->setListener(callback);
|
drawable.state->setListener(callback);
|
||||||
drawable->state->addAnimation(0, "walk", true, 0);
|
drawable.state->addAnimation(0, "walk", true, 0);
|
||||||
drawable->state->addAnimation(0, "jump", false, 3);
|
drawable.state->addAnimation(0, "jump", false, 3);
|
||||||
drawable->state->addAnimation(0, "run", true, 0);
|
drawable.state->addAnimation(0, "run", true, 0);
|
||||||
|
|
||||||
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - spineboy");
|
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - spineboy");
|
||||||
window.setFramerateLimit(60);
|
window.setFramerateLimit(60);
|
||||||
@ -153,21 +151,19 @@ void spineboy (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
headSlot->getColor().b = 1;
|
headSlot->getColor().b = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
drawable->update(delta);
|
drawable.update(delta);
|
||||||
|
|
||||||
window.clear();
|
window.clear();
|
||||||
window.draw(*drawable);
|
window.draw(drawable);
|
||||||
window.display();
|
window.display();
|
||||||
}
|
}
|
||||||
|
|
||||||
delete drawable;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void goblins (SkeletonData* skeletonData, Atlas* atlas) {
|
void goblins (SkeletonData* skeletonData, Atlas* atlas) {
|
||||||
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
|
SkeletonDrawable drawable(skeletonData);
|
||||||
drawable->timeScale = 1;
|
drawable.timeScale = 1;
|
||||||
|
|
||||||
Skeleton* skeleton = drawable->skeleton;
|
Skeleton* skeleton = drawable.skeleton;
|
||||||
skeleton->setFlipX(false);
|
skeleton->setFlipX(false);
|
||||||
skeleton->setFlipY(false);
|
skeleton->setFlipY(false);
|
||||||
skeleton->setSkin("goblin");
|
skeleton->setSkin("goblin");
|
||||||
@ -176,7 +172,7 @@ void goblins (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
skeleton->setPosition(320, 590);
|
skeleton->setPosition(320, 590);
|
||||||
skeleton->updateWorldTransform();
|
skeleton->updateWorldTransform();
|
||||||
|
|
||||||
drawable->state->setAnimation(0, "walk", true);
|
drawable.state->setAnimation(0, "walk", true);
|
||||||
|
|
||||||
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - goblins");
|
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - goblins");
|
||||||
window.setFramerateLimit(60);
|
window.setFramerateLimit(60);
|
||||||
@ -189,32 +185,30 @@ void goblins (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
float delta = deltaClock.getElapsedTime().asSeconds();
|
float delta = deltaClock.getElapsedTime().asSeconds();
|
||||||
deltaClock.restart();
|
deltaClock.restart();
|
||||||
|
|
||||||
drawable->update(delta);
|
drawable.update(delta);
|
||||||
|
|
||||||
window.clear();
|
window.clear();
|
||||||
window.draw(*drawable);
|
window.draw(drawable);
|
||||||
window.display();
|
window.display();
|
||||||
}
|
}
|
||||||
|
|
||||||
delete drawable;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void raptor (SkeletonData* skeletonData, Atlas* atlas) {
|
void raptor (SkeletonData* skeletonData, Atlas* atlas) {
|
||||||
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
|
SkeletonDrawable drawable(skeletonData);
|
||||||
drawable->timeScale = 1;
|
drawable.timeScale = 1;
|
||||||
|
|
||||||
PowInterpolation pow2(2);
|
PowInterpolation pow2(2);
|
||||||
PowOutInterpolation powOut2(2);
|
PowOutInterpolation powOut2(2);
|
||||||
SwirlVertexEffect effect(400, powOut2);
|
SwirlVertexEffect effect(400, powOut2);
|
||||||
effect.setCenterY(-200);
|
effect.setCenterY(-200);
|
||||||
drawable->vertexEffect = &effect;
|
drawable.vertexEffect = &effect;
|
||||||
|
|
||||||
Skeleton* skeleton = drawable->skeleton;
|
Skeleton* skeleton = drawable.skeleton;
|
||||||
skeleton->setPosition(320, 590);
|
skeleton->setPosition(320, 590);
|
||||||
skeleton->updateWorldTransform();
|
skeleton->updateWorldTransform();
|
||||||
|
|
||||||
drawable->state->setAnimation(0, "walk", true);
|
drawable.state->setAnimation(0, "walk", true);
|
||||||
drawable->state->addAnimation(1, "gun-grab", false, 2);
|
drawable.state->addAnimation(1, "gun-grab", false, 2);
|
||||||
|
|
||||||
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - raptor");
|
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - raptor");
|
||||||
window.setFramerateLimit(60);
|
window.setFramerateLimit(60);
|
||||||
@ -233,25 +227,23 @@ void raptor (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
if (percent > 1) percent = 1 - (percent - 1);
|
if (percent > 1) percent = 1 - (percent - 1);
|
||||||
effect.setAngle(pow2.interpolate(-60.0f, 60.0f, percent));
|
effect.setAngle(pow2.interpolate(-60.0f, 60.0f, percent));
|
||||||
|
|
||||||
drawable->update(delta);
|
drawable.update(delta);
|
||||||
|
|
||||||
window.clear();
|
window.clear();
|
||||||
window.draw(*drawable);
|
window.draw(drawable);
|
||||||
window.display();
|
window.display();
|
||||||
}
|
}
|
||||||
|
|
||||||
delete drawable;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tank (SkeletonData* skeletonData, Atlas* atlas) {
|
void tank (SkeletonData* skeletonData, Atlas* atlas) {
|
||||||
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
|
SkeletonDrawable drawable(skeletonData);
|
||||||
drawable->timeScale = 1;
|
drawable.timeScale = 1;
|
||||||
|
|
||||||
Skeleton* skeleton = drawable->skeleton;
|
Skeleton* skeleton = drawable.skeleton;
|
||||||
skeleton->setPosition(500, 590);
|
skeleton->setPosition(500, 590);
|
||||||
skeleton->updateWorldTransform();
|
skeleton->updateWorldTransform();
|
||||||
|
|
||||||
drawable->state->setAnimation(0, "drive", true);
|
drawable.state->setAnimation(0, "drive", true);
|
||||||
|
|
||||||
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - tank");
|
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - tank");
|
||||||
window.setFramerateLimit(60);
|
window.setFramerateLimit(60);
|
||||||
@ -264,24 +256,22 @@ void tank (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
|
|
||||||
float delta = deltaClock.getElapsedTime().asSeconds();
|
float delta = deltaClock.getElapsedTime().asSeconds();
|
||||||
deltaClock.restart();
|
deltaClock.restart();
|
||||||
drawable->update(delta);
|
drawable.update(delta);
|
||||||
window.clear();
|
window.clear();
|
||||||
window.draw(*drawable);
|
window.draw(drawable);
|
||||||
window.display();
|
window.display();
|
||||||
}
|
}
|
||||||
|
|
||||||
delete drawable;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void vine (SkeletonData* skeletonData, Atlas* atlas) {
|
void vine (SkeletonData* skeletonData, Atlas* atlas) {
|
||||||
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
|
SkeletonDrawable drawable(skeletonData);
|
||||||
drawable->timeScale = 1;
|
drawable.timeScale = 1;
|
||||||
|
|
||||||
Skeleton* skeleton = drawable->skeleton;
|
Skeleton* skeleton = drawable.skeleton;
|
||||||
skeleton->setPosition(320, 590);
|
skeleton->setPosition(320, 590);
|
||||||
skeleton->updateWorldTransform();
|
skeleton->updateWorldTransform();
|
||||||
|
|
||||||
drawable->state->setAnimation(0, "grow", true);
|
drawable.state->setAnimation(0, "grow", true);
|
||||||
|
|
||||||
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - vine");
|
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - vine");
|
||||||
window.setFramerateLimit(60);
|
window.setFramerateLimit(60);
|
||||||
@ -294,28 +284,26 @@ void vine (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
float delta = deltaClock.getElapsedTime().asSeconds();
|
float delta = deltaClock.getElapsedTime().asSeconds();
|
||||||
deltaClock.restart();
|
deltaClock.restart();
|
||||||
|
|
||||||
drawable->update(delta);
|
drawable.update(delta);
|
||||||
|
|
||||||
window.clear();
|
window.clear();
|
||||||
window.draw(*drawable);
|
window.draw(drawable);
|
||||||
window.display();
|
window.display();
|
||||||
}
|
}
|
||||||
|
|
||||||
delete drawable;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void stretchyman (SkeletonData* skeletonData, Atlas* atlas) {
|
void stretchyman (SkeletonData* skeletonData, Atlas* atlas) {
|
||||||
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
|
SkeletonDrawable drawable(skeletonData);
|
||||||
drawable->timeScale = 1;
|
drawable.timeScale = 1;
|
||||||
|
|
||||||
Skeleton* skeleton = drawable->skeleton;
|
Skeleton* skeleton = drawable.skeleton;
|
||||||
skeleton->setFlipX(false);
|
skeleton->setFlipX(false);
|
||||||
skeleton->setFlipY(false);
|
skeleton->setFlipY(false);
|
||||||
|
|
||||||
skeleton->setPosition(100, 590);
|
skeleton->setPosition(100, 590);
|
||||||
skeleton->updateWorldTransform();
|
skeleton->updateWorldTransform();
|
||||||
|
|
||||||
drawable->state->setAnimation(0, "sneak", true);
|
drawable.state->setAnimation(0, "sneak", true);
|
||||||
|
|
||||||
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - Streatchyman");
|
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - Streatchyman");
|
||||||
window.setFramerateLimit(60);
|
window.setFramerateLimit(60);
|
||||||
@ -328,26 +316,24 @@ void stretchyman (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
float delta = deltaClock.getElapsedTime().asSeconds();
|
float delta = deltaClock.getElapsedTime().asSeconds();
|
||||||
deltaClock.restart();
|
deltaClock.restart();
|
||||||
|
|
||||||
drawable->update(delta);
|
drawable.update(delta);
|
||||||
|
|
||||||
window.clear();
|
window.clear();
|
||||||
window.draw(*drawable);
|
window.draw(drawable);
|
||||||
window.display();
|
window.display();
|
||||||
}
|
}
|
||||||
|
|
||||||
delete drawable;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void coin (SkeletonData* skeletonData, Atlas* atlas) {
|
void coin (SkeletonData* skeletonData, Atlas* atlas) {
|
||||||
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
|
SkeletonDrawable drawable(skeletonData);
|
||||||
drawable->timeScale = 1;
|
drawable.timeScale = 1;
|
||||||
|
|
||||||
Skeleton* skeleton = drawable->skeleton;
|
Skeleton* skeleton = drawable.skeleton;
|
||||||
skeleton->setPosition(320, 590);
|
skeleton->setPosition(320, 590);
|
||||||
skeleton->updateWorldTransform();
|
skeleton->updateWorldTransform();
|
||||||
|
|
||||||
drawable->state->setAnimation(0, "rotate", true);
|
drawable.state->setAnimation(0, "rotate", true);
|
||||||
drawable->update(1);
|
drawable.update(1);
|
||||||
|
|
||||||
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - coin");
|
sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - coin");
|
||||||
window.setFramerateLimit(60);
|
window.setFramerateLimit(60);
|
||||||
@ -364,30 +350,28 @@ void coin (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
// float delta = deltaClock.getElapsedTime().asSeconds();
|
// float delta = deltaClock.getElapsedTime().asSeconds();
|
||||||
// deltaClock.restart();
|
// deltaClock.restart();
|
||||||
|
|
||||||
drawable->update(delta);
|
drawable.update(delta);
|
||||||
|
|
||||||
window.clear();
|
window.clear();
|
||||||
window.draw(*drawable);
|
window.draw(drawable);
|
||||||
window.display();
|
window.display();
|
||||||
}
|
}
|
||||||
|
|
||||||
delete drawable;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void owl (SkeletonData* skeletonData, Atlas* atlas) {
|
void owl (SkeletonData* skeletonData, Atlas* atlas) {
|
||||||
SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
|
SkeletonDrawable drawable(skeletonData);
|
||||||
drawable->timeScale = 1;
|
drawable.timeScale = 1;
|
||||||
|
|
||||||
Skeleton* skeleton = drawable->skeleton;
|
Skeleton* skeleton = drawable.skeleton;
|
||||||
skeleton->setPosition(320, 400);
|
skeleton->setPosition(320, 400);
|
||||||
skeleton->updateWorldTransform();
|
skeleton->updateWorldTransform();
|
||||||
|
|
||||||
drawable->state->setAnimation(0, "idle", true);
|
drawable.state->setAnimation(0, "idle", true);
|
||||||
drawable->state->setAnimation(1, "blink", true);
|
drawable.state->setAnimation(1, "blink", true);
|
||||||
TrackEntry* left = drawable->state->setAnimation(2, "left", true);
|
TrackEntry* left = drawable.state->setAnimation(2, "left", true);
|
||||||
TrackEntry* right = drawable->state->setAnimation(3, "right", true);
|
TrackEntry* right = drawable.state->setAnimation(3, "right", true);
|
||||||
TrackEntry* up = drawable->state->setAnimation(4, "up", true);
|
TrackEntry* up = drawable.state->setAnimation(4, "up", true);
|
||||||
TrackEntry* down = drawable->state->setAnimation(5, "down", true);
|
TrackEntry* down = drawable.state->setAnimation(5, "down", true);
|
||||||
|
|
||||||
left->setAlpha(0);
|
left->setAlpha(0);
|
||||||
left->setMixBlend(MixBlend_Add);
|
left->setMixBlend(MixBlend_Add);
|
||||||
@ -419,36 +403,30 @@ void owl (SkeletonData* skeletonData, Atlas* atlas) {
|
|||||||
float delta = deltaClock.getElapsedTime().asSeconds();
|
float delta = deltaClock.getElapsedTime().asSeconds();
|
||||||
deltaClock.restart();
|
deltaClock.restart();
|
||||||
|
|
||||||
drawable->update(delta);
|
drawable.update(delta);
|
||||||
|
|
||||||
window.clear();
|
window.clear();
|
||||||
window.draw(*drawable);
|
window.draw(drawable);
|
||||||
window.display();
|
window.display();
|
||||||
}
|
}
|
||||||
|
|
||||||
delete drawable;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used for debugging purposes during runtime development
|
* Used for debugging purposes during runtime development
|
||||||
*/
|
*/
|
||||||
void test (SkeletonData* skeletonData, Atlas* atlas) {
|
void test (SkeletonData* skeletonData, Atlas* atlas) {
|
||||||
Skeleton* skeleton = new (__FILE__, __LINE__) Skeleton(skeletonData);
|
Skeleton skeleton(skeletonData);
|
||||||
AnimationStateData* animData = new (__FILE__, __LINE__) AnimationStateData(skeletonData);
|
AnimationStateData animationStateData(skeletonData);
|
||||||
AnimationState* animState = new (__FILE__, __LINE__) AnimationState(animData);
|
AnimationState animationState(&animationStateData);
|
||||||
animState->setAnimation(0, "drive", true);
|
animationState.setAnimation(0, "drive", true);
|
||||||
|
|
||||||
float d = 3;
|
float d = 3;
|
||||||
for (int i = 0; i < 1; i++) {
|
for (int i = 0; i < 1; i++) {
|
||||||
animState->update(d);
|
animationState.update(d);
|
||||||
animState->apply(*skeleton);
|
animationState.apply(skeleton);
|
||||||
skeleton->updateWorldTransform();
|
skeleton.updateWorldTransform();
|
||||||
d += 0.1f;
|
d += 0.1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
delete skeleton;
|
|
||||||
delete animData;
|
|
||||||
delete animState;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main () {
|
int main () {
|
||||||
@ -456,10 +434,10 @@ int main () {
|
|||||||
SpineExtension::setInstance(&dbgExtension);
|
SpineExtension::setInstance(&dbgExtension);
|
||||||
|
|
||||||
testcase(raptor, "data/raptor-pro.json", "data/raptor-pro.skel", "data/raptor.atlas", 0.5f);
|
testcase(raptor, "data/raptor-pro.json", "data/raptor-pro.skel", "data/raptor.atlas", 0.5f);
|
||||||
|
testcase(coin, "data/coin-pro.json", "data/coin-pro.skel", "data/coin.atlas", 0.5f);
|
||||||
testcase(test, "data/tank-pro.json", "data/tank-pro.skel", "data/tank.atlas", 1.0f);
|
testcase(test, "data/tank-pro.json", "data/tank-pro.skel", "data/tank.atlas", 1.0f);
|
||||||
testcase(spineboy, "data/spineboy-ess.json", "data/spineboy-ess.skel", "data/spineboy.atlas", 0.6f);
|
testcase(spineboy, "data/spineboy-ess.json", "data/spineboy-ess.skel", "data/spineboy.atlas", 0.6f);
|
||||||
testcase(owl, "data/owl-pro.json", "data/owl-pro.skel", "data/owl.atlas", 0.5f);
|
testcase(owl, "data/owl-pro.json", "data/owl-pro.skel", "data/owl.atlas", 0.5f);
|
||||||
testcase(coin, "data/coin-pro.json", "data/coin-pro.skel", "data/coin.atlas", 0.5f);
|
|
||||||
testcase(vine, "data/vine-pro.json", "data/vine-pro.skel", "data/vine.atlas", 0.5f);
|
testcase(vine, "data/vine-pro.json", "data/vine-pro.skel", "data/vine.atlas", 0.5f);
|
||||||
testcase(tank, "data/tank-pro.json", "data/tank-pro.skel", "data/tank.atlas", 0.2f);
|
testcase(tank, "data/tank-pro.json", "data/tank-pro.skel", "data/tank.atlas", 0.2f);
|
||||||
testcase(raptor, "data/raptor-pro.json", "data/raptor-pro.skel", "data/raptor.atlas", 0.5f);
|
testcase(raptor, "data/raptor-pro.json", "data/raptor-pro.skel", "data/raptor.atlas", 0.5f);
|
||||||
|
|||||||
@ -278,7 +278,7 @@ void SFMLTextureLoader::unload(void *texture) {
|
|||||||
deleteTexture(texture);
|
deleteTexture(texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*SpineExtension *getDefaultExtension() {
|
SpineExtension *getDefaultExtension() {
|
||||||
return new DefaultSpineExtension();
|
return new DefaultSpineExtension();
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user