Desactivar multitouch en Android para juegos hechos en cocos2d-x 2.2.x

Cuando desarrollamos un juego en Cocos2d-x, tenemos que tener en cuenta que hay particularidades entre dispositivos iOS y Android.

Por defecto iOS tiene multitouch desactivado. En cambio en Android, el multitouch está habilitado.

Si queremos habilitar multitouch en iOS, sólo tenemos que habilitarlo en AppController.mm:

- application:application didFinishLaunchingWithOptions:launchOptions {
    // Override point for customization after application launch.
    // Add the view controller’s view to the window and display.
    window = initWithFrame: bounds]]; EAGLView *glView = [EAGLView viewWithFrame: [window bounds] pixelFormat: kEAGLColorFormatRGBA8
        depthFormat: GL_DEPTH_COMPONENT16_OES
        preserveBackbuffer: NO
        sharegroup: nil
        multiSampling: NO
        numberOfSamples: 0 ];
    [_glView setMultipleTouchEnabled:YES];
    // enable multi-touch here!
    return YES;
}

Por el contrario, si queremos deshabilitar el multitouch en Android, la opción más sencilla es ir a la clase Cocos2dxGLSurfaceView.java y en el método onTouchEvent comentar el case de MotionEvent.ACTION_POINTER_DOWN:

    //            case MotionEvent.ACTION_POINTER_DOWN:
    //                final int indexPointerDown = pMotionEvent.getAction() >> MotionEvent.ACTION_POINTER_ID_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;


No hay comentarios

Leave a Reply

Blogger news

Blogroll