iOS下默认是不开启多点触控的,我们要想要使用需要做如下的内容:
iOS文件夹下:AppController.mm
需要加一行代码:
// 只需要新增这样一行代码就可以使用多点触控啦。 [eaglView setMultipleTouchEnabled:YES];
具体位置见下面:
- (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]]; // Init the CCEAGLView CCEAGLView *eaglView = [CCEAGLView viewWithFrame: [window bounds] pixelFormat: kEAGLColorFormatRGBA8 depthFormat: GL_DEPTH24_STENCIL8_OES preserveBackbuffer: NO sharegroup: nil multiSampling: NO numberOfSamples: 0]; // Use RootViewController manage CCEAGLView _viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil]; _viewController.wantsFullScreenLayout = YES; _viewController.view = eaglView; // 只需要新增这样一行代码就可以使用多点触控啦。 [eaglView setMultipleTouchEnabled:YES]; // Set RootViewController to window if ( [[UIDevice currentDevice].systemVersion floatValue] < 6.0) { // warning: addSubView doesn't work on iOS6 [window addSubview: _viewController.view]; } else { // use this method on ios6 [window setRootViewController:_viewController]; } [window makeKeyAndVisible]; [[UIApplication sharedApplication] setStatusBarHidden:true]; // IMPORTANT: Setting the GLView should be done after creating the RootViewController cocos2d::GLView *glview = cocos2d::GLView::createWithEAGLView(eaglView); cocos2d::Director::getInstance()->setOpenGLView(glview); cocos2d::Application::getInstance()->run(); return YES; }
测试:
auto listener1 = EventListenerTouchAllAtOnce::create(); listener1->setEnabled(true); listener1->onTouchesBegan = [ = ](const std::vector<Touch*>& touches, Event* event) { log("%lu",touches.size()); }; _eventDispatcher->addEventListenerWithFixedPriority(listener1, 1);
时间: 2024-10-10 08:13:57