2017-08-02 4 views
0

Voici mon code:Libgdx animation squelette de

jeu INIT:

playerAtlas = new TextureAtlas(Gdx.files.internal("spineboy.atlas")); 
    json = new SkeletonJson(playerAtlas); 

    playerSkeletonData = json.readSkeletonData(Gdx.files.internal("spineboy.json")); 
    playerAnimationData = new AnimationStateData(playerSkeletonData); 

    batch = new SpriteBatch(); 
    skeletonRenderer = new SkeletonRenderer(); 

    skeleton = new Skeleton(playerSkeletonData); 
    animationState = new AnimationState(playerAnimationData); 


    animationState.setAnimation(0, "walk", true); // trackIndex, name, loop 

render:

 animationState.update(Gdx.graphics.getDeltaTime()); 
    animationState.apply(skeleton); 

    batch.begin(); 
    skeletonRenderer.draw(batch, skeleton); 
    batch.end(); 

    Gdx.app.log("rendering", "x" +skeleton.getX()); 
    Gdx.app.log("rendering", "y"+skeleton.getY()); 

    skeleton.setPosition(300, 300); 

Et pour une raison quelconque, je ne peux pas obtenir mon animation pour montrer .

J'ai eu ce code d'ici et copié: https://gamedev.stackexchange.com/questions/98890/implementing-spine-animations-in-libgdx

Je ne peux pas comprendre pourquoi l'animation n'est pas le rendu !!

Quelqu'un peut-il aider s'il vous plaît?

Répondre

1

Essayez cette classe Test:

public class SimpleTest1 extends ApplicationAdapter { 

    OrthographicCamera camera; 
    SpriteBatch batch; 
    SkeletonRenderer renderer; 
    SkeletonRendererDebug debugRenderer; 

    TextureAtlas atlas; 
    Skeleton skeleton; 
    AnimationState state; 

    public void create() { 

     camera = new OrthographicCamera(); 
     batch = new SpriteBatch(); 
     renderer = new SkeletonRenderer(); 
     renderer.setPremultipliedAlpha(true); // PMA results in correct blending without outlines. 
     debugRenderer = new SkeletonRendererDebug(); 
     debugRenderer.setBoundingBoxes(false); 
     debugRenderer.setRegionAttachments(false); 

     atlas = new TextureAtlas(Gdx.files.internal("spineboy/spineboy.atlas")); 
     SkeletonJson json = new SkeletonJson(atlas); // This loads skeleton JSON data, which is stateless. 
     json.setScale(0.6f); // Load the skeleton at 60% the size it was in Spine. 
     SkeletonData skeletonData = json.readSkeletonData(Gdx.files.internal("spineboy/spineboy.json")); 

     skeleton = new Skeleton(skeletonData); // Skeleton holds skeleton state (bone positions, slot attachments, etc). 
     skeleton.setPosition(250, 20); 

     AnimationStateData stateData = new AnimationStateData(skeletonData); // Defines mixing (crossfading) between animations. 
     stateData.setMix("run", "jump", 0.2f); 
     stateData.setMix("jump", "run", 0.2f); 

     state = new AnimationState(stateData); // Holds the animation state for a skeleton (current animation, time, etc). 
     state.setTimeScale(0.5f); // Slow all animations down to 50% speed. 

     // Queue animations on track 0. 
     state.setAnimation(0, "run", true); 
     state.addAnimation(0, "jump", false, 2); // Jump after 2 seconds. 
     state.addAnimation(0, "run", true, 0); // Run after the jump. 
    } 

    public void render() { 
     state.update(Gdx.graphics.getDeltaTime()); // Update the animation time. 

     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

     state.apply(skeleton); // Poses skeleton using current animations. This sets the bones' local SRT. 
     skeleton.updateWorldTransform(); // Uses the bones' local SRT to compute their world SRT. 

     // Configure the camera, SpriteBatch, and SkeletonRendererDebug. 
     camera.update(); 
     batch.getProjectionMatrix().set(camera.combined); 
     debugRenderer.getShapeRenderer().setProjectionMatrix(camera.combined); 

     batch.begin(); 
     renderer.draw(batch, skeleton); // Draw the skeleton images. 
     batch.end(); 

     debugRenderer.draw(skeleton); // Draw debug lines. 
    } 

    public void resize (int width, int height) { 
     camera.setToOrtho(false); // Update camera with new size. 
    } 

    public void dispose() { 
     atlas.dispose(); 
    } 
} 
+1

Merci! Je pense que c'est la deuxième fois que vous répondez à une de mes questions avec une bonne réponse! Vous êtes génial! –