Laya打包的app实现手机全屏 强制关闭虚拟按键

1 先在laya引擎里设置scaleMode:

Laya.stage.scaleMode = Stage.SCALE_EXACTFIT;
Laya.stage.screenMode = Stage.SCREEN_HORIZONTAL;
//水平居中对齐
Laya.stage.alignH = Stage.ALIGN_CENTER;
//垂直居中对齐
Laya.stage.alignV = Stage.ALIGN_MIDDLE;

2再构建到androidstudio里设置AppTheme NoActionBar

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

</resources>

3再打开MainActivity.java,重写方法onWindowFocusChanged

@Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if (hasFocus && Build.VERSION.SDK_INT >= 19) {
            View decorView = getWindow().getDecorView();
            decorView.setSystemUiVisibility(
                    View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                            | View.SYSTEM_UI_FLAG_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
        }
    }

4直接generate apk 安卓到手机, 进游戏的时候不管玩家有没有开启虚拟按键,都会强制隐藏显示全屏。

用cocos2dx 或cocoscreator 打包的也是类似处理

欢迎加入技术讨论群:199678137,日常潜水,偶尔一起淌技术坑。

实现2D游戏八方向虚拟摇杆可以借助LayaBox的UI组件来实现。以下是实现步骤: 1. 创建UI组件 在LayaBox的IDE中创建一个UI页面,将需要的UI组件拖拽到页面中,包括摇杆底座、摇杆、指示箭头等。 2. 编写代码 在代码中引用LayaBox的UI组件,并监听摇杆的事件。当摇杆被拖动时,根据摇杆的位置计算出方向,并将方向信息传递给游戏角色进行移动。 以下是实现代码示例: ```javascript // 引用LayaBox的UI组件 var Joystick = Laya.UIConfig.baseDir + "Joystick.png"; var JoyBg = Laya.UIConfig.baseDir + "JoyBg.png"; var JoyArrow = Laya.UIConfig.baseDir + "JoyArrow.png"; Laya.loader.load([JoyBg, Joystick, JoyArrow], Laya.Handler.create(this, onLoaded)); function onLoaded() { // 创建UI组件 var bg = new Laya.Image(JoyBg); bg.pos(100, 100); Laya.stage.addChild(bg); var joystick = new Laya.Image(Joystick); joystick.pos(130, 130); joystick.pivot(joystick.width / 2, joystick.height / 2); Laya.stage.addChild(joystick); var arrow = new Laya.Image(JoyArrow); arrow.pos(130, 130); arrow.pivot(arrow.width / 2, arrow.height / 2); Laya.stage.addChild(arrow); // 监听摇杆事件 joystick.on(Laya.Event.MOUSE_DOWN, this, onJoystickMouseDown); Laya.stage.on(Laya.Event.MOUSE_UP, this, onJoystickMouseUp); } var isMouseDown = false; var joystickPos = new Laya.Point(); var joystickDir = new Laya.Point(); var joystickRadius = 50; function onJoystickMouseDown() { isMouseDown = true; Laya.stage.on(Laya.Event.MOUSE_MOVE, this, onJoystickMouseMove); } function onJoystickMouseUp() { isMouseDown = false; joystickPos.setTo(0, 0); joystickDir.setTo(0, 0); Laya.stage.off(Laya.Event.MOUSE_MOVE, this, onJoystickMouseMove); } function onJoystickMouseMove() { if (!isMouseDown) return; // 计算摇杆位置和方向 joystickPos.setTo(joystick.mouseX, joystick.mouseY); joystickDir = joystickPos.subtract(new Laya.Point(joystick.x, joystick.y)); var len = joystickDir.normalize(); if (len > joystickRadius) { joystickDir.x *= joystickRadius; joystickDir.y *= joystickRadius; } // 更新箭头方向 arrow.rotation = Math.atan2(joystickDir.y, joystickDir.x) * 180 / Math.PI; // 将方向信息传递给游戏角色 // TODO: 根据方向移动游戏角色 } ``` 以上代码实现了一个简单的虚拟摇杆UI,并监听了摇杆的事件,计算出方向信息并传递给游戏角色。需要注意的是,这只是一个示例代码,具体实现还需要根据游戏的需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值