2017-08-03 25 views
0

我在代码中使用SkeletonJson.readSkeletonData时遇到了问题。如何使用SkeletonJson.readSkeletonData?

public void create() { 
    camera = new OrthographicCamera(); 
    batch = new PolygonSpriteBatch(); // Required to render meshes. SpriteBatch can't render meshes. 
    renderer = new SkeletonRenderer(); 
    renderer.setPremultipliedAlpha(true); 
    debugRenderer = new SkeletonRendererDebug(); 
    debugRenderer.setMeshTriangles(false); 
    debugRenderer.setRegionAttachments(false); 
    debugRenderer.setMeshHull(false); 

    atlas = new TextureAtlas(Gdx.files.internal("raptor/raptor.atlas")); 
    SkeletonJson json = new SkeletonJson(atlas); // This loads skeleton JSON data, which is stateless. 
    json.setScale(0.5f); // Load the skeleton at 50% the size it was in Spine. 
    SkeletonData skeletonData = json.readSkeletonData(Gdx.files.internal("raptor/raptor.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. 

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

    // Queue animations on tracks 0 and 1. 
    state.setAnimation(0, "walk", true); 

    state.addAnimation(1, "gun-grab", false, 2); // Keys in higher tracks override the pose from lower tracks. 
} 

异常消息如下。

enter image description here

+0

我不知道是否因为spine-libgdx的版本。 –

+0

请尝试总是复制问题的代码,尤其是堆栈跟踪失败的代码,以及异常本身(以避免imgur将来删除它并使其易于搜索)。除此之外,看起来你正在循环一个数组并在其外移动。检查一个'for'你结束的时间太晚了(例如,'index <= array.size()') – Korcholis

回答

0

似乎在该行的代码失败:

SkeletonData skeletonData = 
    json.readSkeletonData(Gdx.files.internal("raptor/raptor.json")); 

我认为问题属于内部raptor.json。检查它是否正常形成

+0

我可以使用skeletonViewer.jar打开raptor.json,它运行良好。 –