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 つを押す可能性は常にあります。「×ボタンを押しているなら外すな」とは言えません。