之前用"TC Games"通过电脑控制手机玩游戏, 但是很多功能需要会员,我肯定是不会冲会员的!!!
我就想他后面的原理是什么, 虚拟机? 还是其他? 让我们动起来吧
每次连接都会提示 允许远程调试, 应该是和adb有关, 我很多都不清楚,所以我问了一下chatGPT 相关的, chatGPT也给我了一些答案和线索, 最后发现了 几个强大且免费的软件 scrcpy 和 QtScrcpy,
scrcpy
是一个免费的开源屏幕镜像程序,它允许以Windows 、 macOS或Linux台式计算机查看并控制 Android 设备,可轻松实现快速的屏幕镜像。 [2]该软件目前由 Genymobile公司 [3]开发,这家公司还开发了 Android 模拟器 Genymotion
GitHub地址
https://github.com/Genymobile/scrcpy
图形界面的scrcpy 有下面三个, 我最后选择了QtScrcpy来完成我的目标,"在电脑上面操作手机玩游戏"
QtScrcpy
https://github.com/barry-ran/QtScrcpy
guiscrcpy
https://github.com/srevinsaju/guiscrcpy
scrcpy-gui
https://github.com/Tomotoes/scrcpy-gui
QtScrcpy
QtScrcpy 可以通过 USB / 网络连接Android设备,并进行显示和控制。无需root权限。 同时支持 GNU/Linux ,Windows 和 MacOS 三大主流桌面平台 专注于:
- 精致 (仅显示设备屏幕)
- 性能 (30~60fps)
- 质量 (1920×1080以上)
- 低延迟 (35~70ms)
- 快速启动 (1s 内就可以看到第一帧图像)
- 非侵入性 (不在设备上安装任何软件)
可以通过USB,tcp连接设备, 延迟低,玩游戏不卡, 具体怎么操作呢
下载:
https://github.com/barry-ran/QtScrcpy/releases
运行, 解压既可以玩
解压后 打开 QtScrcpy.exe
设置:
- 比特率: 8/16/32 Mbps 数字越大越清晰,但是延迟也可能会变高
- 最大尺寸: 选择大点的
- 通过usb插上手机, 然后点击 "启动服务" ,接着点击 "刷新设备列表" ,就可以看到设备, 双击 上面 就可以 打开窗口
接下来设置按键, 以便在游戏中使用键盘鼠标
感谢开发者,已经写好了功能,我们只需要修改一下配置文件就可以了 软件目录下面的 keymap 文件夹中, 是映射按键的配置文件, 我们可以根据自己的需要进行修改
{
"switchKey": "Key_QuoteLeft",
"mouseMoveMap": {
"startPos": {
"x": 0.57,
"y": 0.26
},
"speedRatioX": 8,
"speedRatioY": 8,
"smallEyes": {
"comment": "小眼睛",
"type": "KMT_CLICK",
"key": "Key_Alt",
"pos": {
"x": 0.3,
"y": 0.5
},
"switchMap": false
},
"speedRatio": 10
},
"keyMapNodes": [
{
"comment": "方向盘",
"type": "KMT_STEER_WHEEL",
"centerPos": {
"x": 0.18,
"y": 0.73
},
"leftOffset": 0.1,
"rightOffset": 0.1,
"upOffset": 0.27,
"downOffset": 0.2,
"leftKey": "Key_A",
"rightKey": "Key_D",
"upKey": "Key_W",
"downKey": "Key_S"
},
#上面的不建议删除,下面的可随意
{
"comment": "自动跑",
"type": "KMT_CLICK",
"key": "Key_Equal",
"pos": {
"x": 0.76,
"y": 0.31
},
"switchMap": false
},
{
"comment": "跳",
"type": "KMT_CLICK",
"key": "Key_Space",
"pos": {
"x": 0.92,
"y": 0.7
},
"switchMap": false
},
{
"comment": "背包",
"type": "KMT_CLICK",
"key": "Key_Tab",
"pos": {
"x": 0.06,
"y": 0.9
},
"switchMap": true
},
{
"comment": "趴",
"type": "KMT_CLICK",
"key": "Key_Z",
"pos": {
"x": 0.9,
"y": 0.9
},
"switchMap": false
},
{
"comment": "蹲",
"type": "KMT_CLICK",
"key": "Key_C",
"pos": {
"x": 0.825,
"y": 0.92
},
"switchMap": false
},
{
"comment": "换弹",
"type": "KMT_CLICK",
"key": "Key_R",
"pos": {
"x": 0.76,
"y": 0.86
},
"switchMap": false
},
{
"comment": "捡东西1",
"type": "KMT_CLICK",
"key": "Key_F",
"pos": {
"x": 0.50,
"y": 0.78
},
"switchMap": false
},
{
"comment": "换枪1",
"type": "KMT_CLICK",
"key": "Key_Q",
"pos": {
"x": 0.50,
"y": 0.88
},
"switchMap": false
},
{
"comment": "手雷",
"type": "KMT_CLICK",
"key": "Key_4",
"pos": {
"x": 0.65,
"y": 0.89
},
"switchMap": false
},
{
"comment": "开枪",
"type": "KMT_CLICK",
"key": "LeftButton",
"pos": {
"x": 0.82,
"y": 0.76
},
"switchMap": false
},
{
"comment": "开镜",
"type": "KMT_CLICK",
"key": "RightButton",
"pos": {
"x": 0.85,
"y": 0.55
},
"switchMap": false
},
{
"comment": "道具1",
"type": "KMT_CLICK",
"key": "Key_1",
"pos": {
"x": 0.31,
"y": 0.88
},
"switchMap": false
},
{
"comment": "道具2",
"type": "KMT_CLICK",
"key": "Key_2",
"pos": {
"x": 0.36,
"y": 0.88
},
"switchMap": false
},
{
"comment": "道具3",
"type": "KMT_CLICK",
"key": "Key_3",
"pos": {
"x": 0.41,
"y": 0.89
},
"switchMap": false
},
{
"comment": "道具4",
"type": "KMT_CLICK",
"key": "Key_E",
"pos": {
"x": 0.90,
"y": 0.375
},
"switchMap": false
},
{
"comment": "跳过等待",
"type": "KMT_CLICK",
"key": "Key_X",
"pos": {
"x": 0.50,
"y": 0.96
},
"switchMap": false
}
]
}
比如上面这个是cod手游的简单配置文件, 编辑好后,没有错误,我们可以在软件点击"刷新脚本" 然后再点击后面的应用脚本, 当出现提示, 就说明我们的映射文件正常加载了, 如果提示其他,说明文件内容有误,
"Script updated, current keymap mode:normal, Press ~ key to switch keymap mode"
点击 ~ ,则会绑定键盘, 解绑则再次按下 ~
如何设置值
举个例子, 手机中游戏界面那个广告的 关闭, 点击一下, 在 软件中就会显示当前点击的坐标, 我们把要绑定的按键设置成对应的值就可以了,以后按对应的按键,相当于触摸了屏幕的对应位置
假如这里在屏幕上面的坐标为 x: 0.8 , y: 0.6 . 我们需要绑定到 按键 "K"
"comment": "绑定的按键K",
"type": "KMT_CLICK",
"key": "Key_K", #这里K要大写
"pos": {
"x": 0.8, #这里对应获取到的值
"y": 0.6 #这里对应获取到的值
},
"switchMap": false
},