Fixed libgdx examples for recent skeleton x/y and flip changes.

This commit is contained in:
NathanSweet 2013-06-02 13:57:39 +02:00
parent 2e8f66631e
commit d11f6b6864
4 changed files with 16 additions and 30 deletions

View File

@ -23,6 +23,9 @@ public class SkeletonRendererDebug {
}
public void draw (Skeleton skeleton) {
float skeletonX = skeleton.getX();
float skeletonY = skeleton.getY();
Gdx.gl.glEnable(GL10.GL_BLEND);
renderer.begin(ShapeType.Line);
@ -31,9 +34,9 @@ public class SkeletonRendererDebug {
for (int i = 0, n = bones.size; i < n; i++) {
Bone bone = bones.get(i);
if (bone.parent == null) continue;
float x = bone.data.length * bone.m00 + bone.worldX;
float y = bone.data.length * bone.m10 + bone.worldY;
renderer.line(bone.worldX, bone.worldY, x, y);
float x = skeletonX + bone.data.length * bone.m00 + bone.worldX;
float y = skeletonY + bone.data.length * bone.m10 + bone.worldY;
renderer.line(skeletonX + bone.worldX, skeletonY + bone.worldY, x, y);
}
renderer.setColor(slotLineColor);
@ -59,7 +62,7 @@ public class SkeletonRendererDebug {
for (int i = 0, n = bones.size; i < n; i++) {
Bone bone = bones.get(i);
renderer.setColor(Color.GREEN);
renderer.circle(bone.worldX, bone.worldY, 3);
renderer.circle(skeletonX + bone.worldX, skeletonY + bone.worldY, 3);
}
renderer.end();
}

View File

@ -40,7 +40,6 @@ public class AnimationStateTest extends ApplicationAdapter {
TextureAtlas atlas;
Skeleton skeleton;
Bone root;
AnimationState state;
public void create () {
@ -62,11 +61,8 @@ public class AnimationStateTest extends ApplicationAdapter {
state.setAnimation("walk", true);
skeleton = new Skeleton(skeletonData);
root = skeleton.getRootBone();
root.setX(250);
root.setY(20);
skeleton.setX(250);
skeleton.setY(20);
skeleton.updateWorldTransform();
Gdx.input.setInputProcessor(new InputAdapter() {

View File

@ -65,14 +65,9 @@ public class MixTest extends ApplicationAdapter {
jumpAnimation = skeletonData.findAnimation("jump");
skeleton = new Skeleton(skeletonData);
skeleton.setToSetupPose();
final Bone root = skeleton.getRootBone();
root.x = -50;
root.y = 20;
root.scaleX = 1f;
root.scaleY = 1f;
skeleton.updateWorldTransform();
skeleton.setX(-50);
skeleton.setY(20);
}
public void render () {
@ -87,10 +82,9 @@ public class MixTest extends ApplicationAdapter {
time += delta;
Bone root = skeleton.getRootBone();
float speed = 180;
if (time > beforeJump + blendIn && time < blendOutStart) speed = 360;
root.setX(root.getX() + speed * delta);
skeleton.setX(skeleton.getX() + speed * delta);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
@ -98,7 +92,7 @@ public class MixTest extends ApplicationAdapter {
if (time > total) {
// restart
time = 0;
root.setX(-50);
skeleton.setX(-50);
} else if (time > beforeJump + jump) {
// just walk after jump
walkAnimation.apply(skeleton, time, true);

View File

@ -87,12 +87,6 @@ public class SkeletonTest extends ApplicationAdapter {
if (name.equals("goblins")) skeleton.setSkin("goblin");
skeleton.setToSetupPose();
skeleton = new Skeleton(skeleton);
Bone root = skeleton.getRootBone();
root.x = 50;
root.y = 20;
root.scaleX = 1f;
root.scaleY = 1f;
skeleton.updateWorldTransform();
Gdx.input.setInputProcessor(new InputAdapter() {
@ -114,15 +108,14 @@ public class SkeletonTest extends ApplicationAdapter {
public void render () {
time += Gdx.graphics.getDeltaTime();
Bone root = skeleton.getRootBone();
float x = root.getX() + 160 * Gdx.graphics.getDeltaTime() * (skeleton.getFlipX() ? -1 : 1);
float x = skeleton.getX() + 160 * Gdx.graphics.getDeltaTime() * (skeleton.getFlipX() ? -1 : 1);
if (x > Gdx.graphics.getWidth()) skeleton.setFlipX(true);
if (x < 0) skeleton.setFlipX(false);
root.setX(x);
skeleton.setX(x);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
animation.apply(skeleton, time, false);
animation.apply(skeleton, time, true);
skeleton.updateWorldTransform();
skeleton.update(Gdx.graphics.getDeltaTime());