diff --git a/FAQ.md b/FAQ.md new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 439f7d9..c42f07b 100644 --- a/README.md +++ b/README.md @@ -18,15 +18,20 @@ QtScrcpy可以通过USB(或通过TCP/IP)连接Android设备,并进行显示和 ![linux](screenshot/ubuntu.png) -## 游戏映射(仅windows平台开启) -额外针对和平精英手游进行键鼠映射,可以用键鼠像玩端游一样玩和平精英手游,默认按键映射如下: +## 自定义按键映射(仅windows平台开启) +可以根据需要,自己编写脚本将PC键盘按键映射为手机的触摸点击,编写规则在[这里](按键映射说明.md)。 + +默认自带了针对和平精英手游进行键鼠映射的映射脚本,开启后可以用键鼠像玩端游一样玩和平精英手游,你也可以按照[编写规则](按键映射说明.md)编写其他游戏的映射文件,默认按键映射如下: ![game](screenshot/game.jpg) -操作方法如下: -- 启动服务之前记得勾选和平精英选项 +[这里有玩和平精英的视频演示]() + +自定义按键映射操作方法如下: +- 编写自定义脚本放入keymap目录 +- 启动服务之前记得勾选自定义映射选项,并选择自定义映射脚本 - 连接手机以后进入游戏场景 -- 按~键(数字键1左边)切换为游戏映射模式即可体验 +- 按~键(数字键1左边)切换为游戏映射模式即可体验(具体按什么键要看你按键脚本定义的switchKey) - 再次按~键切换为正常控制模式 - 要想wasd控制开车记得在载具设置中设置为单摇杆模式 @@ -157,6 +162,9 @@ Mac OS平台,你可以直接使用我编译好的可执行程序: ## TODO [后期计划](TODO.md) +## FAQ +[常见问题说明](FAQ.md) + ## 为什么开发QtScrcpy? 综合起来有以下几个原因,比重从大到小排列: 1. 学习Qt的过程中需要一个项目实战一下 diff --git a/按键映射说明.md b/按键映射说明.md new file mode 100644 index 0000000..0e1231f --- /dev/null +++ b/按键映射说明.md @@ -0,0 +1,56 @@ +# 自定义按键映射说明 + +按键映射文件为json格式,新增自己的按键映射文件需要放在keymap目录中才可以被QtScrcpy识别。 + +按键映射文件的具体编写格式下面会介绍,也可以参考自带的按键映射文件。 + +## 按键映射脚本格式说明 + +### 通用说明 + +- 按键映射中的坐标位置都是用相对位置表示的,屏幕的宽高都用1表示,例如屏幕的像素为1920x1080,那么坐标(0.5,0.5)则表示的是 +以屏幕左上角为原点,像素坐标(1920,1080)*(0.5,0.5)=(960,540)的位置。 +- 按键映射中的按键码是用Qt的枚举表示的,详细说明可以[参考Qt文档](https://doc-snapshots.qt.io/4.8/qt.html)(搜索 The key names used by Qt. 可以快速定位)。 + +### 映射类型说明 + +- switchKey:切换自定义按键映射的开关键,默认为普通映射,需要使用这个按键在普通映射和自定义映射之间切换。 + +- mouseMoveMap:鼠标移动映射,鼠标的移动将被映射为以startPos为起点,以鼠标移动方向为移动方向的手指拖动操作。 +一般在FPS手游中用来调整人物视野。 + - startPos 手指拖动起始点 + - speedRatio 鼠标移动映射为手指拖动的比例,可以控制鼠标灵敏度 + +- keyMapNodes 一般按键的映射,json数组,所有一般按键映射都放在这个数组中,将键盘的按键映射为普通的手指点击。 + +一般按键映射有如下几种类型: + +- type 按键映射的类型,每个keyMapNodes中的元素都需要指明,可以是如下类型: + - KMT_CLICK 普通点击,键盘按下模拟为手指按下,键盘抬起映射为手指抬起 + - KMT_CLICK_TWICE 两次点击,键盘按下模拟为手指按下再抬起,键盘抬起映射为手指按下再抬起 + - KMT_STEER_WHEEL 方向盘映射,专用于FPS游戏中移动人物脚步的方向盘的映射,需要4个按键来配合。 + +不同按键映射类型的专有属性说明: + +- KMT_CLICK + - key 要映射的按键码 + - pos 模拟触摸的位置 + - switchMap 是否切换按键模式,点击此按键后,除了默认的模拟触摸映射,是否附带切换按键映射模式。(可以参考和平精英映射中M地图映射的效果) + +- KMT_CLICK_TWICE + - key 要映射的按键码 + - pos 模拟触摸的位置 + +- KMT_STEER_WHEEL + - centerPos 方向盘中心点 + - leftKey 左方向的按键控制 + - rightKey 右方向的按键控制 + - upKey 上方向的按键控制 + - downKey 下方向的按键控制 + - leftOffset 按下左方向键后模拟拖动到相对centerPos位置水平偏左leftOffset处 + - rightOffset 按下右方向键后模拟拖动到相对centerPos位置水平偏右rightOffset处 + - upOffset 按下上方向键后模拟拖动到相对centerPos位置水平偏上upOffset处 + - downOffset 按下下方向键后模拟拖动到相对centerPos位置水平偏下downOffset处 + + +