initChipmunk:function() {
@H_403_6@this@H_403_6@.space = new@H_403_6@ cp.Space();
@H_403_6@this@H_403_6@.setupDebugNode();
@H_403_6@//@H_403_6@设置空间内刚体间联系的迭代计算器个数和弹性关系迭代计算器个数.
@H_403_6@chipmunk使用迭代计算器计算出空间内物体的受力关系.
@H_403_6@它建立一个大列表存放物体间所有的碰撞,连接等相互影响关系.根据实际情况传递某些相互作用.
@H_403_6@传递相互作用的数取决于迭代器的个数,每次迭代都使计算结果更精确.
@H_403_6@如果进行了过多的迭代,虽然物理影响效果会更好,但是这也会消耗过多的cpu处理时间.
@H_403_6@如果进行的迭代太少,物理模拟效果会不精确,或者使本该静止的物体没能静止下来.
@H_403_6@使用迭代器的个数在于平衡cpu性能和物理模拟精确度之间权衡.@H_403_6@
this@H_403_6@.space.iterations = 60@H_403_6@;
@H_403_6@设置空间的重力向量@H_403_6@
this@H_403_6@.space.gravity = cp.v(0@H_403_6@,-500@H_403_6@);
@H_403_6@ 休眠临界时间@H_403_6@
this@H_403_6@.space.sleepTimeThreshold = 0.5@H_403_6@;
@H_403_6@this@H_403_6@.space.collisionSlop = 0.5@H_403_6@;
@H_403_6@this@H_403_6@.addFloor();
@H_403_6@this@H_403_6@.addWalls();
@H_403_6@var@H_403_6@ width = 50@H_403_6@;
@H_403_6@var@H_403_6@ height = var@H_403_6@ mass = width * height * 1@H_403_6@/1000@H_403_6@;
@H_403_6@var@H_403_6@ rock = this@H_403_6@.space.addBody(new@H_403_6@ cp.Body(mass,cp.momentForBox(mass,width,height)));
rock.setPos(cp.v(@H_403_6@500@H_403_6@,100@H_403_6@));
rock.setAngle(@H_403_6@1@H_403_6@);
@H_403_6@var@H_403_6@ shape = this@H_403_6@.space.addShape(new@H_403_6@ cp.BoxShape(rock,height));
shape.setFriction(@H_403_6@0.3@H_403_6@);
shape.setElasticity(@H_403_6@0.3@H_403_6@);
@H_403_6@var@H_403_6@ radius = 20@H_403_6@;
mass @H_403_6@= 3@H_403_6@;
@H_403_6@var@H_403_6@ body = new@H_403_6@ cp.Body(mass,cp.momentForCircle(mass,radius,cp.v(0@H_403_6@))));
body.setPos(cp.v(@H_403_6@200@H_403_6@,(2@H_403_6@ * radius + 5@H_403_6@)));
@H_403_6@var@H_403_6@ circle = new@H_403_6@ cp.CircleShape(body,128); line-height:1.5!important">0@H_403_6@)));
circle.setElasticity(@H_403_6@0.8@H_403_6@);
circle.setFriction(@H_403_6@1@H_403_6@);
@H_403_6@var@H_403_6@ ramp = new@H_403_6@ cp.SegmentShape(this@H_403_6@.space.staticBody,128); line-height:1.5!important">100@H_403_6@,128); line-height:1.5!important">100@H_403_6@),128); line-height:1.5!important">300@H_403_6@,128); line-height:1.5!important">200@H_403_6@),128); line-height:1.5!important">10@H_403_6@));
ramp.setElasticity(@H_403_6@1@H_403_6@); 弹性@H_403_6@
ramp.setFriction( 摩擦@H_403_6@
ramp.setLayers(NOT_GRABABLE_MASK);
@H_403_6@var@H_403_6@ sprite = this@H_403_6@.createPhysicsSprite(cc.p(400@H_403_6@,128); line-height:1.5!important">200@H_403_6@));
@H_403_6@this@H_403_6@.addChild(sprite);
},addFloor:function() {
@H_403_6@var@H_403_6@ floor = 0@H_403_6@),128); line-height:1.5!important">640@H_403_6@,128); line-height:1.5!important">0@H_403_6@));
floor.setElasticity(@H_403_6@1@H_403_6@);
floor.setFriction(@H_403_6@1@H_403_6@);
floor.setLayers(NOT_GRABABLE_MASK);
},addWalls:function() {
@H_403_6@var@H_403_6@ wall1 = 480@H_403_6@),128); line-height:1.5!important">0@H_403_6@));
wall1.setElasticity(@H_403_6@1@H_403_6@);
wall1.setFriction(@H_403_6@1@H_403_6@);
wall1.setLayers(NOT_GRABABLE_MASK);
@H_403_6@var@H_403_6@ wall2 = 0@H_403_6@));
wall2.setElasticity(@H_403_6@1@H_403_6@);
wall2.setFriction(@H_403_6@1@H_403_6@);
wall2.setLayers(NOT_GRABABLE_MASK);
},createPhysicsSprite:function( pos ) {
@H_403_6@new@H_403_6@ cp.Body(1@H_403_6@,cp.momentForBox(48@H_403_6@,128); line-height:1.5!important">108@H_403_6@) );
body.setPos( pos );
@H_403_6@this@H_403_6@.space.addBody( body );
@H_403_6@new@H_403_6@ cp.BoxShape( body,128); line-height:1.5!important">108@H_403_6@);
shape.setElasticity( @H_403_6@0.5@H_403_6@ );
shape.setFriction( @H_403_6@0.5@H_403_6@ );
@H_403_6@this@H_403_6@.space.addShape( shape );
@H_403_6@var@H_403_6@ sprite = cc.PhysicsSprite.create(res.b_ball_01);
sprite.setBody( body );
@H_403_6@return@H_403_6@ sprite;
}@H_403_6@