在Xcode打開MainScene,添加初始化代碼如下:
-(void)didLoadFromCCB{
NSAssert(_sprite1, @_sprite1 must not nil);
_physics.debugDraw = YES;
_sprite1.position = ccp(0.4,0.3);
CCActionMoveTo *move = [CCActionMoveTo actionWithDuration:5 position:ccp(0.8, 0.8)];
[_sprite1 runAction:move];
_viewSize = [CCDirector sharedDirector].viewSize;
}
我們在MainScene場景的初始化中打開物理調試,移動精靈對象,註意我們故意把障礙物放在移動路線上,看看精靈遇到障礙物有什麼樣的反應.
編譯運行App,我們看到精靈在遇到障礙物時會貼著障礙物的邊移動.另外我們發現精靈的邊緣有一部分嵌入到障礙物的邊緣之中,這是怎麼回事呢?
原來我們是通過Move動作來移動精靈,跳過瞭Chipmunk物理引擎的step調整.所以精靈和障礙物物理對象之間會有”反常”的情況出現.一般若想物理對象表現出正常的物理行為,我們需要用物理引擎提供的方法移動該對象,比如作用在其上一個力,或者直接給其一個沖力,再或者給它一個角度的變化等.
但是在這裡為瞭簡單,我們就用Move動作移動物體.
後面用手指按住移動物體時還能看到精靈竟然直接輕松穿過瞭障礙物,不要覺得驚訝,原因上面已經分析過瞭.