addNewSpriteAtPosition: function (p) { 02. cc.log("addNewSpriteAtPosition"); 03. 04. 05. var body = new cp.Body(1, cp.momentForBox(1, SPRITE_WIDTH, SPRITE_HEIGHT)); ① 06. body.setPos(p); ② 07. this.space.addBody(body); ③ 08. 09. 10. var shape = new cp.BoxShape(body, SPRITE_WIDTH, SPRITE_HEIGHT); ④ 11. shape.setElasticity(0.5); 12. shape.setFriction(0.5); 13. this.space.addShape(shape); ⑤ 14. 15. 16. //创建物理引擎精灵对象 17. var sprite = new cc.PhysicsSprite(res.BoxA2_png); ⑥ 18. sprite.setBody(body); ⑦ 19. sprite.setPosition(cc.p(p.x, p.y)); 20. this.addChild(sprite); 21.} ``` 这段代码里body、shape有什么区别呢,我大概知道body是赋予精灵物理属性,但是既然body具有了形状位置这些属性,shape会不会是鸡肋的存在?求解
跟运动相关的物理属性在body上,跟碰撞相关的物理属性在shape。 cp.momentForBox()是计算居中于刚体的实心矩形的转动惯量,得到的不是形状。http://my.oschina.net/soarwilldo/blog/487942
是不是说body相当于质点,具体的物理轮廓由shape决定?
差不多~~~~~~~~~~~~~~~~~~~