在我的app委托中,我确定自己有一行:
[glView setMultipleTouchEnabled: YES];
我有一个简单的图层,只是为了弄清楚多点触控是如何工作的。 .mm文件看起来像:
#import "TestLayer.h"
@implementation TestLayer
-(id) init
{
if( (self=[super init])) {
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
}
return self;
}
-(void) draw{
[super draw];
glColor4f(1.0, 0.0, 0.0, 0.35);
glLineWidth(6.0f);
ccDrawCircle(ccp(500,500), 250,CC_DEGREES_TO_RADIANS(360), 60,YES);
}
-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"got some touches");
}
-(void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"some touches moved.");
}
-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
NSLog(@"a touch began");
return FALSE;
}
@end
当我触摸屏幕时,我总是看到“触摸开始”,但无论我如何触摸它(模拟器或实际设备),我都看不到“有些触摸移动”或“有些触摸”。
我需要做些什么才能使多点触控工作?
具体来说,我只是尝试做基本的捏合缩放功能......我听说有一些适用于iPhone的手势识别器......它适用于Coco2ds吗?即使我无法触发简单的多点触控事件,它会起作用吗?
答案 0 :(得分:1)
UIGestureRecognizers
绝对适用于Cocos2D,我个人使用它们,你只需要使用以下方法将它们添加到正确的视图中:
[[[CCDirector sharedDirector] openGLView] addGestureRecognizer:myGestureRecognizer];
关于你的触摸,我猜你是否为你正在工作的场景启用了它们?
scene.isTouchEnabled = YES;
在任何情况下,您都不应该使用addTargetDelegate
方法,请查看here
答案 1 :(得分:1)
将self.isTouchEnabled = YES;
添加到您的初始
并且手势识别器会查看其他答案