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

发表于2018-07-31
评论0 3.4k浏览
只是用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;
...
即可搞定。

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