Cocos2d问题??
如何更改触控类型?看下面
image = [MenuItemImage itemFromNormalImage:@"image1.png" selectedImage:@"image2.png" target:self selector:@selector(step1:)];
Menu *menu = [Menu menuWithItems:image, nil];
image.position = cpv( -135, -185);
[self addChild: menu z:2]
step1是一个空格,定义为稍后在代码中执行某些操作。我的问题不是step1不起作用,我的问题是当用户触摸内部按钮时step1进入。当用户触摸内部按钮时,我希望它能够工作。谢谢你的帮助!
答案 0 :(得分:1)
目前,MenuItem无法响应“触摸开始”,并且只是硬编码才能响应“触摸结束”。
在Menu.m中,从第105行开始,您将看到ccTouchesBegan声明。
如果要修改Menu的当前行为,可以将其子类化为:
@interface MenuDown: Menu
{
}
@end
@implementation MenuDown
-(BOOL)ccTouchesBegan:(UITouch *)touches withEvent:(UIEvent *)event {
[self ccTouchesBegan:touches withEvent: event];
if(item) { [item unselected]; [item activate]; }
}
@end
这是未经测试的,但基本上......我只是从ccTouchesEnded中的Menu.m中获取了一些代码,并将其复制到新的MenuDown类的ccTouchesBegan的覆盖版本中。
然后,您可以将菜单定义为:
MenuDown *menu = [MenuDown menuWithItems: image, nil];
这应该 - 给你一个来自Cocos2D MenuItem的'触摸反应开始'的反应......
然而,这并没有真正提出......因为我看不出有什么理由让你想要'按钮'来回应触摸,而不是'最终行动'...因为它写的,菜单当前允许用户按下,然后滑出...取消菜单选择操作。
菜单/ MenuItem不打算用作“触摸反应对象”(即实际游戏对象),如果这是任何机会,你尝试做什么。