Пейзаж и портрет на 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