GUIでは、ボタンが押されたときまたは離されたときに入力を処理する必要がありますか?


12

ゲームのメニューシステム(レベル、オプションなどの選択)では、プレーヤーはゲームパッドのaボタンを押して次の画面に進みます。メニューシステムをコーディングして、ボタンが放されるまで待機してからアクションを実行します(つまり、次の画面を表示します)。最近のプレイテストのフィードバックでは、ボタンを押したらすぐにアクションを起こすという逆の方法を提案しています。私は興味があります、これが処理される標準的な方法は何ですか、そしてそれは違いを生みますか?

回答:


32

ゲームパッドによって制御されるゲームでは、コントロール入力がGUIフォーカスをあるGUIボタンから別のGUIボタンに直接変更するため、コントローラーボタンが押されたときにこれらのGUIボタンをアクティブにする必要があります。

マウス/コントローラボタンがされたときに、マウスによって制御される(またはゲームパッドは、スクリーンの周りの仮想マウスカーソルを移動させるために使用される場合)ゲームでは、画面上のボタンが活性化されるべきである解放同じボタンの上に、それがされました押した。(1つのGUIボタン上でプレスが発生し、その後マウスが移動され、別のGUIボタン上でリリースされた場合、どちらのGUIボタンもアクティブ化されません)

この理由は、人々のマウス制御スキルは非常に可変的であり、多くの場合、人々はカーソルを希望する場所に正確に配置したり、現在どのホィール上にカーソルを置いているかを正確に伝えることさえ少し困難です。理論的には、人々はマウスボタンを押したままにしてGUIボタンを強調表示し、そのGUIボタンが使用したいものでない場合、マウスボタンを順番に放す前にカーソルをそこから離すことができます押さないでください。

ただし、ゲームがゲームパッドで制御されている場合は、ゲームパッドのボタンがリリースされたときではなく、ボタンが押されたときにアクションを実行する必要があります。

編集、5年後:

この回答が投稿されてから、ゲームパッドで制御されるマウススタイルのカーソルを処理するための新しい標準が登場し始めました。

上記の答えでは、これらは実際にマウスで制御されているカーソルとまったく同じように機能するように実装することを提案しました。マウスダウンで強調表示し、カーソルが同じGUI要素上にある場合、マウスアップでアクティブにします。

しかし、現在では、ゲームパッドで制御されたカーソルは、通常、ゲームパッドボタンが一定時間押された後にGUIアクションをアクティブにします(通常、約1秒)。このシステムを使用する場合は、アクティブ化が発生するまでの時間を示す画面上のインジケータが必要です(多くの場合、これはカーソル自体の周りの小さなリングで、アクティブ化に近づくにつれていっぱいになります)ボタンを押したままにします)、ボタンが押されている間、アクティブにする要素を強調表示する必要がありますボタンが押されていない場合)。ボタンが保持されている間、カーソルが最後の瞬間に動か​​された場合にGUI要素が偶発的にアクティブにならないように、カーソルを移動できないようにする必要があります。

このシステムの利点は、マウススタイルのカーソルが間違った場所にあるユーザーが、ボタンを早めに離すだけでその要素をアクティブにしないようにすることです。マウススタイルの「リリースする前にマウスを離す」ことは、マウスよりもゲームパッド上で達成するのが自然ではなく、このアプローチにより、ゲームパッドユーザーは不要なクリックをはるかに簡単に中止できます。

カーソルが実際のマウスで動かされているときでさえ、このカーソル相互作用モデルを実験しているいくつかのゲームを見始めています。一例として、No Man's Skyはこれを行いません。マウスとカーソルの相互作用を処理するこのアプローチが今後数年間でますます一般的になり、期待されるようになるかどうかを確認することは興味深いでしょう。


10
+1。アクションは、マウスダウンではなく、マウスリリースで実行する必要があります。ただし、これを有効にするには、GUI要素自体がマウスダウンイベントで視覚状態を変更することが重要です。
カイロタン

関連性を保つために5年後に質問を更新するために戻ってきた+1。
lozzajp 16

誰かが私の古い回答の1つに賛成票を投じたりコメントしたりするたびに、それを再読して、それが最新であることを確認します。:)
トレバーパウエル

1

キーが押されたらすぐにアクションを実行します。

キーがリリースされた後にアクションが行われた最も良い例は、Starcraft:Broodwarでした。キーを非常にすばやく押すと、前のキーを完全に解放する前に次のキーを押すことが多く、一部のコマンドが無視されることになりました。(1Aクリック、2Aクリック、3Aクリック-2は無視されます)

これはWarcraft IIIで変更され、その結果、ゲームの応答性が大幅に向上し、Broodwarの「スティッキーコントロールグループ」の問題は発生しませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.