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);
时间: 2024-10-10 08:13:57

Cocos2d-x3.2 iOS下开启多点触控的相关文章

cocos2d3.x在android下屏蔽多点触控

ios上很简单的在AppController.mm里 [eaglView setMultipleTouchEnabled:YES] 设置为NO,就是单点触控了,无需更改cocos底层代码; android上的做法是找到项目所引用的cocos引擎文件: Cocos2dxGLSurfaceView.java,找到onTouchEvent方法,在switch语句里的 MotionEvent.ACTION_POINTER_DOWN MotionEvent.ACTION_DOWN 这两个case 的第一行

【Cocos2d开发】浅析Cocoss2d下的多点触控

新事件分发机制:在2.x 版本事件处理时,将要触发的事件交给委托代理(delegate)处理,再通过实现代理里面的onTouchBegan等方法接收事件,最后完成事件的响应.而在新的事件分发机制中,只需通过创建一个事件监听器-用来实现各种触发后的逻辑,然后添加到事件分发器_eventDispatcher,所有事件监听器有这个分发器统一管理,即可完成事件响应. 事件监听器有以下几种: 触摸事件 (EventListenerTouch) 键盘响应事件 (EventListenerKeyboard)

cocos2d-x 在xcode IOS模拟器中 开启IOS多点触控

在初始化代码中,开启当前层接受触摸 this->setTouchEnabled(true); 在AppController.mm文件中,设置开启多点触控 在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中插入 [__glView setMultipleTouchEnabled:YES]; 最后在IOS模拟器中按住option

cocos2d-x for iOS多点触控的问题

依然在看书学习并练习,不过书上的错误真是... 首先是CClayer,之前恰好写过一个继承于CCSprite的类,实现单点触控随手指移动,重写了begin,moved和end函数,然后在onEnter和onEixt设置和取消了代理.书上的例子直接是以给的HelloWorld,不仅重写了三个函数,还重写了registerWithTouchDispatcher函数,我怎么写都给提示错误,大致是ambiguous conversion from class HelloWorld to ccTouchD

【原】cocos2d-x开发笔记:多点触控

在项目开发中,我们做的大地图,一个手指头按下滑动可以拖动大地图,两个手指头按下张开或者闭合,可以放大和缩小地图 在实现这个功能的时候,需要使用到cocos2d-x的多点触控功能. 多点触控事件,并不是说你按下了两个手指,执行ccTouchesMoved的时候,pTouches的count为2,这样如果单纯的判断函数传入的参数,实现起来会比较困难. 我用一种方式实现了,感觉还是比较简单明了的,拿出来分享一下 cocos2d-x版本:cocos2d-x 2.2.0 目标平台:ios 1.首先在App

Cocos2dx 多点触控

1 最容易忽略的东西,对于ios平台,须得设置glView的属性: [__glView setMultipleTouchEnabled:YES]; 2 如果调用CCLayer的方法setTouchEnabled,则不需要手动加touchDelegate,因为这个函数里会自动做这些事情. 3 如果调用CCLayer的方法setTouchEnabled,之前可以调用一个设置多点或单点的函数来控制setTouchEnable的注册行为,这个函数是: setTouchMode 4 也可以直接调用 coc

U3D多点触控框架实例(下)

1.概述 上次我们一口气讲到下层组件讲多点触控的消息根据具体的需求,在每个时刻将其抽象画成单一指令. 接下来我们要聊聊,上层组件中如何将单一的指令应用在角色上,让角色在移动,普通攻击和释放技能中间做出正确的行为. 上次我们也说过了,上层组件是个优先级队列,队列中分别有对移动,普通攻击,技能释放的判定检测组件,按照 技能> 普攻 > 移动的优先级,对下层组件传递过来的消息依次,逐个进行处理. 按照这种设计思路,我们首先还是应该有一个接口,统一组建的操作,然后在响应事件的时候对组件for循环处理

【朝花夕拾】Android自定义View篇之(九)多点触控(下)实践出真知

前言 在上一篇文章中,已经总结了MotionEvent以及多点触控相关的基础理论知识和常用的函数.本篇将通过实现单指拖动图片,多指拖动图片的实际案例来进行练习并实现一些效果,来理解前面的理论知识.要理解本文的代码,需要先掌握上一篇的理论知识,事件处理基础,以及一定的自定义View基础,这些我也在本系列文章的前几篇中讲过,有兴趣的可以按照本系列的顺序依次阅读学习,相信您一定会有不小的收获.. 一.实现单指拖动图片 要实现单指拖动图片,大致思路就是监控手指的ACTION_MOVE事件.手指移动过程中

Android多点触控技术实战,自由地对图片进行缩放和移动

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11100327 在上一篇文章中我带着大家一起实现了Android瀑布流照片墙的效果,虽然这种效果很炫很酷,但其实还只能算是一个半成品,因为照片墙中所有的图片都是只能看不能点的.因此本篇文章中,我们就来对这一功能进行完善,加入点击图片就能浏览大图的功能,并且在浏览大图的时候还可以通过多点触控的方式对图片进行缩放. 如果你还没有看过 Android瀑布流照片墙实现,体验不规则排列的美感