Cocos2dx Пейзаж и портрет на устройствах Android

Привет, я сейчас изучаю cocos2dx. Я строю эту игру на портретном виде. проблема в том, что изображение очень маленькое. Почему?

пейзаж

портрет

Также как я могу скрыть панель навигации?


person system.tester001    schedule 21.01.2016    source источник


Ответы (1)


Для портретной ориентации в AndroidManifest.xml измените ориентацию экрана на портретную:

 <activity android:name="org.cocos2dx.cpp.AppActivity"
                  android:label="@string/app_name"
                  android:screenOrientation="portrait"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                  android:configChanges="orientation">

Также установите правильное разрешение дизайна в AppDelegate.cpp (например, когда оно было 960x640, теперь должно быть 640x960 для портрета).

Что касается скрытия панели навигации, вам необходимо изменить целевой уровень SDK на уровень API 19 (kitkat), а затем изменить реализацию класса AppActivity на следующее:

public class AppActivity extends Cocos2dxActivity {
    private Cocos2dxGLSurfaceView glSurfaceView;

    public Cocos2dxGLSurfaceView onCreateView()
    {
        glSurfaceView = new Cocos2dxGLSurfaceView(this);
        this.hideSystemUI();
        glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);

        return glSurfaceView;
    }

    public void onWindowFocusChanged(boolean hasFocus)
    {
        super.onWindowFocusChanged(hasFocus);
        if (hasFocus)
        {
            this.hideSystemUI();
        }
    }

@TargetApi(Build.VERSION_CODES.KITKAT)
    private void hideSystemUI()
    {
        if (Build.VERSION.SDK_INT >= 19) {
            glSurfaceView.setSystemUiVisibility(
                    Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_LAYOUT_STABLE 
                    | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_FULLSCREEN
                    | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
        }
    }
}

Это будет работать только для устройств Android 4.4+, а на более старых просто ничего не сделает.

person Makalele    schedule 21.01.2016