cocos2dx多个按钮同时响应点击事件
2017-08-11 13:14
1346 查看
环境 cocos2d-x-3.1.1
iOS版本
找到 AppController.mm
修改方法 -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 中
[eaglView setMultipleTouchEnabled: YES] 改成 [eaglView setMultipleTouchEnabled: false]
Android版本
找到
cocos2d-x\cocos\platform\android\Java\src\org\cocos2dx\lib\Cocos2dxGLSurfaceView.java
在方法 public boolean onTouchEvent(final MotionEvent pMotionEvent) 中添加两句
switch (pMotionEvent.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_POINTER_DOWN:
if (pointerNumber>1) return false;//add 屏蔽多点触摸
final int indexPointerDown = pMotionEvent.getAction() >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
final int idPointerDown = pMotionEvent.getPointerId(indexPointerDown);
final float xPointerDown = pMotionEvent.getX(indexPointerDown);
final float yPointerDown = pMotionEvent.getY(indexPointerDown);
this.queueEvent(new Runnable() {
@Override
public void run() {
Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleActionDown(idPointerDown, xPointerDown, yPointerDown);
}
});
break;
case MotionEvent.ACTION_DOWN:
if (pointerNumber>1) return false;//add 屏蔽多点触摸
// there are only one finger on the screen
final int idDown = pMotionEvent.getPointerId(0);
final float xDown = xs[0];
final float yDown = ys[0];
this.queueEvent(new Runnable() {
@Override
public void run() {
Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleActionDown(idDown, xDown, yDown);
}
});
break;
iOS版本
找到 AppController.mm
修改方法 -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 中
[eaglView setMultipleTouchEnabled: YES] 改成 [eaglView setMultipleTouchEnabled: false]
Android版本
找到
cocos2d-x\cocos\platform\android\Java\src\org\cocos2dx\lib\Cocos2dxGLSurfaceView.java
在方法 public boolean onTouchEvent(final MotionEvent pMotionEvent) 中添加两句
switch (pMotionEvent.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_POINTER_DOWN:
if (pointerNumber>1) return false;//add 屏蔽多点触摸
final int indexPointerDown = pMotionEvent.getAction() >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
final int idPointerDown = pMotionEvent.getPointerId(indexPointerDown);
final float xPointerDown = pMotionEvent.getX(indexPointerDown);
final float yPointerDown = pMotionEvent.getY(indexPointerDown);
this.queueEvent(new Runnable() {
@Override
public void run() {
Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleActionDown(idPointerDown, xPointerDown, yPointerDown);
}
});
break;
case MotionEvent.ACTION_DOWN:
if (pointerNumber>1) return false;//add 屏蔽多点触摸
// there are only one finger on the screen
final int idDown = pMotionEvent.getPointerId(0);
final float xDown = xs[0];
final float yDown = ys[0];
this.queueEvent(new Runnable() {
@Override
public void run() {
Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleActionDown(idDown, xDown, yDown);
}
});
break;
相关文章推荐
- 如何为一个按钮(View)设置任意多次点击事件以及可以同时响应多个多次点击事件
- Android下listview每个Item中包含有按钮,为什么在点击某一行按钮的时候,同时有多行button触发了响应事件?
- iOS中按钮不响应点击事件
- 在Activity中响应ListView内部按钮的点击事件的两种方法!!!
- 在Activity中响应ListView内部按钮的点击事件的两种方法
- ListView的Item上有个按钮 ,Item不能响应点击事件的解决方法
- Activity中响应ListView内部按钮的点击事件
- 按钮超出父View后 响应点击事件
- 在Activity中响应ListView内部按钮的点击事件
- cocos2dx 3.x(定时器或延时动作自动调用button的点击响应事件)实现自动内测
- 在Activity中响应ListView内部按钮的点击事件
- 通过onmousedown和onclick 使 按钮 只响应 鼠标点击 事件
- 一般情况下ListView中的 item点击事件和 item 中的Button按钮点击事件 同时需要时,就会出现Button抢占了item的焦距问题,导致ListView中的item点击事件无效,解决
- iOS中超出父视图的按钮点击事件响应处理
- 前端-mui框架的div侧拉菜单,导致页面中按钮的点击事件无法响应的问题
- 在Activity中响应ListView内部按钮的点击事件
- 通过onmousedown和onclick 使 按钮 只响应 鼠标点击 事件
- 列表项中包含按钮的ListView的点击事件的响应
- SDI里添加按钮并响应点击事件
- android 同时点击多个button 避免同时响应,只响应一个点击事件 (是否允许多点触控)