天天看點

避免"Physics Space Locked"錯誤

在一些cocos2d中使用實體引擎的代碼中,往往會出現如下錯誤:

該錯誤是一個著名的典型問題在大多數實體引擎中出現:在碰撞事件中,你不能修改實體世界(在chipmunk中是space)中的特定部分.在這個例子中,播放動畫将會修改節點的旋轉是以旋轉節點的實體對象.chipmunk并不喜歡這樣做,因為實體世界(space)被鎖住了!意思是目前處理的物體需要連貫的狀态,隻有實體引擎自身允許修改它們的狀态.(而不是在spritebuilder中用動畫修改).

幸運的是我們可以快速簡單的修正這個錯誤…見如下代碼:

用0延時推遲排程一個block,直到cocos2d排程器運作所有排程blocks的下一時刻中才會運作,至少它将會延時到cocos2d排程器的下一幀才會運作.

繼續閱讀