SlowBall', radius: 13, density: 0.6, friction: 0.8, restitution BouncyBall', radius: 10, density: 1.1, friction: 0.8, restitution this.B2FixtureDef() fixDef.density = ball.density fixDef.friction = ball.friction fixDef.restitution = ball.restitution .... } 我们在绘制篮框或小球时,相关信息全部从levels数组中获取,如此一来,我们就可以通过增加levels数组中的内容,或改变其中相关内容进而非常容易的去修改页面上各种物体的绘制
回弹力 restitution 前面的例子中创建的物体都是没有弹力的,它们掉到地面时不会回弹。 如果希望物体有弹性,可以配置它的 restitution 。 (320, 100, 80, 80, { restitution: 1.2 // 设置弹力 }) // 地面 let ground = Matter.Bodies.rectangle(200, 390 // 省略部分代码 // 矩形A let rectA = Matter.Bodies.rectangle(80, 100, 80, 80, { restitution: 1, mass: 0.1 }) // 矩形B let rectB = Matter.Bodies.rectangle(200, 100, 80, 80, { restitution: 1, mass: 5 }) / / 矩形C let rectC = Matter.Bodies.rectangle(320, 100, 80, 80, { restitution: 1, mass: 10 }) // 地面
>0</phys:Restitution> <phys:DynamicFriction>0</phys:DynamicFriction> <phys >0</phys:Restitution> <phys:DynamicFriction>0</phys:DynamicFriction> <phys >0.5</phys:Restitution> <phys:DynamicFriction>0.5</phys:DynamicFriction> <phys >0.2</phys:Restitution> <phys:DynamicFriction>0.5</phys:DynamicFriction> <phys >0</phys:Restitution> <phys:DynamicFriction>1</phys:DynamicFriction> <phys:StaticFriction
document.body.addEventListener('keydown', (e) => { const ball = Bodies.circle(400, 200, 50, { restitution document.body.addEventListener('keydown', (e) => { const ball = Bodies.circle(400, 200, 50, { restitution [key], HEIGHT - 50); } }) function addLetter(key, x, y) { const ball = Bodies.circle(x, y, 30, { restitution const ball = Bodies.circle(x, y, 30, { restitution: 0.9, friction: 0.001 // 设置摩檫力,默认为0.5 render function addLetter(key, x, y) { playSound('type'); const ball = Bodies.circle(x, y, 30, { restitution
new this.B2FixtureDef() fixDef.density = 0.6 fixDef.friction = 0.8 fixDef.restitution 物体的生成需要定义两个属性变量,一个是body, 一个是fixture,body的设置决定物体的形状,fixuture决定物体的表皮属性,在代码中我们通过density设置物体密度,fricition设置物体的摩擦力,restitution new this.B2FixtureDef() fixDef.density = 1.0 fixDef.friction = 0.5 fixDef.restitution fixDef.shape.SetAsBox(5 / this.pxPerMeter, 40 / this.pxPerMeter) fixDef.restitution
limit of angular movement, expressed in radians ); constraint.setRestitution( linear, // amount of restitution when reaching the linear limits angular // amount of restitution when reaching the angular limits 材质Materials 在THREE材质基础上增加了摩擦度和恢复度 var friction = 0.8; // 摩擦度 var restitution = 0.3; // 恢复度 var material = Physijs.createMaterial( new THREE.MeshBasicMaterial({ color: 0x888888 }), friction, restitution
restitution = 0 let fire = SKEmitterNode(fileNamed: "Fire") fire?.
目前的功能还比较简单,只支持 Friction 和 Restitution。 Effect 资源面板 ?
fixtureDef = FixtureDef() fixtureDef.shape = boxShape fixtureDef.density = 1f fixtureDef.restitution 这里需要注意一下 restitution 这个属性,这个指的是弹性恢复系数,取值在[0,1]之间。当r是0的时候,碰撞为完全非弹性碰撞,为1的时候,为完全弹性碰撞。
Collision.Masks.ground.bitmask physicsBody.affectedByGravity = true physicsBody.allowsRotation = false physicsBody.restitution
fixtureDef.density = mDesity; fixtureDef.friction = mFriction;//摩擦系数 fixtureDef.restitution fixtureDef.density = mDesity; fixtureDef.friction = mFriction;//摩擦系数 fixtureDef.restitution
b2FixtureDef(); if (dynamic) { fixDef.density = 0.5; fixDef.friction = 0.5; fixDef.restitution
fixDef = new b2FixtureDef(); if (dynamic) { fixDef.density = 0.5; fixDef.friction = 0.5; fixDef.restitution
b2FixtureDef(); if (dynamic) { fixDef.density = 0.5; fixDef.friction = 0.5; fixDef.restitution
b2FixtureDef(); if (dynamic) { fixDef.density = 0.5; fixDef.friction = 0.5; fixDef.restitution
在场景编辑器中开启刚体外形编辑功能 Tag: 为碰撞组件设置一个ID用于对象识别 Density:密度 Sensor:选中不会产生物理效果,但会响应物理碰撞事件(篮框就利用了这个属性) Friction:摩擦系数 Restitution
FixtureDef fd = new FixtureDef(); fd.shape = cs; fd.density = 2.0; fd.friction = 0.01; fd.restitution
Composites.stack(100, 0, 10, 8, 10, 10, function(x, y) { return Bodies.circle(x, y, Common.random(15, 30), { restitution
boxDef.density = 1.0; boxDef.friction = 0.5; boxDef.restitution
new this.B2FixtureDef() fixDef.density = 0.2 fixDef.friction = 0.5 fixDef.restitution