java - Jmonkey 空指针异常

标签 java animation nullpointerexception blender jmonkeyengine

这是我的代码,用于加载带有模型的节点,然后附加动画控件。我收到 NullPointerException 因为它说我的 AnimControl 为 null。

我的动画控制类位于 Models/stickman.blend/Armature/Cube

Node model = (Node)assetManager.loadModel("Models/stickman.j3o");
control = model.getControl(AnimControl.class);
control.addListener(this);
channel = control.createChannel();
channel.setAnim("jump");
model.scale(0.25f);
model.addControl(physicsCharacter);
getPhysicsSpace().add(physicsCharacter);
rootNode.attachChild(model);

如何摆脱这个空指针异常或将 AnimControl 类移出子目录,使其不为空?谢谢。

java.lang.NullPointerException
at mygame.Main.simpleInitApp(Main.java:96)
at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:226)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:130)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:207)
at java.lang.Thread.run(Thread.java:744)

enter image description here

最佳答案

NullPointerException 尽可能清楚地告诉您变量 control 为 null。这反过来意味着 model.getControl(AnimControl.class); 返回了 null。 javadoc tells you it will do this如果没有 AnimControl.class 类型的控件

我想,看看the tutorial ,您必须将您的节点附加到根节点。来自 this page

Every JME3 application has a rootNode: Your game automatically inherits the rootNode object from SimpleApplication.

因此,只要您的类扩展了 SimpleApplication,您只需添加

rootNode.attachChild(model);

紧接着

Node model = (Node)assetManager.loadModel("Models/stickman.j3o");

这个附件似乎会自动将您的模型与控件关联起来 - 正如animation beginners tutorial中的这段代码片段所示。

player = (Node) assetManager.loadModel("Models/Oto/Oto.mesh.xml");
player.setLocalScale(0.5f);
rootNode.attachChild(player);
control = player.getControl(AnimControl.class);

关于java - Jmonkey 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28037198/

相关文章:

java - Spring REST Api——访问存储库中的用户详细信息

Java String.split() 在逗号后跟非空白

iOS - MapKit 相机旋转动画

java - Guice注入(inject)空指针

java - 设置属性时出现 NullPointEException 错误

java - Spring SimpleJdbcCall 默认(可选)参数

java - RSS Feed 解析,提取字段值

javascript - 在 html5 中加载和播放图像序列作为动画的最佳方式?

firefox - Angular 2 动画/过渡仅适用于 chrome?

java - 什么是 NullPointerException,我该如何解决?