Cocos2d iphone 代码是什么;if(![super-itemForTouch:touch]){返回否;}”;什么时候开始使用CCTouch以及如何使其在CoCoS2DV3中工作?
我在coco2d v2 ccmenu中找不到任何对itemForTouch的引用,所以有人能告诉我这段代码的作用吗? if(![super-itemForTouch:touch])部分,以及如何使其在coco2d v3中工作Cocos2d iphone 代码是什么;if(![super-itemForTouch:touch]){返回否;}”;什么时候开始使用CCTouch以及如何使其在CoCoS2DV3中工作?,cocos2d-iphone,touch,Cocos2d Iphone,Touch,我在coco2d v2 ccmenu中找不到任何对itemForTouch的引用,所以有人能告诉我这段代码的作用吗? if(![super-itemForTouch:touch])部分,以及如何使其在coco2d v3中工作 -(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event { if (![super itemForTouch:touch]) { return NO; } } 谢谢您从哪里获得此
-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
if (![super itemForTouch:touch]) {
return NO;
}
}
谢谢您从哪里获得此代码 ccmen.m中有一个
itemForTouch
。通过查看您发布的内容,我假设有人从CCMenu
派生了一个类,重写了自己的cctouchStart
,并调用了super的itemForTouch
方法。在该方法中,它在所有附加的菜单项上循环,检查它们是否可见和启用,并查看触摸位置是否位于该菜单项的矩形内。如果没有触摸到任何菜单项,您发布的代码只会返回NO
您不必手动调用此方法,这就是为什么它不在头文件中声明的原因。如果看不到您发布的代码的大图,我不明白为什么有人会从CCMenu
子类化,假设他们甚至有合法的理由开始。在cocos2dv3中,还将介绍如何使用CCButton
,当您使用基本cocos2d模板创建新项目时,将给出一个示例
编辑
在查看了您在注释中链接的代码后,我现在明白了创建菜单弹出类的目的。他所做的只是看看父母中是否有一个是弹出窗口,如果是的话,他会关闭弹出窗口,因为他知道弹出窗口上的按钮被触动了。要在V3中执行此操作,假设您有一些父节点充当
CCMenuPopup
。如果您觉得有必要,您甚至可以将其命名为相同的名称并重新创建这些类。您好,谢谢。这是一个游戏教程的一部分,你可以在找到代码,文件是ccmenuppop.mCheck出我编辑的答案进一步解释。如果我的问题解决了您的问题,请将其标记为已接受。您可以在V3中创建一个从CCNode派生的菜单弹出类。对于CCB按钮,当按下其中一个按钮时,应调用您创建的方法关闭弹出窗口。要将答案标记为已接受,您可以单击问题旁边的灰色复选标记。