|
@@ -8,9 +8,11 @@ import com.jme3.bullet.collision.shapes.CollisionShape;
|
|
|
import com.jme3.bullet.control.RigidBodyControl;
|
|
|
import com.jme3.bullet.util.CollisionShapeFactory;
|
|
|
import com.jme3.font.BitmapText;
|
|
|
+import com.jme3.math.Vector3f;
|
|
|
import com.jme3.scene.Node;
|
|
|
import com.jme3.scene.Spatial;
|
|
|
import java.util.List;
|
|
|
+
|
|
|
/**
|
|
|
*
|
|
|
* @author @wezrule
|
|
@@ -42,12 +44,19 @@ public class TestPhysicsRayCast extends SimpleApplication {
|
|
|
|
|
|
@Override
|
|
|
public void simpleUpdate(float tpf) {
|
|
|
- List<PhysicsRayTestResult> rayTest = bulletAppState.getPhysicsSpace().rayTest(cam.getLocation(), cam.getLocation().add(cam.getDirection()));
|
|
|
+ float rayLength = 50f;
|
|
|
+ Vector3f start = cam.getLocation();
|
|
|
+ Vector3f end = cam.getDirection().scaleAdd(rayLength, start);
|
|
|
+ List<PhysicsRayTestResult> rayTest
|
|
|
+ = bulletAppState.getPhysicsSpace().rayTest(start, end);
|
|
|
if (rayTest.size() > 0) {
|
|
|
PhysicsRayTestResult get = rayTest.get(0);
|
|
|
PhysicsCollisionObject collisionObject = get.getCollisionObject();
|
|
|
- //do stuff
|
|
|
+ // Display the name of the 1st object in place of FPS.
|
|
|
fpsText.setText(collisionObject.getUserObject().toString());
|
|
|
+ } else {
|
|
|
+ // Provide prompt feedback that no collision object was hit.
|
|
|
+ fpsText.setText("MISSING");
|
|
|
}
|
|
|
}
|
|
|
|