如果用户持有CCMenuItemImage,然后CCMenu将其删除,然后他重新打开怎么办?

时间:2013-10-23 05:23:36

标签: ios objective-c cocos2d-iphone

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

0 个答案:

没有答案