这个问题经常被问到。多点触摸特性在cocos2d-x的第一个版本中,iOS平台和安卓平台就都可用了。但是在iOS中,苹果默认屏蔽掉了这个特新,并且提供api手动支持多点触摸。
苹果
请参照 cocos2d-x/samples/Cpp/TestCpp/proj.ios/Classes/testAppDelegate.mm,39 行
[__glView setMultipleTouchEnabled:YES]
当有一个使用xcode的 cocos2d-x模板创建的项目,你可以像下面MyGame/proj.ios/AppController.mm一样进行修改。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// Add the view controller's view to the window and display.
window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
EAGLView *__glView = [EAGLView viewWithFrame: [window bounds]
pixelFormat: kEAGLColorFormatRGBA8
depthFormat: GL_DEPTH_COMPONENT16_OES
preserveBackbuffer: NO
sharegroup: nil
multiSampling: NO
numberOfSamples: 0 ];
[__glView setMultipleTouchEnabled:YES]; // enable multi-touch here!! It's at about line 37
// ...
return YES;
}
安卓
在安卓平台中,默认支持多点触摸。在void MyLayer::ccTouchesBegan/Moved/Ended方法获得触摸坐标之前,你不必设置任何事情。
多点触摸的测试例子可参考TestCpp里面的“MultiTouchTest”。