如何朝十字准线指向的方向拍摄?

使用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

09-08 08:17