I am make characters in my game have a ragdoll effect when they die so I followed the test case in jme3-Tests. This is my ragdoll code:
ragdoll = new KinematicRagdollControl(1f);
setUpBones();
Soldier.addControl(ragdoll);
bulletAppState.getPhysicsSpace().add(ragdoll);
ragdoll.setEnabled(false);
public void setUpBones(){
ragdoll.addBoneName(“spine”);
ragdoll.addBoneName(“chest”);
ragdoll.addBoneName(“neck”);
ragdoll.addBoneName(“shoulder.L”);
ragdoll.addBoneName(“shoulder.R”);
ragdoll.addBoneName(“head”);
ragdoll.addBoneName(“upper_arm.L”);
ragdoll.addBoneName(“forearm.L”);
ragdoll.addBoneName(“hand.L”);
ragdoll.addBoneName(“upper_arm.R”);
ragdoll.addBoneName(“forearm.R”);
ragdoll.addBoneName(“hand.R”);
ragdoll.addBoneName(“hips”);
ragdoll.addBoneName(“thigh.L”);
ragdoll.addBoneName(“thigh.R”);
ragdoll.addBoneName(“shin.L”);
ragdoll.addBoneName(“foot.L”);
ragdoll.addBoneName(“toe.L”);
ragdoll.addBoneName(“heel.L”);
ragdoll.addBoneName(“heel.02.L”);
ragdoll.addBoneName(“shin.R”);
ragdoll.addBoneName(“foot.R”);
ragdoll.addBoneName(“heel.R”);
ragdoll.addBoneName(“toe.R”);
ragdoll.addBoneName(“heel.02.R”);
}
However when I run it, I get:
java.lang.NullPointerException
at com.jme3.scene.Spatial.addControl(Spatial.java:591)
at com.jme3.bullet.control.KinematicRagdollControl.setSpatial(KinematicRagdollControl.java:331)
at com.jme3.scene.Spatial.addControl(Spatial.java:591)
at mygame.Enemy.createSoldier(Enemy.java:89)
at mygame.Enemy.<init>(Enemy.java:61)
at mygame.Main.setUpMap(Main.java:391)
at mygame.Main.simpleInitApp(Main.java:130)
at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:225)
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:662)
Did I set something incorrectly?