找不到字段:pixelToWorld(com.uwsoft.editor.renderer.data.ProjectInfoVO)

时间:2015-09-08 18:17:37

标签: java libgdx overlap2d

编译桌面应用程序时出现此错误:

Exception in thread “LWJGL Application” com.badlogic.gdx.utils.SerializationException: Field not found: pixelToWorld (com.uwsoft.editor.renderer.data.ProjectInfoVO)
at com.badlogic.gdx.utils.Json.readFields(Json.java:776)
at com.badlogic.gdx.utils.Json.readValue(Json.java:902)
at com.badlogic.gdx.utils.Json.fromJson(Json.java:714)
at com.uwsoft.editor.renderer.resources.ResourceManager.loadProjectVO(ResourceManager.java:334)
at com.uwsoft.editor.renderer.resources.ResourceManager.initAllResources(ResourceManager.java:86)
at com.uwsoft.editor.renderer.Overlap2DStage.initSceneLoader(Overlap2DStage.java:92)
at com.mygdx.Test.GameStage.<init>(GameStage.java:9)
at com.mygdx.Test.TestGame.create(TestGame.java:15)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:143)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)

我检查了我的project.dt,我找到了'pixelToWorld'字段。为什么会这样? 在这里查看我的project.dt:http://pastebin.com/FqnVkw8p

更新:

我遵循本教程:making-physics-based-side-scroller-project-setup-part-1

我的核心项目中只有2个班级。 GameStage.javaTestGame.java

GameStage.java

package com.mygdx.Test;

import com.uwsoft.editor.renderer.Overlap2DStage;

public class GameStage extends Overlap2DStage{
    public GameStage() {

        // This will create SceneLoader instance and configure all things like default resource manager, physics e.t.c
        initSceneLoader();

        // This will load MainScene data from json and make Actors from it
        sceneLoader.loadScene("MainScene");

        // Get the root actor and add it to stage
        addActor(sceneLoader.getRoot());
    }
}

TestGame.java

package com.mygdx.Test;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class TestGame extends ApplicationAdapter {

    private GameStage stage;

    @Override
    public void create () {
        stage = new GameStage();
    }

    @Override
    public void render () {
        Gdx.gl.glClearColor(0.8f, 0.8f, 0.8f, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        stage.act();
        stage.draw();
    }
}

2 个答案:

答案 0 :(得分:1)

我一直在寻找你可以find here的来源,我发现 sceneLoader.loadScene()方法返回场景使用 .dt (我猜它就像.json)文件名保存在HashMap中。

问题是 loadScene()正在寻找 pixelToWorld 字段,但 MainScene.dt

我猜你应该调用sceneLoader.loadScene(“project”);或者你对MainScene.dt做错了,这就是为什么没有pixelToWorld

答案 1 :(得分:0)

我认为问题在于您使用的是最新版本的Overlap IDE,但是运行时版本太早了。 尝试将运行时升级到1.1并重试,尽管您可能必须使用场景加载器