0

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

4

2 回答 2

1

你应该看看CCMenu.m——它已经ccTouchBegan在 s 上实现并设置了一个选定的标志CCMenuItem。您的方法可能不起作用,因为您正在窃取父类的消息。

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


编辑:或者,更容易!-- 子类化适当的CCMenuItem子类(例如)并从默认方法CCMenuItemSprite重载该方法以包含您的视觉更改:selected

-(void) selected
{
    [super selected];
    //call method to update visuals here
}
于 2012-05-29T15:53:54.020 回答
0

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

于 2012-05-29T11:52:55.063 回答