Cocos2d-x在Android下实现单点触摸技巧

发表于2018-07-31
评论0 566浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏程序行业精英群

711501594
只是用ccTouchBegan来实现单点触摸是不行的,如果一个父CCLayer里面包含几个重写了ccTouchBegan的子Layer(或Menu),玩家同时点击2个子Layer实际上还是会“变相多点触摸”。为此只需要改cocos2d-x源代码即可做到只支持单点触摸。

基本情况:  
  • 游戏运行平台:Android  
  • Cocos2d-x引擎版本:cocos2d-1.0.1-x-0.13.0-beta  

首先,在我们的Android工程src目录下,找到这个类:  
src\org\cocos2dx\lib\Cocos2dxGLSurfaceView.java  

然后,打开这个java文件,定位到函数  
public boolean onTouchEvent(final MotionEvent event) {...

最后,在onTouchEvent函数里面的两行代码加上:  
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_POINTER_DOWN:
if (pointerNumber > 1) return false;
...
case MotionEvent.ACTION_DOWN:
if (pointerNumber > 1) return false;
...
即可搞定。

原文链接

著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

游戏学院公众号二维码
腾讯游戏学院
微信公众号

提供更专业的游戏知识学习平台