Skip to content

Commit 96933c0

Browse files
committed
🚸 防止截屏导致滚屏的检测并直接切断移动动力
1 parent 6914151 commit 96933c0

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

app/src/core/service/controlService/secretEngine/secretEngine.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Queue } from "../../../dataStruct/Queue";
2+
import { Camera } from "../../../stage/Camera";
23
import { Stage } from "../../../stage/Stage";
34
import { ViewFlashEffect } from "../../feedbackService/effectEngine/concrete/ViewFlashEffect";
45

@@ -39,6 +40,10 @@ export class SecretEngine {
3940
Stage.drawingMachine.shutDown();
4041
return true;
4142
}
43+
if (keys.includes("1 1 4 5 1 4")) {
44+
Camera.clearMoveCommander();
45+
return true;
46+
}
4247
return false;
4348
}
4449
}

app/src/core/stage/Camera.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export namespace Camera {
5454
* 可以看成一个九宫格,主要用于处理 w s a d 按键移动,
5555
* 当同时按下w和s,这个值会是(-1,-1),表示朝着左上移动
5656
*/
57-
// eslint-disable-next-line prefer-const
57+
5858
export let accelerateCommander: Vector = Vector.getZero();
5959

6060
/**
@@ -196,6 +196,14 @@ export namespace Camera {
196196
location = leftTopLocationWorld.add(rect.size.divide(2));
197197
}
198198

199+
/**
200+
* 强制清除移动动力命令
201+
* 防止无限滚屏
202+
*/
203+
export function clearMoveCommander() {
204+
accelerateCommander = Vector.getZero();
205+
}
206+
199207
/**
200208
* 单纯缩放镜头
201209
* @returns 缩放前后变化的比值

app/src/core/stage/Stage.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import { Settings } from "../service/Settings";
1515
import { StageMouseInteractionCore } from "../service/controlService/stageMouseInteractionCore/stageMouseInteractionCore";
1616
import { ControllerDrawing } from "../service/controlService/controller/concrete/ControllerDrawing";
1717
import { SecretEngine } from "../service/controlService/secretEngine/secretEngine";
18+
import { Controller } from "../service/controlService/controller/Controller";
19+
import { Camera } from "./Camera";
1820
/**
1921
* 舞台对象
2022
* 更广义的舞台,
@@ -101,6 +103,11 @@ export namespace Stage {
101103
autoBackupEngine.mainTick();
102104

103105
KeyboardOnlyEngine.logicTick();
106+
107+
// 防止截屏无限滚屏
108+
if (Controller.pressingKeySet.size === 0) {
109+
Camera.clearMoveCommander(); // 直接动力切断
110+
}
104111
tickNumber++;
105112
}
106113
let tickNumber = 0;

0 commit comments

Comments
 (0)