关于cocos2d-js 中chipmunk引擎body与shape的疑问

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决定?

差不多~~~~~~~~~~~~~~~~~~~