如何朝十字准线指向的方向拍摄?
使用 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
关于java - JMonkey - 向十字线方向射击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16703407/