0

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

4

0 に答える 0