CCMenuを使用しているインスタンスに問題が見つかりましたcocos2d-iphone 1.0.1。
を作成し、インスタンスCCMenuを与えます。CCMenuItemImage指を置いてください。
さて、どういうわけか、ボタンに指を置いたまま、それをCCMenu処分してください。みたいremoveAllChildrenな。時限イベントでも構いません。
現在、タップしていたボタンは消えています。
画面から指を離します。
これにより、このメソッドでEXC_BAD_ACCESSエラーが発生します。CCMenu
-(void) ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event
{
NSAssert(state_ == kCCMenuStateTrackingTouch, @"[Menu ccTouchMoved] -- invalid state");
CCMenuItem *currentItem = [self itemForTouch:touch];
if (currentItem != selectedItem_) {
[selectedItem_ unselected];
selectedItem_ = currentItem;
[selectedItem_ selected];
}
}
あなたselectedItem_が押していたボタンだったはずの が離されたからです。しかし、あなたの指はまだ押していて、それが動いたので、それにCCMenuアクセスしようとします.
ここで何をすればいいですか?私のゲームでは、非常に動的な方法でインスタンスを削除する必要がありCCMenuItemImage、プレイヤーがそのうちの 1 つを押す可能性は常にあります。「×ボタンを押しているなら外すな」とは言えません。