質問: 初心者です。簡単なゲームなのですが、その中にスタートボタンがあり、 addEventListener('click', )にてスタートするようになって います。時間を競うゲームなので、スタートボタンを押して すぐに反応して欲しいのですが、いまキーボード操作で ”Enter”を押すとすぐ反応してくれるのですが、html(php)画面の ”スタートボタン”をマウス左クリックで押すと反応が約0.15秒 くらい遅れます。 時間を競うゲームなので、この0.15秒が大きいのですが、 画面のCSSで作成されたボタンをTabで合わせている状態で Enterを押すのと、マウスクリックするのとでは、 時間誤差は出ますか?また、マウスクリックで時間誤差を 無くす方法がありますでしょうか? 簡単ですが、ソースを下記に記します。 参考にボタンはbootstrapという物を使っています。 /// /// ///// START ///// 追記 もともと、タイムを競うゲームなので、タイムそのものがスコアになるので0.15秒という値が分かります。 ゲーム開始はスタートボタンをマウスで押すか、Enterで押すかの違いなので、押すタイミングのずれはゼロです。(物理的なボタンの大きさ機構の違いだけなのでゲームに影響を与えるほどの値とは思えません。) スタートボタンを押すと、ストップボタンに変化します。ストップボタンを押すとスタートボタンにまた変わる、を繰り返します。マウスは動かさないので、動作の違いは左クリックとキーボードEnterのボタン違いのみなのです。
回答: ~~マウスカーソルを動かす系のゲームなら、ボタン位置から ゲーム画面までの距離でどうしても時間がかかります。 キーボードでボタンクリックの処理を行うと、マウスカーソルの位置は ゲーム画面内にかまえていても構わないので、その差かなと思います。~~ ~~解決方法としては以下のようなことが考えられるのかなと思います。 ※実現可かどうかは調べてないです。~~ * ~~ボタンをキーボードで操作できなくする~~ * ~~スタートボタンのクリック判定後にカウントダウンを入れる~~ * ~~スタートボタンをなくし、ゲーム画面をクリックすることでゲーム開始にする~~ [ゲーム仕様が思ってたものと違ってたので修正] 同じボタンを2回押すことによる判定であれば、単に入力機器による動作の違いな気がします。 マウスのクリックはボタンを押して離すまでが動作ですが、 キーボードによる判定はキーが押下されたときで、上に戻るのは判定外です。 その差が質問者様の環境の0.15秒ではないかと思います。 --- bootstrapは単にCSSライブラリなのでクリック時の挙動はbootstrapを使っていようが使っていまいが同じです。