From f1d34405d95b28482a753d6af86e19aae418fd79 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 20 Jul 2026 07:32:18 +0000 Subject: [PATCH] =?UTF-8?q?=E9=88=B4=E3=82=92=E9=B3=B4=E3=82=89=E3=81=97?= =?UTF-8?q?=E3=81=9F=E7=9B=B4=E5=BE=8C=E3=81=AE=E8=AA=A4=E3=82=B9=E3=82=AD?= =?UTF-8?q?=E3=83=83=E3=83=97=E3=82=92=E9=98=B2=E6=AD=A2(1.5=E7=A7=92?= =?UTF-8?q?=E3=81=AE=E7=8C=B6=E4=BA=88)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 鳴った瞬間にphaseがcascadeへ切り替わるため、鈴を鳴らしたジェスチャーの 指離し(touchend)や勢い余った直後のタップがスキップ判定に食われて 即結果表示になっていた(#190でtouchendを拾うようになり顕在化)。 鳴ってから1.5秒はスキップを武装しない。 Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01DwkB6Hj2JggoKcy7FoxNcU --- web/components/OmikujiScene.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/web/components/OmikujiScene.vue b/web/components/OmikujiScene.vue index 95ce8f6..21ff6f1 100644 --- a/web/components/OmikujiScene.vue +++ b/web/components/OmikujiScene.vue @@ -258,6 +258,10 @@ export default { onRing() { if (this.rung) return; this.rung = true; + // 鳴った直後はスキップを武装しない。鈴を鳴らしたジェスチャーの指離し + // (touchend)や勢い余った直後のタップが、cascadeに切り替わった瞬間の + // スキップ判定に食われて即結果表示になるのを防ぐ。 + this._skipArmedAt = performance.now() + 1500; this.$emit("rang"); this.ringPulse = true; this.later(900, () => (this.ringPulse = false)); @@ -394,6 +398,8 @@ export default { }, onTap() { // 演出中はタップでスキップ(儀式中は誤爆防止のため無効。fallbackリンクを使う) + // 鳴った直後の猶予中(_skipArmedAt前)も無効(onRing参照)。 + if (this._skipArmedAt && performance.now() < this._skipArmedAt) return; if (this.phase === "cascade" || this.phase === "fox") this.finish(); },