腾讯云云游戏虚拟按键_音视频解决方案_同尘科技

云游戏 3年前 (2022-04-22) 浏览 138

当玩家在移动设备上玩端游时,需要通过键盘映射或手柄映射操作云端游戏。为提高玩家的云游戏操控体验,云游戏提供动态可配置的虚拟按键布局的能力,同时也减少您在接入过程中的开发成本和后期维护成本。注意 目前云游戏虚拟按键仅支持 Android 端。

支持说明

类型 说明
库文件 tcgui-gamepad.aar 虚拟按键拓展库。
按键类型 键盘按键(78个单击按键)。鼠标按键(左、中、右、上滚、下滚)。十字摇杆键(WDSA、上右下左)。Xbox 手柄 A、B、X、Y、Select、Start、LB、RB、L3、R3 普通点击键。Xbox 手柄延时板机键:LT、RT。(点击时在短时间内连续发多次消息,按下时消息的力度随时间递增,松开后随时间递减。)Xbox 手柄左、右摇杆键。Xbox手柄十字方向键。
编辑功能 动态添加/删除按键。动态调整按键位置、大小。增加辅助线方便定位按键。点击类按键支持修改名称,最多显示6个字符。(UI 切图等资源暂不支持动态设置。)

使用说明

关键类介绍

GamepadManager

虚拟按键管理类(继承 RelativeLayout)。注册 OnEditListener 监听虚拟按键编辑事件的回调。注册 IInstructionListener 监听触发按钮事件的回调。

关键流程说明

1. 初始化。

mCustomGamePad = new GamepadManager(this);mCustomGamePad.setEditListener();mCustomGamePad.setInstructionListener();// 按键视图应放在游戏视频视图之上,否则可能导致按键无法正常使用addView(mCustomGamePad);

2. 读取配置文件。

String mCustomGamePadCfg;mCustomGamePadCfg = readConfigFile("default_gamepad.cfg");

注意 此处代码仅演示过程,具体文件的读写由业务侧来实现。3. 显示虚拟按键或编辑虚拟按键。

// 显示虚拟按键mCustomGamePad.showGamepad(mCustomGamePadCfg);// 进入编辑模式mCustomGamePad.editGamepad(mCustomGamePadCfg);

4. 启用手柄类按键布局。

关键类 说明
gamepad.needConnected 使用布局前判断是否为手柄按键
SDK.sendGamePadConnected 使用虚拟手柄前需调用接口通知云端启用手柄
SDK.sendGamePadDisconnected 结束虚拟手柄后主动卸载云端手柄
if (enable) { mCustomGamePad.setVisibility(View.VISIBLE); mCustomGamePad.showGamepad(mCustomGamePadCfg); // 判断是否为手柄按键 if (mCustomGamePad.needConnected()) {  mSDK.sendGamePadConnected(); }} else { mCustomGamePad.setVisibility(View.GONE); if (mCustomGamePad.needConnected()) {  mSDK.sendGamePadDisconnected(); }}

5. 监听编辑事件的回调。

mCustomGamePad.setEditListener((isChanged, jsonCfg) -> {  if (isChanged) {  // 保存编辑后的配置文件    mCustomGamePadCfg = jsonCfg;  }}

6. 监听按键点击触发的事件。

mCustomGamePad.setInstructionListener(instruction -> {  if (mSDK != null) {   // 通过云游戏SDK发送操作指令    mSDK.sendKmEvents(instruction);  }});

7. 适配与虚拟鼠标共存。

// 设置点击事件的代理,将事件传递给鼠标视图public void setGamePadTouchDelegate(IGamepadTouchDelegate delegate) {  mCustomGamePad.setGamePadTouchDelegate(delegate);
}
mControlView.setGamePadTouchDelegate((v, event) -> { mGameView.handleMotion(event); return true;});

配置文件

虚拟按键的配置信息以 JSON 格式保存为配置文件,由业务侧负责管理文件的保存与读取,以此来为不同的用户提供个性化虚拟按键配置。

忽略混淆

打包时请设置混淆规则:对 Java 代码不做混淆。

-keep class com.tencent.tcggamepad.**{*;}

对资源文件不做混淆。

tools:keep="@drawable/tcg_*"



对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?