ラベル java の投稿を表示しています。 すべての投稿を表示
ラベル java の投稿を表示しています。 すべての投稿を表示

2020年4月17日金曜日

cocos2d-x Androidのナビゲーションバーを表示させる

cocos2d-xでは Ver3.12以降でナビゲーションバー(画面下部にあるホームボタンや戻るボタンが表示されている領域)が非表示になっている。
これを常時表示状態にするには以下の修正が必要となる。
ver4.0で確認しているが、3系でも同様の修正でOKだと思われる。

libcocos2dx→java→org.cocos2dx.lib→Cocos2dxActivity.java

333行目あたりのSYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
335行目あたりのSYSTEM_UI_FLAG_HIDE_NAVIGATION

の部分をコメントアウトする。


========

final Object[] parameters = new Object[]{SYSTEM_UI_FLAG_LAYOUT_STABLE
        //コメントアウト | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        | SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        //コメントアウト | SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
        | SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
        | SYSTEM_UI_FLAG_IMMERSIVE_STICKY};

========

Cocos2d-x マルチタップを無効にする方法(Android)

cocos2d-xはAndroidだけなぜかマルチタップができてしまう。
無効にするには以下の修正が必要となる。
なお、ver4.0で確認しているがこれより古い3系でも同様の対処でOKだと思われる


libcocos2dx→java→org.cocos2dx.lib→Cocos2dxGLSurfaceView.java


228行目あたりのswitch文「case MotionEvent.ACTION_POINTER_DOWN:」の部分を全てコメントアウトにする


switch (pMotionEvent.getAction() & MotionEvent.ACTION_MASK) {
    /*
    case MotionEvent.ACTION_POINTER_DOWN:

        final int indexPointerDown = pMotionEvent.getAction() >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
        if (!mMultipleTouchEnabled && indexPointerDown != 0) {
            break;
        }
        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: