首页 > 代码库 > Cocos2d-x3.2 iOS下开启多点触控

Cocos2d-x3.2 iOS下开启多点触控

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);








Cocos2d-x3.2 iOS下开启多点触控