CCMenuItem不响应子类化并向CCMenu添加cctouch方法

时间:2012-05-29 11:44:50

标签: iphone cocos2d-iphone ccmenuitem

我正在制作菜单,我希望其中一个按钮在用户触摸时响应,所以我创建了一个CCMenu的子类,以便添加cctouchbegan方法并在那里进行管理。 问题是,我可以让它回应这两件事(menuItem& cctouch),这是正常的吗? 有没有办法强迫它做两件事? 提前谢谢,如果您需要我在这里放一些代码,请告诉我

2 个答案:

答案 0 :(得分:1)

您应该查看CCMenu.m - 它已经实现了ccTouchBegan并在CCMenuItem上设置了一个选定的标记。您的方法可能无法正常工作,因为您正在窃取父类的消息。

您的子类应首先调用[super ccTouchBegan...],然后检查CCMenuItem的选定状态以确定要在视觉上更改哪个按钮。


编辑: 或者,更容易! - 对相应的CCMenuItem子类(例如CCMenuItemSprite)进行子类化,并重载selected方法,使其默认包含您的视觉更改:

-(void) selected
{
    [super selected];
    //call method to update visuals here
}

答案 1 :(得分:0)

您可以简单地创建自己的CCLayer子类,将其isTouchEnabled属性设置为YES并实现您想要的任何触摸逻辑