cocos2d-x 多点触控总结


【一】:这个和单点有啥区别


1.使用上的区别。

这个不用多说,有些情况下我们是需要多点触控来实现更好的效果,比如,切水果。


2.和单点的区别

[1].单点使用监听类是CCtargetedTouchDelegate,而多点使用CCtangardTouchDelegate.

[2].多点触控还需要多一个步骤就是注册多点触控。这里你可能会问,为啥单点触控都放在onEnter生命周期函数里,多点干嘛要单独写个。这里是因为,如果你放在onEnter里,可能会崩溃哦。

[3].另外多点触控要有开启才能用,就是开启多点触控函数setTouchEnabled.

[4].多点触控中的ccTouchesBegan不是布尔型哦。


【二】:函数



触屏事件:

1.注册多点触控

virtual void registerWithTouchDispatcher(void);

2.当用户第一次触碰手机屏幕时响应的回调函数

virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);

3.当用户手指在手机屏幕上滑动时响应的回调函数

virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);

4.当用户手指在离开手机屏幕上时响应的回调函数

virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);


这里不再使用参数CCTouch,而是他们的集合。


CCtouch

1.getID()//得到当前触点的下标(0开始)




【三】:示例


如果是ios平台,要在 AppController.mm 中加入 

 //开启多点触控.. 默认是关闭的。
[__glView setMultipleTouchEnabled:YES];


如果是android就不用,因为默认是开启的...

因为这个问题曾经浪费了我大把时间。  mark!



Touchsdemo.h


//写上多点触控的回调函数

virtual void registerWithTouchDispatcher(void);

virtual void ccTouchesBegan(CCSet * set,CCEvent * e);

virtual void ccTouchesMoved(CCSet * set,CCEvent * e);

virtual void ccTouchesEnded(CCSet * set,CCEvent * e);


Touchsdemo.cpp


//开启多点

this->setTouchEnabled(true);


2.注册监听


void Touchsdemo::registerWithTouchDispatcher(void){

   //注册监听

   CCDirector::sharedDirector()->getTouchDispatcher()->addStandardDelegate(this,0);

}




3.实现接触屏幕事件


void Touchsdemo::ccTouchesBegan(CCSet * set,CCEvent * e)

{

   CCSetIterator iter=set->begin();

   //这里的iter相当于系统分配的数字,

   //set->begin()获取第一个数字

   //set->end()就是最后一位

   for(;iter!=set->end();iter++){

//这里呢,就是单点处理了,可以理解为把多点拆成单点来做

       CCTouch * mytouch=(CCTouch *)(* iter);

       CCPoint cp=mytouch->getLocation();

//对每个触碰点做相应处理

   }

}




学习的路上,与君共勉。


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Colin丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值