我发现我的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 按钮,请不要删除它”。