首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jMonkey中检测两个节点的交集

如何在jMonkey中检测两个节点的交集
EN

Stack Overflow用户
提问于 2013-05-05 01:18:54
回答 1查看 2.5K关注 0票数 1

我正在做一个java项目;“汽车游戏”,我想要检测汽车和任何物体(“Node”)之间的碰撞;比如路上的圆锥体。

与本教程类似;http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_picking

本教程介绍如何查找光线和附加了长方体的节点之间的交点。我想用汽车底盘替换光线,以便进行交叉点检测。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-27 17:50:18

假设你有两个可碰撞的a和b,并且想要检测它们之间的碰撞。碰撞方可以是几何体、附加了几何体的节点(包括rootNode)、平面、四边形、直线或射线。一个重要的限制是只能碰撞几何体与边界体积或光线。(例如,这意味着a必须属于节点或几何体类型,而b必须分别属于BoundingBox、BoundingSphere或Ray类型。)

接口com.jme3.collision.Collidable声明了一个方法,该方法返回在两个Collidables之间发现了多少个冲突: collideWith(Collidable,CollisionResults results)。

代码示例:

代码语言:javascript
复制
// Calculate detection results
  CollisionResults results = new CollisionResults();
  a.collideWith(b, results);
  System.out.println("Number of Collisions between" + 
      a.getName()+ " and " + b.getName() + ": " + results.size());
  // Use the results
  if (results.size() > 0) {
    // how to react when a collision was detected
    CollisionResult closest  = results.getClosestCollision();
    System.out.println("What was hit? " + closest.getGeometry().getName() );
    System.out.println("Where was it hit? " + closest.getContactPoint() );
    System.out.println("Distance? " + closest.getDistance() );
  } else {
    // how to react when no collision occured
  }
}

我认为您还需要阅读本教程

http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:collision_and_intersection

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16376961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档