学习Nape中的Material类

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

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

	public function Material (
		elasticity:Number = 0,
		dynamicFriction:Number = 1,
		staticFriction:Number = 2, 
		density:Number = 1,
		rollingFriction:Number = 0.01
		);

每个参数的意义如下:

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

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

		material.elasticity= 1;

另外,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键的同时点击舞台,创建圆形矩形,设置不同的参数看看不同的效果吧!

[swfobject]679[/swfobject]

联系作者

公众号:拉小登 | 微博:拉登Dony | B站:拉小登Excel

15 Replies to “学习Nape中的Material类”

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

回复 斯樵

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