我发现使用CCMenu
的{{1}}个实例存在问题。
创建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
实例,并且玩家总是有可能按下其中一个。我必须删除它们,我不能说“如果他按下X按钮,不要删除它”。