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