如何在Cocos2d-x中禁用MultiTouch(Android)

Cocos2d-x(版本3.14之前)存在一个问题。 如果要在Android中使用单点触摸,则必须将代码注释到Cocos2d-x中。 但是,当您用新版本替换Cocos2d-x时,必须记住再次注释该代码。 本文将回答如何在不注释代码的情况下为所有版本的Cocos2d-x禁用多点触摸。

如何通过注释此处讨论的代码来禁用多点触控。

合理地假设,为了解决此问题,有必要删除ID大于0的所有触摸。该怎么办?

在Android中,所有操作都通过Cocos2dxGLSurfaceView进行 让我们考虑一下动作触地得分的情况。

我们只需要使用idDown == 0的触摸。 但是有一个问题。 mCocos2dxRenderer是私有成员,当我们继承Cocos2dxGLSurfaceView时 ,不能使用mCocos2dxRenderer

让我们考虑Cocos2dxRender方法handleActionDown,handleActionMovehandleActionUphandleActionCancel

此方法使用Cocos2dxRender的静态方法

幸运的是,我们使用Java。 在Java中,我们可以访问私有方法。 让我们编写访问私有方法的方法。

现在,我们要继承Cocos2dxGLSurfaceView,使用Cocos2dxRender的静态方法和切割风格。 MyCocos2dxGLSurfaceView的完整代码

我们应该在AppActivity.java中更改onCreateView方法

讨论了这个问题之后,Cocos2d-x开发人员在版本≥3.14的Cocos2dxGLSurfaceView中添加了setMultipleTouchEnabled方法。 现在,单点触摸就这样完成:

好。 我们可以轻松访问Cocos2d-x的不同版本。

From: https://hackernoon.com/how-to-disable-multitouch-in-cocos2d-x-android-2888172f863d