Cocos2d-x在Android下实现单点触摸技巧
发表于2018-07-31
只是用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; ...
即可搞定。