学习Nape中的Material类

作者: ladeng6666 分类: Nape 发布时间: 2012-11-30 22:35 阅读: 6,194

创建简单的Nape刚体教程中,我们提到了Material类,今天我们就来学习一下Material类的用法。

Material类对象时Shape类的一个属性,用来设置刚体的弹性、摩擦系数等属性, 模拟现实中的阻尼运动。弹性系数或摩擦系数等属性可以在Material类的构造函数中设置,如下:

每个参数的意义如下:

  •  elasticity:材质的弹性系数。可以是任何值,设置为0表示不反弹。设置成1可以理解成无损耗反弹,就像永动机一样。
  • dynamicFriction:设置材质的动态摩擦系数。可以是大于0的任意值,值越大,物体再滑行时,速度减的越快。
  • staticFriction:静态摩擦系数。值越大,物体减速越快,对于静止的物体,动起来也越困难。
  • density:设置材质的密度,单位是克/px/px,默认为1。
  • rollingFriction:旋转摩擦系数。值越大,角速度减小的越快。

或者也可以通过这些同名的属性来设置,比如:

另外,Material类中还有一些静态的方法,额可以返回一些预定义的Material对象,从这些方法名称可以知道,它们分别代表的不同的材质,这些方法也也就是根据这些材质预先定义好上面的每个属性,创建一个新Material类,并返回。这些静态方法有:

  •  glass:预定义玻璃材质,返回值 new Material(0.4,0.4,0.94,2.6,0.002)
  • ice:预定义冰块材质,返回值new Material(0.3,0.03,0.1,0.9,0.0001)
  • rubber:预定义橡胶材质,返回值new Material(0.8,1.0,1.4,1.5,0.01)
  • sand:预定义沙土材质,返回值new Material(-1.0,0.45,0.6,1.6,16.0)
  • steel:预定义钢铁材质,返回值new Material(0.2,0.57,0.74,7.8,0.001)
  • wood:预定义木头材质,返回值new Material(0.4,0.2,0.38,0.7,0.005)

在下面的示例中,通过上的面板,可以调节每个参数,或者选择左边预定义的material类型。点击舞台创建矩形,按下Ctrl键的同时点击舞台,创建圆形矩形,设置不同的参数看看不同的效果吧!

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

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

15条评论
  • vpen

    2012 年 12 月 2 日 下午 6:13

    比起Box2D有什么优点跟缺点么?

    1. ladeng6666

      2012 年 12 月 3 日 下午 8:50

      Material类相当于Box2D中的b2Fixutre类,相比之下,Nape的Material类里多了dynamicFriction、staticFriction和rollingFriction的区分,具体的差别可以试着调节下面的slider看看。
      至于优缺点嘛,Nape的速度会比Box2D更快些(我没有测试过,网上是这么说的),另外Nape是基于像素px的,不需要进行单位转换,这一点比较好!

  • 巴哈马包包

    2012 年 12 月 5 日 下午 9:18

    缺点 资料少。

  • 942

    2012 年 12 月 26 日 下午 4:31

    拉登哥,下面那个示例不错的说!

  • 942

    2012 年 12 月 26 日 下午 4:45

    rollingFriction:旋转摩擦系数。值越大,角速度减小的越快
    这个角速度是什么意思啊???

  • 942

    2012 年 12 月 26 日 下午 5:56

    写代码测试下,rollingFriction值越大,它滚动时消耗的能量越多!所以滚不远,嘎嘎!

  • Mr.Star

    2013 年 1 月 6 日 下午 2:32

    拉登兄给力!

    1. ladeng6666

      2013 年 1 月 6 日 下午 7:49

      兄弟你来了!来来,里屋坐!

  • 斯樵

    2013 年 6 月 23 日 下午 6:34

    拉登给力 很不错的教程,之前你是用的新浪博客吧

    1. ladeng6666

      2013 年 6 月 23 日 下午 7:06

      是的,之前也在关注我的博客吗?谢谢!

      1. 斯樵

        2013 年 6 月 25 日 下午 10:57

        是啊 很早就关注你了 你这个名字太霸气了

  • dennisleung

    2013 年 8 月 30 日 上午 1:17

    这节没有原码?

    1. ladeng6666

      2013 年 8 月 30 日 下午 7:11

      没有,就是讲解Material的用法,源码没什么好看的

  • 游戏

    2015 年 4 月 26 日 下午 12:09

    资料不少,只是系统的中文资料太少。也就只能看看大叔的教程。

    1. ladeng6666

      2015 年 4 月 26 日 下午 12:29

      中文版资料,我的还算是比较全的,只是最近工作忙,一直没有时间再整理,放心,今年肯定会出结果的!

发表评论

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