Nape中的LineJoint-线段关节

作者: ladeng6666 分类: Nape 发布时间: 2013-03-13 23:30 阅读: 2,300

今天要学习的内容时LineJoint线段关节,通过线段关节,我们可以限制刚体在某个指定的方向上来回移动。就像算珠只能在算盘的轴上移动一样。

老规矩,我们先来看一下LineJoint的构造函数:

每个参数的作用说明如下:

  • body1:和其他的关节一下,关节连接的第1个刚体
  • body2:和其他的关节一下,关节连接的第2个刚体
  • anchor1:连接刚体body1的节点,其坐标是相对于body1的本地坐标的
  • anchor2:连接刚体body2的节点,其坐标是相对于body2的本地坐标的
  • direction:线段关节中线条的方法,用一个Vec2向量表示
  • jointMin:线段上沿direction方法,距离anchor1的距离
  • jointMax:线段沿上direction方向,距离anchor2的距离

看完构造函数和参数说明,依然有些不知其解,看看下面的图示会更简单些:

lineJoint_desc

如图所示,anchor1和anchor2是线段关节中的两个点,两点形成的线段即线段关节。线段关节的方向可以用anchor1.sub(anchor2)表示。线段起点与anchor1的距离是JointMin,终点与anchor1的距离是jonitMax;jointMin/jointMax小于0,在anchor1左侧,大于0在anchor1右侧。值得注意的是,body1可不能绕着anchor1旋转,而body2可以绕着anchor2旋转。

还记得distanceJoint示例吗?如果把示例中的刚体限制在水平方向移动,会是什么样子呢?下面的示例中,点击圆形刚体,可以在水平方向拖动,它通过一个distanceJoint关节与下面的矩形刚体连接。按下空格键”剪断”这个distanceJoint关节,让矩形落到下面的圆形范围内。有没有《割绳子》游戏里的样子呢?赶快动手试试吧!

Sorry, either Adobe flash is not installed or you do not have it enabled

完整的代码和注释如下:

点击下载源文件

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注