Merge pull request #12 from AkiChase/dev

Scrcpy Mask v0.1.6
This commit is contained in:
如初 2024-05-06 09:39:54 +08:00 committed by GitHub
commit f1d4c880cf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 56 additions and 15 deletions

View File

@ -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",

View File

@ -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"

View File

@ -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",

View File

@ -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);

View File

@ -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="

View File

@ -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