未找到字段:pixelToWorld (com.uwsoft.editor.renderer.data.ProjectInfoVO)
Field not found: pixelToWorld (com.uwsoft.editor.renderer.data.ProjectInfoVO)
编译桌面应用程序时出现此错误:
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.run(LwjglApplication.java:120)
我检查了我的 project.dt,我找到了字段“pixelToWorld”。为什么会这样?
在这里查看我的project.dt:http://pastebin.com/FqnVkw8p
更新:
我遵循这个教程:making-physics-based-side-scroller-project-setup-part-1
我的核心项目只有2个class。 GameStage.java
和 TestGame.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();
}
}
我一直在调查您可以 find here 的资源,我发现 sceneLoader.loadScene() 方法 returns 带有 Scene 的对象被保存在 HashMap 中,带有 .dt(我猜它类似于 .json)文件名.
问题是 loadScene() 方法正在寻找 pixelToWorld 字段,但 中没有 pixelToWorld MainScene.dt
我想你应该打电话给 sceneLoader.loadScene("project");或者你对 MainScene.dt 做错了什么,这就是为什么没有 pixelToWorld
我认为问题在于您使用的是最新版本的 Overlap IDE,但使用的运行时版本太早。
尝试将您的运行时升级到 1.1 并重试,尽管您可能必须使用 sceneloader
编译桌面应用程序时出现此错误:
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.run(LwjglApplication.java:120)
我检查了我的 project.dt,我找到了字段“pixelToWorld”。为什么会这样? 在这里查看我的project.dt:http://pastebin.com/FqnVkw8p
更新:
我遵循这个教程:making-physics-based-side-scroller-project-setup-part-1
我的核心项目只有2个class。 GameStage.java
和 TestGame.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();
}
}
我一直在调查您可以 find here 的资源,我发现 sceneLoader.loadScene() 方法 returns 带有 Scene 的对象被保存在 HashMap 中,带有 .dt(我猜它类似于 .json)文件名.
问题是 loadScene() 方法正在寻找 pixelToWorld 字段,但 中没有 pixelToWorld MainScene.dt
我想你应该打电话给 sceneLoader.loadScene("project");或者你对 MainScene.dt 做错了什么,这就是为什么没有 pixelToWorld
我认为问题在于您使用的是最新版本的 Overlap IDE,但使用的运行时版本太早。 尝试将您的运行时升级到 1.1 并重试,尽管您可能必须使用 sceneloader