运行游戏时出现以下错误:
当我创建名为Portal_Sign的类的实例时,会发生此错误。通常我使用以下代码: game.stage.addActor((Actor)con.newInstance(parameters)); 我找回了" con"来自Class.class.getConstructor()的对象,这意味着我使用反射来实例化对象(因为我可以构造任意多个对象,每个对象都有相当类似的构造函数)。
我知道我在创建Portal_Sign时只会收到错误。如果我将Vector2中代表位置的值更改为新的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 (相关代码位于加载方法底部的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物理内容以及位置。
我不明白为什么我会遇到这个问题,任何提示都会很棒,请帮忙。如果你想要我的任何其他东西,只需要它。