nokotan / OpenSiv3D

[NO LONGER MAINTAINED] Experimental port of OpenSiv3D to Web
https://siv3d.kamenokosoft.com
MIT License
10 stars 1 forks source link

特定のキーをpreventDefault()する機能 #40

Closed 23tas9 closed 1 year ago

23tas9 commented 1 year ago

追加する機能の内容 | Describe the solution you'd like 指定したキーをpreventDefault()したい

その機能の追加によって解決する問題 | Is your feature request related to a problem? Please describe. Google Chromeには機能のショートカットがありますが、ゲームでキーボード操作を実装する際にこれらの機能が邪魔になることがあります。

nokotan commented 1 year ago

追加の考慮事項

nokotan commented 1 year ago

OpenSiv3D for Web の基幹的な部分の修正であるため、Siv3D 作者 (@Reputeless) にもレビューを依頼しました。

Reputeless commented 1 year ago

@nokotan

可能なのであれば、文字列 / 定数など、何らかの引数を渡して、有効無効を切り替える Web 独自 API を検討してください。 デフォルトは現状と同じ(preventDefault() しない)で良いと思います。

nokotan commented 1 year ago
  • preventDefault() は、個別のキーに設定できるのでしょうか

if 文による条件分岐で呼ぶ/呼ばないの制御が可能です

  • C++ API 側から preventDefault() を制御することは技術的に可能ですか?

C++ API が何を指しているのかわかりませんが、C/C++ から (ビルド時にあらかじめ登録した) JavaScript の関数は自由に呼び出せます。

Reputeless commented 1 year ago

では s3d::Platform::Web::EnableKeyboardEvent(... , false); 的な感じでよろしくお願いします。

「あらゆるブラウザのショートカットを無効にする」も preventDefault() を使う実装ですか? そういうアプリがほかにもよくあるなら、 s3d::Platform::Web::DisbaleKeyboardShortcuts(); を入れてもよさそうです。

nokotan commented 1 year ago

追加の考慮事項