@Override protected void controlUpdate(float tpf) { if (fire) { bulletTimer += tpf; if (bulletTimer > 0.07f) { Geometry newBullet = bullet.clone(false); newBullet.setLocalRotation( shipNode.getControl(RigidBodyControl.class).getPhysicsRotation().clone()); newBullet.setLocalTranslation( shipNode.getControl(RigidBodyControl.class).getPhysicsLocation().clone()); newBullet.addControl( new BulletControl(newBullet.getLocalTranslation(), newBullet, bulletApp, shape, asm)); asm.getRootNode().attachChild(newBullet); bulletTimer = 0f; } } else if (!fire) { bulletTimer = 0f; } }