Cocos2d-x 怎样支持多点触摸(IOS上多点失灵的解决方法)

来源:互联网 发布:死神来了5 知乎 编辑:程序博客网 时间:2024/04/30 13:16
怎样支持多点触摸
这个问题经常被问到。多点触摸特性在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”。



0 0