java - JMonkey - 向十字线方向射击

标签 java 3d jmonkeyengine aim

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

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

相关文章:

java - 高效优化算法

java - 导入 csv 文件以启动 Android 应用程序

ios - Swift 3 - SceneKit 获取 3d 模型 X Y Z 旋转值

java - BetterCharacterControl 未在正确的位置应用 RigidBody

java - 当我的类有一个 main 类时,为什么我会得到 "Selection does not contain a main type"?

java - 使用 JAAS 时如何在登录页面中显示错误消息而不是重定向到错误页面

java - 带有 Appodeal 的原生广告

javascript - 如何反转在​​ CylinderGeometry 对象中应用纹理的方向?

javascript - 在浏览器中使用 ThreeJS 或 X3DOM 参数化和编辑模型

java - 无法与自定义控件 onClick 交互