如何朝十字准线指向的方向拍摄?
使用JMonkey引擎,我正在创建一个游戏,我需要一艘船来射击其他船。
因此,我创建了可以根据用户输入在屏幕上(上,下,左,右)移动的十字准线,以便用户可以瞄准某个地方。
现在,我需要按照十字准线所在的方向从船上发射一门大炮。
如何在十字准线指向的位置拍摄?
最佳答案
您可以通过以下方式获取摄像头方向:
directionXYZ=cam.getDirection(); //Vector3f form
并可以从以下位置获取职位:
positionXYZ=cam.getLocation(); //Vector3f
您可以进行射线投射:
Ray ray = new Ray(directionXYZ, positionXYZ);
然后可以收集碰撞数据:
shootables.collideWith(ray, results)
可射击的是“节点”。
最后,检查您想要什么:
for (int i = 0; i < results.size(); i++) {
// For each hit, we know distance, impact point, name of geometry.
float dist = results.getCollision(i).getDistance();
Vector3f pt = results.getCollision(i).getContactPoint();
String hit = results.getCollision(i).getGeometry().getName();
System.out.println("* Collision #" + i);
System.out.println(" You shot " + hit + " at " + pt + ", " + dist + " wu away.");
}
取自jmonkey wiki