SpriteKit框架之关于物理引擎属性的那点事

SpriteKit框架之关于物理引擎属性的那点事_第1张图片


物理引擎属性图表


下面就是关于物理引擎属性图表.

属性 功能 图示
mass 它决定力是如何影响主体,以及当主体参与碰撞时它有多大的动量,以千克为单位
SpriteKit框架之关于物理引擎属性的那点事_第2张图片
friction 它决定了物体的光滑程度.取值范围为从0.0(表面光滑,物体滑动很顺畅,就像小冰块似的)到1.0(在表面滑动是,物体会很快停止)
linearDamping 物体的线性阻尼.取值范围为0.0(速度从不衰减)到1.0(速度立即衰减).默认值为0.1该属性被用于模拟水流或者空气的阻力.
SpriteKit框架之关于物理引擎属性的那点事_第3张图片
angularDamping 物体的角速度阻尼.取值范围为0.0(速度从不衰减)到1.0(速度立即衰减).默认值为0.1该属性被用于模拟水流或者空气的阻力.
SpriteKit框架之关于物理引擎属性的那点事_第4张图片
restitution 描述了当物理实体从另外一个物体上弹出时,还拥有多少能量.基本上我们称之为"反弹力".它的取值介于0.0(完全不反弹)到1.0(和物体碰撞反弹是所受的力与刚开始碰撞时的力的大小相同)之间.默认值为0.2
SpriteKit框架之关于物理引擎属性的那点事_第5张图片
density 物体的密度,以千克每立方米为单位.密度是根据单位体积的质量来定义的.密度越高,体积越大,物体也就会越重.密度的默认值为1.0
affectedByGravity 设置物体是否受重力的影响.所有的物体默认的情况都是受重力影响,但是开发者可以简单的吧这个标记设置为NO,使其不受重力影响.
SpriteKit框架之关于物理引擎属性的那点事_第6张图片
allowsRotation 设置物体是否受到一个旋转力的影响,默认为YES,如果该值设置为NO,物理体将忽略施加在它身上所有的力
resting 设置物理体是否在休息.物理引擎对于一段时间内没有移动过的物体做了一个优化,把他们标记为"正在休息(resting)",这样,物理引擎就不需要对它们进行计算了.如果你想要手动的唤醒一个正在休息的物体,简单的把resting设置为NO即可
area 物体覆盖区域
categoryBitMask 一个16进制数,定义了物体的类别.场景中每一个物理体都可以分配到超过32个不同的种类里面,每个对应位中的值
SpriteKit框架之关于物理引擎属性的那点事_第7张图片
collisionBitMask 一个16进制数,定义哪种类别的物理体可以与之发生碰撞.当两个物体相关联的时候,就可能发生一个碰撞.这个物体的位相对于其他物体的类别做一个逻辑上的加法操作.如果结果是一个非零的值,则该物体收到碰撞的影响
SpriteKit框架之关于物理引擎属性的那点事_第8张图片
usesPreciseCollisionDetection 设置物体是否使用更精准的碰撞算法.默认情况下,除非确实有必要,Sprite Kit并不会启动精确的冲突检测,因为这样运行效率更高.但是不启动精确的冲突检测会有一个副作用,如果一个物体移动的非常快(比如一个子弹),它可能会直接穿过其他物体.如果这种情况确实发生了,你就应该尝试启动更精准的冲突检测了
SpriteKit框架之关于物理引擎属性的那点事_第9张图片
velocity 物理体的速度矢量
SpriteKit框架之关于物理引擎属性的那点事_第10张图片
angularVelocity 物理体的角速度.角速度是一个围绕着一个轴矢量(0.0,0.0,1.0)的速度,单位是弧度每秒
SpriteKit框架之关于物理引擎属性的那点事_第11张图片



当把上面的物理引擎看完之后有没有感觉又一次回到了高中时代???,其实做到现在用到的属性也就是碰撞相关的,其他的属性一般都没有涉及到.希望这个属性列表能对您有所帮助,我会在下一篇博客说下如何利用物理引擎的代理方法实现节点的碰撞,谢谢大家关注.

你可能感兴趣的:(SpriteKit框架之关于物理引擎属性的那点事)