mirror of
https://github.com/AkiChase/scrcpy-mask
synced 2025-02-22 23:12:16 +08:00
commit
f1d4c880cf
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "scrcpy-mask",
|
"name": "scrcpy-mask",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.1.5",
|
"version": "0.1.6",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "scrcpy-mask"
|
name = "scrcpy-mask"
|
||||||
version = "0.1.5"
|
version = "0.1.6"
|
||||||
description = "A Tauri App"
|
description = "A Tauri App"
|
||||||
authors = ["AkiChase"]
|
authors = ["AkiChase"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"productName": "scrcpy-mask",
|
"productName": "scrcpy-mask",
|
||||||
"version": "0.1.5",
|
"version": "0.1.6",
|
||||||
"identifier": "com.akichase.mask",
|
"identifier": "com.akichase.mask",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": "pnpm dev",
|
"beforeDevCommand": "pnpm dev",
|
||||||
|
@ -122,6 +122,12 @@ function dragHandler(downEvent: MouseEvent) {
|
|||||||
keyboardStore.activeButtonIndex = -1;
|
keyboardStore.activeButtonIndex = -1;
|
||||||
keyboardStore.activeSteeringWheelButtonKeyIndex = -1;
|
keyboardStore.activeSteeringWheelButtonKeyIndex = -1;
|
||||||
keyboardStore.showSettingFlag = !keyboardStore.showSettingFlag;
|
keyboardStore.showSettingFlag = !keyboardStore.showSettingFlag;
|
||||||
|
if (
|
||||||
|
keyboardStore.showSettingFlag &&
|
||||||
|
store.keyMappingConfigList.length === 1
|
||||||
|
) {
|
||||||
|
message.info("当前仅有一个按键方案,点击导入默认,可导入预设方案");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
window.addEventListener("mouseup", upHandler);
|
window.addEventListener("mouseup", upHandler);
|
||||||
|
@ -14,6 +14,7 @@ import {
|
|||||||
} from "naive-ui";
|
} from "naive-ui";
|
||||||
import {
|
import {
|
||||||
KeyDirectionalSkill,
|
KeyDirectionalSkill,
|
||||||
|
KeyTriggerWhenDoublePressedSkill,
|
||||||
KeyTriggerWhenPressedSkill,
|
KeyTriggerWhenPressedSkill,
|
||||||
} from "../../keyMappingConfig";
|
} from "../../keyMappingConfig";
|
||||||
import { useKeyboardStore } from "../../store/keyboard";
|
import { useKeyboardStore } from "../../store/keyboard";
|
||||||
@ -276,12 +277,9 @@ function updateRangeIndicator(element?: HTMLElement) {
|
|||||||
</NFormItem>
|
</NFormItem>
|
||||||
<NFormItem v-if="!isDirectionless" label="范围">
|
<NFormItem v-if="!isDirectionless" label="范围">
|
||||||
<NInputNumber
|
<NInputNumber
|
||||||
v-if="
|
v-if="keyMapping.type === 'DirectionalSkill'"
|
||||||
keyMapping.type === 'DirectionalSkill' ||
|
|
||||||
'TriggerWhenDoublePressedSkill'
|
|
||||||
"
|
|
||||||
v-model:value="(keyMapping as KeyDirectionalSkill).range"
|
v-model:value="(keyMapping as KeyDirectionalSkill).range"
|
||||||
placeholder="请输入技能范围"
|
placeholder="range"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="100"
|
:max="100"
|
||||||
@update:value="
|
@update:value="
|
||||||
@ -290,9 +288,20 @@ function updateRangeIndicator(element?: HTMLElement) {
|
|||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
<NInputNumber
|
<NInputNumber
|
||||||
v-else
|
v-else-if="keyMapping.type === 'TriggerWhenPressedSkill'"
|
||||||
v-model:value="(keyMapping as KeyTriggerWhenPressedSkill).rangeOrTime"
|
v-model:value="(keyMapping as KeyTriggerWhenPressedSkill).rangeOrTime"
|
||||||
placeholder="请输入技能范围"
|
placeholder="rangeOrTime"
|
||||||
|
:min="0"
|
||||||
|
:max="100"
|
||||||
|
@update:value="
|
||||||
|
keyboardStore.edited = true;
|
||||||
|
updateRangeIndicator();
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
<NInputNumber
|
||||||
|
v-else-if="keyMapping.type === 'TriggerWhenDoublePressedSkill'"
|
||||||
|
v-model:value="(keyMapping as KeyTriggerWhenDoublePressedSkill).range"
|
||||||
|
placeholder="range"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="100"
|
:max="100"
|
||||||
@update:value="
|
@update:value="
|
||||||
|
@ -252,7 +252,13 @@ function addCancelSkillShortcuts(
|
|||||||
loopDownKeyCBMap.delete(cancelAbleKey);
|
loopDownKeyCBMap.delete(cancelAbleKey);
|
||||||
upKeyCBMap.delete(cancelAbleKey);
|
upKeyCBMap.delete(cancelAbleKey);
|
||||||
}
|
}
|
||||||
|
// special case for double press skill
|
||||||
|
for (const [key, val] of doublePressedDownKey) {
|
||||||
|
if (val) {
|
||||||
|
loopDownKeyCBMap.delete(key);
|
||||||
|
doublePressedDownKey.set(key, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
let distance = 0;
|
let distance = 0;
|
||||||
while (distance <= 20) {
|
while (distance <= 20) {
|
||||||
await touch({
|
await touch({
|
||||||
@ -308,6 +314,12 @@ function addTriggerWhenPressedSkillShortcuts(
|
|||||||
key,
|
key,
|
||||||
// down
|
// down
|
||||||
async () => {
|
async () => {
|
||||||
|
// up doublepress skill
|
||||||
|
for (const [key, val] of doublePressedDownKey) {
|
||||||
|
if (val) {
|
||||||
|
downKeyCBMap.get(key)?.();
|
||||||
|
}
|
||||||
|
}
|
||||||
const skillOffset = clientPosToSkillOffset(
|
const skillOffset = clientPosToSkillOffset(
|
||||||
{ x: mouseX, y: mouseY },
|
{ x: mouseX, y: mouseY },
|
||||||
rangeOrTime
|
rangeOrTime
|
||||||
@ -337,6 +349,8 @@ function addTriggerWhenPressedSkillShortcuts(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// add shortcuts for trigger when double pressed skill (cancelable, but in another way)
|
||||||
|
const doublePressedDownKey = new Map<string, boolean>();
|
||||||
function addTriggerWhenDoublePressedSkillShortcuts(
|
function addTriggerWhenDoublePressedSkillShortcuts(
|
||||||
key: string,
|
key: string,
|
||||||
relativeSize: { w: number; h: number },
|
relativeSize: { w: number; h: number },
|
||||||
@ -348,12 +362,12 @@ function addTriggerWhenDoublePressedSkillShortcuts(
|
|||||||
) {
|
) {
|
||||||
posX = Math.round((posX / relativeSize.w) * screenSizeW);
|
posX = Math.round((posX / relativeSize.w) * screenSizeW);
|
||||||
posY = Math.round((posY / relativeSize.h) * screenSizeH);
|
posY = Math.round((posY / relativeSize.h) * screenSizeH);
|
||||||
let curKeyDownFlag = false;
|
doublePressedDownKey.set(key, false);
|
||||||
addShortcut(
|
addShortcut(
|
||||||
key,
|
key,
|
||||||
// down
|
// down
|
||||||
async () => {
|
async () => {
|
||||||
if (curKeyDownFlag === false) {
|
if (doublePressedDownKey.get(key) === false) {
|
||||||
// first press: touch down
|
// first press: touch down
|
||||||
const skillOffset = clientPosToSkillOffset(
|
const skillOffset = clientPosToSkillOffset(
|
||||||
{ x: mouseX, y: mouseY },
|
{ x: mouseX, y: mouseY },
|
||||||
@ -376,7 +390,7 @@ function addTriggerWhenDoublePressedSkillShortcuts(
|
|||||||
intervalBetweenPos: 0,
|
intervalBetweenPos: 0,
|
||||||
});
|
});
|
||||||
// set the flag to true
|
// set the flag to true
|
||||||
curKeyDownFlag = true;
|
doublePressedDownKey.set(key, true);
|
||||||
// add loop CB
|
// add loop CB
|
||||||
loopDownKeyCBMap.set(key, async () => {
|
loopDownKeyCBMap.set(key, async () => {
|
||||||
const loopSkillOffset = clientPosToSkillOffset(
|
const loopSkillOffset = clientPosToSkillOffset(
|
||||||
@ -417,7 +431,7 @@ function addTriggerWhenDoublePressedSkillShortcuts(
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
// set the flag to false
|
// set the flag to false
|
||||||
curKeyDownFlag = false;
|
doublePressedDownKey.set(key, false);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
undefined,
|
undefined,
|
||||||
@ -440,6 +454,12 @@ function addDirectionlessSkillShortcuts(
|
|||||||
key,
|
key,
|
||||||
// down
|
// down
|
||||||
async () => {
|
async () => {
|
||||||
|
// up doublepress skill
|
||||||
|
for (const [key, val] of doublePressedDownKey) {
|
||||||
|
if (val) {
|
||||||
|
downKeyCBMap.get(key)?.();
|
||||||
|
}
|
||||||
|
}
|
||||||
await touch({
|
await touch({
|
||||||
action: TouchAction.Down,
|
action: TouchAction.Down,
|
||||||
pointerId,
|
pointerId,
|
||||||
@ -490,6 +510,12 @@ function addDirectionalSkillShortcuts(
|
|||||||
key,
|
key,
|
||||||
// down
|
// down
|
||||||
async () => {
|
async () => {
|
||||||
|
// up doublepress skill
|
||||||
|
for (const [key, val] of doublePressedDownKey) {
|
||||||
|
if (val) {
|
||||||
|
downKeyCBMap.get(key)?.();
|
||||||
|
}
|
||||||
|
}
|
||||||
const skillOffset = clientPosToSkillOffset(
|
const skillOffset = clientPosToSkillOffset(
|
||||||
{ x: mouseX, y: mouseY },
|
{ x: mouseX, y: mouseY },
|
||||||
range
|
range
|
||||||
|
Loading…
Reference in New Issue
Block a user