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一种非常动态的方式删除实例,并且玩家总是有机会按下其中一个。我必须删除它们,我不能说“如果他按下 X 按钮,请不要删除它”

4

0 回答 0