Game Development Reference
In-Depth Information
}
Ray ray = cam.getPickRay(screenX, screenY);
Vector3 position = ray.origin.cpy();
btRigidBody body;
switch (item) {
default:
case BOX:
body = worldInstance.create_box(position, false);
break;
case CONE:
body = worldInstance.create_cone(position, false);
break;
case CYLINDER:
body = worldInstance.create_cylinder(position, false);
break;
case SPHERE:
body = worldInstance.create_sphere(position, false);
break;
case RAY_PICKING:
rayFrom.set(ray.origin);
rayTo.set(ray.direction).scl(50f).add(rayFrom); // 50 meters max
rayTestCB.setCollisionObject(null);
rayTestCB.setClosestHitFraction(1f);
worldInstance.getWorld().rayTest(rayFrom, rayTo, rayTestCB);
if (rayTestCB.hasHit()) {
final btCollisionObject obj = rayTestCB.getCollisionObject();
body = (btRigidBody) (obj);
if (body != groundBody)
worldInstance.remove(body);
}
return true;
}
body.applyCentralImpulse(ray.direction.scl(20));
return true;
};
};
}
 
Search WWH ::




Custom Search