garplab / typingtube

24 stars 1 forks source link

【不具合】タイピングプレイ時のupdate_status()関数が呼ばれるタイミングについて #60

Closed Toshi7878 closed 4 years ago

Toshi7878 commented 4 years ago

update_status()が呼ばれるタイミングがtyping_count変数、typing_miss_count変数が更新される前に呼ばれていて、statusに表示されている内容がライン更新時以外は一つ前の状態が表示されています

scriptの処理の流れを見ると ①ユーザーが1打鍵した → ②checkNextChar(c)関数、checkNextKana(c, daku, handaku)関数が呼ばれる(ここでupdate_status()が呼ばれる) → ③keydownfunc(), keypressfunc_kana() が呼び出されてtyping_count +1などの処理がされる のようになっていました

なので試しにconsoleからデバッグし、keydownfunc()とkeypressfunc_kana()からupdate_status()を呼び出す処理に変更したところ、この問題を解消できました

デバッグしたkeydownfunc()とkeypressfunc_kana()のuser scriptも限定公開で投稿したので参考になれば幸いです https://greasyfork.org/ja/scripts/403158-typing-tube-%E3%83%87%E3%83%90%E3%83%83%E3%82%B0-update-status%E6%9B%B4%E6%96%B0%E3%81%AE%E4%B8%8D%E5%85%B7%E5%90%88%E8%A7%A3%E6%B6%88

Toshi7878 commented 4 years ago

keydownfunc_kana()関数も濁点・半濁点入力時に使用されていましたので、user scriptをアップデートしました

update_status()の更新は keydownfunc(), keypressfunc_kana(),keydownfunc_kana(),playheadUpdate()のみで正常に動作していたのでcheckNextChar(c),checkNextKana(c, daku, handaku),clearForNextString()から呼ばれているupdate_status()は削除しても問題なさそうです

Toshi7878 commented 4 years ago

Typing Tube MOD official で修正されています