用Nape制作智商球模型

作者: ladeng6666 分类: Nape 发布时间: 2013-04-13 15:17 阅读: 2,623

智商球也是一个基于物理引擎的益智类游戏,玩家通过点击舞台,可以创建一个关节,游戏主角会在这个关节的牵引下向这个方向移动,如下图所示。今天我们学习用Nape的PivotJoint关节来制作一个《智商球》(Catch the candy)模型。

PovitJointAnotherUse

其实呢,这个效果我们并不陌生,在PivotJoitn关节实现鼠标关节时,当鼠标快速移动时,鼠标位置与刚体之间就会出现类似的牵引效果。

原理上也很简单,创建一个PivotJoint关节,设置关节连接刚体一个是目标刚体,另一个是Space.world刚体(这是一个空刚体,我在PivotJoitn关节实现鼠标关节里曾讲过),设置节点anchor为目标刚体的坐标。

在实现鼠标拖动效果是,我们在鼠标移动事件处理函数中,更新节点anchor的坐标,这个更新频率是很高的,所以我看到的牵引效果并不明显。

在<智商球>游戏里,玩家是通过点击鼠标实现的牵引,所以要实现类似的效果,我们只要把MOUSE_MOVE事件处理函数中的代码,翻到MOUSE_DOWN事件处理函数就可以了。效果如下,点击舞台任意位置,开始牵引。

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

完整的代码如下:

代码中有几点要特别注意:

  1. 设置关节的stiff属性。stiff表示关节是否有弹性,stiff为true表示没有弹性,false是有弹性。如果关节没有弹性,目标刚体会突然更新到目标位置。
  2. 限制关节的最大牵引力maxForce属性。关节的牵引力用maxForce属性表示,默认是无穷大,这样目标对象会瞬间移动至鼠标位置,这是我们不希望看到的,所以要设置maxForce属性,加以限制。

代码中用到了LDEasyNape,如果你不会用请参考这里

点击下载完整的源文件

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

一条评论
  • Darcy

    2013 年 9 月 3 日 下午 10:42

    智慧的分享!

发表评论

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