Quellcode durchsuchen

[sfml] Added owl sample.

badlogic vor 7 Jahren
Ursprung
Commit
b7e712d3ca
1 geänderte Dateien mit 55 neuen und 0 gelöschten Zeilen
  1. 55 0
      spine-sfml/example/main.cpp

+ 55 - 0
spine-sfml/example/main.cpp

@@ -366,6 +366,60 @@ void coin (SkeletonData* skeletonData, Atlas* atlas) {
 	}
 }
 
+void owl (SkeletonData* skeletonData, Atlas* atlas) {
+	SkeletonDrawable* drawable = new SkeletonDrawable(skeletonData);
+	drawable->timeScale = 1;
+
+	Skeleton* skeleton = drawable->skeleton;
+	skeleton->x = 320;
+	skeleton->y = 400;
+	Skeleton_updateWorldTransform(skeleton);
+
+	AnimationState_setAnimationByName(drawable->state, 0, "idle", true);
+	AnimationState_setAnimationByName(drawable->state, 1, "blink", true);
+	spTrackEntry* left = AnimationState_setAnimationByName(drawable->state, 2, "left", true);
+	spTrackEntry* right = AnimationState_setAnimationByName(drawable->state, 3, "right", true);
+	spTrackEntry* up = AnimationState_setAnimationByName(drawable->state, 4, "up", true);
+	spTrackEntry* down = AnimationState_setAnimationByName(drawable->state, 5, "down", true);
+
+	left->alpha = 0;
+	left->mixBlend = SP_MIX_BLEND_ADD;
+	right->alpha = 0;
+	right->mixBlend = SP_MIX_BLEND_ADD;
+	up->alpha = 0;
+	up->mixBlend = SP_MIX_BLEND_ADD;
+	down->alpha = 0;
+	down->mixBlend = SP_MIX_BLEND_ADD;
+
+	sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML - owl");
+	window.setFramerateLimit(60);
+	sf::Event event;
+	sf::Clock deltaClock;
+	while (window.isOpen()) {
+		while (window.pollEvent(event)) {
+			if (event.type == sf::Event::Closed) window.close();
+			if (event.type == sf::Event::MouseMoved) {
+				float x = event.mouseMove.x / 640.0f;
+				left->alpha = (MAX(x, 0.5f) - 0.5f) * 2;
+				right->alpha = (0.5 - MIN(x, 0.5)) * 2;
+
+				float y = event.mouseMove.y / 640.0f;
+				down->alpha = (MAX(y, 0.5f) - 0.5f) * 2;
+				up->alpha = (0.5 - MIN(y, 0.5)) * 2;
+			}
+		}
+
+		float delta = deltaClock.getElapsedTime().asSeconds();
+		deltaClock.restart();
+
+		drawable->update(delta);
+
+		window.clear();
+		window.draw(*drawable);
+		window.display();
+	}
+}
+
 /**
  * Used for debugging purposes during runtime development
  */
@@ -395,6 +449,7 @@ void test (SkeletonData* skeletonData, Atlas* atlas) {
 
 int main () {
 	testcase(test, "data/tank-pro.json", "data/tank-pro.skel", "data/tank.atlas", 1.0f);
+	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(tank, "data/tank-pro.json", "data/tank-pro.skel", "data/tank.atlas", 0.2f);