运行游戏时出现以下错误:
当我创建一个名为 Portal_Sign 的类的实例时会发生此错误。通常我使用以下代码: game.stage.addActor((Actor) con.newInstance(parameters)); 我从 Class.class.getConstructor() 中检索了“con”对象,这意味着我正在使用反射来实例化对象(因为我可以构造许多对象中的任何一个,每个对象都有相当相似的构造函数)。
我知道只有在创建 Portal_Sign 时才会收到错误消息。如果我将 Vector2 中代表位置的值更改为 new Vector2(1,1),我不会遇到问题。这同样适用于 (0,0)、(0,1)、(1,0)、(0,-1)、(-1,0) 和 (-1,-1) 或任何符合大于或等于 -1 且小于或等于 +1。
if(c.getSimpleName().equals(Portal_Sign.class.getSimpleName())){
game.stage.addActor(new Portal_Sign(game,new Vector2(2,1),0,0,"asdf|ASDF"));
}else{
game.stage.addActor((Actor) con.newInstance(parameters));
}
如果我创建 2 个 Portal_Signs,错误就会消失。
下面是一些源代码: http ://hobogames.atspace.cc/TEMPFORERROR/LevelManager.java (相关代码在load方法底部的try/catch中)
http://hobogames.atspace.cc/TEMPFORERROR/Portal_Sign.java
http://hobogames.atspace.cc/TEMPFORERROR/packs.level 正在加载的文件。请注意,上传的版本不会导致错误,因为它会创建 2 个标志。但是,如果您删除最后一行 (Portal_Sign(4,1,0,0,"Baddies|0/32");),您会收到列出的错误。
http://hobogames.atspace.cc/TEMPFORERROR/Solid.java Portal_Sign 的最高父级,处理 Libgdx 和 box2D 物理内容,以及位置。
我不明白为什么我会遇到这个问题,任何提示都会很棒,请帮助。如果你想从我这里得到任何东西,只要问它。