タグ付けされた質問 「input」

入力は、プレーヤーの操作(マウス、キーボード、ゲームパッドなど)を介してゲームに提供されるデータです。

4
タブレットのプレーヤーの疲労?
タブレット向けのゲームを作ることを考えています。PC /コンソールのバックグラウンドから来て、私はユーザーインターフェイスの大きな違いを痛感し、ターゲットプラットフォームを念頭に置いて設計する必要があることを知っています。 私が心配している1つの側面はプレーヤーの疲労です。PCおよびコンソールで使用される入力デバイス(キーボードおよびゲームコントローラー)は、拡張プレイ用に最適化されており、人間工学に基づいた成熟したデザインです。ほとんどのベテランのプレーヤーは、疲労に苦しむことなく、数千のキー/ボタンを押すことで、1時間簡単にそれらを使用できます。至るまでの結果で、ユーザーエクスペリエンスを設計するとき、設計者は、これに依存することができますレベルのサイズ/長さ、の手順は、コマンドを実行するために必要な、ゲームのペースと、より多くの。 タッチスクリーンタブレットはどうですか?プレーヤーはより速く疲労しますか、または単位時間あたりのタップ/スワイプを実行できませんか?ある場合、この問題に関するリソースやガイドラインはありますか?

6
XNAでマウス入力を処理する方法は?
XNAでカードゲームを開発しています。 OnClickXNAにオブジェクトのイベントはありますか? プレイヤーがカードをクリックしたときにカードを動かそうとしています。このプロジェクトには、カードを描画するSpriteクラスがありますが、OnClickイベントなどを使用する方法がわからないため、少し立ち往生しています。
13 xna  c#  input  mouse 

5
キーボード入力システムの取り扱い
注:API制限(SFML)のためにコールバックを行うのではなく、ポーリングする必要があります。「まともな」タイトルがないこともおizeび申し上げます。 ここで2つの質問があると思います。受け取った入力を登録する方法と、それをどうするか。 入力の処理 たとえば、「A」キーが押されたことを登録したという事実と、そこからそれを行う方法について話します。 私は次のようなキーボード全体の配列を見てきました: bool keyboard[256]; //And each input loop check the state of every key on the keyboard しかし、これは非効率的です。たとえば、「A」キーを「左に移動するプレーヤー」に結合するだけでなく、毎秒30〜60回すべてのキーをチェックします。 次に、必要なキーを探すだけの別のシステムを試しました。 std::map< unsigned char, Key> keyMap; //Key stores the keycode, and whether it's been pressed. Then, I declare a load of const unsigned char called 'Quit' or 'PlayerLeft'. input->BindKey(Keys::PlayerLeft, …

4
forward = downマウスの向きが一般に「反転」と呼ばれるのはなぜですか?
マウスを使用してカメラを制御できる3Dゲーム、特に1人称および3人称シューティングゲームスタイルのゲームを見ると、通常2つの具体的な詳細が見つかります。 デフォルトでは、マウスを前に押すとカメラが上に、後ろに引くと下になります。 これを逆にするオプション(forward = down)は、「Y軸の反転」または同様のものと呼ばれます。 私はそれを理解したことは一度もありませんし、デフォルト設定がオンになっているゲームでかなり混乱してしまうほど、常に後ろ向きに思えます。マウス(または、さらに言えば、首の上に座っている頭のように見えるサムスティック)が遠近法のキャラクターの頭をモデリングしていることは直感的に明らかです。左に移動すると、左に見えます。右に移動すると、右に見えます。、邁進前方頭のプッシュを、あなたが見下ろす...右? 実際、この方向は、フライトシミュレーター、MechWarrior 2などの初期の3Dゲームの多くでデフォルトでした。しかし、ある時点で変更され、人々は直感的な方向を「反転」し、デフォルトで無効にしました。 このデフォルトのカメラコントロールの向きの反転の背後に歴史的な理由はありますか?おそらく、変更の背後にある理論的根拠に関する記事や、それが望ましい変更である理由を示す研究はありますか?

4
SDLのトラップマウス
ユーザーのマウスをゲーム内にトラップするにはどうすればよいですか?フルスクリーンのゲームではありませんが、ユーザーがマウスを画面外にドラッグできないようにしたいです。 マウスとSDL_WarpCursorの座標を確認してウィンドウ内で(手動で)確認する必要がありますか、それとも自動的な方法がありますか? ありがとうございました。
12 sdl  input  mouse 

4
2つの異なるマウスを同時に検出し、それらの動きを別々に記録することは可能ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 5年前に閉鎖されました。 遊ぶために2匹のマウスを必要とするゲームを作ることを考えています。動きを別々に登録する必要があります。これは可能ですか?または、Windowsアーキテクチャはそのようなことを許可していませんか? ありがとうございました。
12 input  windows  mouse 

2
XBoxコントローラーを抽象化する正しい方法
アプリケーションの入力として使用したいXBox360コントローラーがあります。 私が解決できないのは、インターフェースを介してこれを公開するベストプラクティスの方法です。 舞台裏では、コントローラーを処理するクラスはポーリングボタンの状態に依存しています。 最初に何かリンクを試しました: Event ButtonPressed() as ButtonEnum どこにButtonEnumあったButtonRed、ButtonStartなど これは、ボタンの押下のみをサポートし、ホールド/パターン(2回押すなど)をサポートしないという点で少し制限されています 次のアイデアは、単にボタンの状態をアプリに公開することです Property RedPressed as Boolean Property StartPressed as Boolean Property Thumb1XAxis as Double これは非常に柔軟ですが、実際にはアプリに多くの作業を強制し、アプリにポーリングを要求します-可能であればイベント駆動型を好むでしょう。 たとえば、複数のイベントを追加することを検討しました。 Event ButtonPressed(Button as ButtonEnum) Event ButtonPressedTwice(Button as ButtonEnum) Event ButtonHeldStart(Button as ButtonEnum) Event ButtonHeldEnd(Button as ButtonEnum) しかし、これは少し不格好なようで、「バインドボタン」画面に大きな痛みがありました。 誰かが、コントローラーからの入力を処理する「正しい」方法を教えてください。 注:インターフェイスを実装するクラス内でSlimDXを使用しています。これにより、状態を非常に簡単に読み取ることができます。私の問題を解決する代替品も歓迎します

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


3
コンポーネントベースの設計における入力処理
この質問が何度も尋ねられたことは知っていますが、コンポーネントベースのエンジンで入力処理を実装する方法はまだわかりません。 私が使用したコンポーネントベースのデザインは、T = Machineのブログシリーズと、エンティティが単なるIDであるArtemisに基づいていました。 入力処理の実装には、主に3つのアイデアがあります。 入力コンポーネントは、関心のあるイベントを保持します。入力システムは、キーイベントとマウスイベントをゲームイベントに変換し、エンティティを入力コンポーネントとともにループします。イベントに関心がある場合は、入力システムによって適切なアクションが実行されます。このアクションは、入力システムにハードコーディングされます。 入力コンポーネントはありません。特定のイベントを持つエンティティを入力システムに登録します。次に、入力システムはメッセージ(エンティティIDとイベントタイプを含む)を他のシステムに送信し、これらが適切なアクションを実行できるようにします。または、最初のケースと同様に、アクションは入力システムにハードコーディングされます。 最初のメソッドと同様ですが、アクションを入力システムにハードコーディングする代わりに、コンポーネントにはstd::map<std::function>、入力システムによって呼び出される関数(つまり)へのイベントのマップが含まれます。これには、同じイベントを異なるアクションに結合できるという追加の効果があります。 上記の方法のいずれかをお勧めしますか、それとも柔軟な入力処理システムを実装するのに役立つ提案がありますか?また、私はまだマルチスレッドに精通していませんが、実装をスレッドフレンドリーにする提案があれば歓迎します。 注:実装が満たしてほしい追加の要件の1つは、たとえばカメラエンティティとプレーヤーを同時に移動するなど、同じ入力を多くのエンティティに渡すことができることです。

2
遅延マウス入力を行う方法は?
私はカーゲームをしていて、プレイヤーが酔っているという考えがあります。マウスを左右に動かして回転させる、マウスからの入力を遅らせたいのですが。 ユーザーが与える入力と車の回転量の間に一定の遅延を設定するにはどうすればよいですか? 今私はこれを持っています: h = Mathf.Lerp(h, (((Input.mousePosition.x / Screen.width) * 2) - 1), Time.deltaTime * 2); 何が起こるかはターンが遅れますが、非常に遅いです。つまり、マウスを非常に速く動かすと、車の旋回は非常に遅くなりますが、乗数を上げるTime.deltaTimeと、車の旋回は速くなりますが、遅延の影響は最小限に抑えられます。 他にどのようにこれを行うことができますか?
11 unity  c#  input  mouse 

2
XNA / MonoGame用のポータブルバッファーキーボード入力?
予備的な解決策として、私は現在、バッファーされたキーボード入力のためにC#/ XNAゲームプロジェクトでNuclexフレームワークを使用しています。悲しいことに、nuclexはSlimDX.Directinput.dllに依存しているため、私の知る限り、Windows OSでのみ使用できます。しかし、私は他のプラットフォーム(Linux、OSXなど)をターゲットにするためにMonoGameを使用しているため、すべてのプラットフォーム間でバッファキーボード入力を統合するポータブルな方法を探しています。何かありますか?

5
イベント駆動型システムの入れ子になった入力
イベントとデリゲートを使用したイベントベースの入力処理システムを使用しています。例: InputHander.AddEvent(Keys.LeftArrow, player.MoveLeft); //Very simplified code しかし、「ネストされた」入力を処理する方法について疑問に思い始めました。たとえば、Half-Life 2(または実際には任意のソースゲーム)では、でアイテムをピックアップできますE。アイテムを拾ったら、で発砲することはできませんLeft Mouseが、代わりにオブジェクトを投げます。まだジャンプできSpaceます。 (入れ子になった入力とは、特定のキーを押す場所であり、実行できるアクションが変わるものです。メニューではありません。) 3つのケースは次のとおりです。 以前と同じアクションを実行できる(ジャンプなど) 同じアクションを実行できない(発砲など) 別のアクションを完全に実行する(NetHackのように、ドアを開くキーを押すと、移動せずにドアを開く方向を選択する) 私の最初のアイデアは、入力が受信された後でそれを変更することでした: Register input 'A' to function 'Activate Secret Cloak Mode' In 'Secret Cloak Mode' function: Unregister input 'Fire' Unregister input 'Sprint' ... Register input 'Uncloak' ... これは、大量の結合、反復的なコード、およびその他の悪い設計兆候の影響を受けます。 他のオプションは、ある種の入力状態システムを維持することだと思います-おそらく、レジスタ関数の別のデリゲートが、これらの多数のレジスタ/デレジスタをよりクリーンな場所にリファクタリングして(入力システムにある種のスタックがある場合)、または多分守るべきこととすべきでないこと。 ここの誰かがこの問題に遭遇したに違いない。どのように解決しましたか? tl; drイベントシステムで特定の入力の後に受信した特定の入力をどのように処理できますか?

1
シューティングゲームのスクロールにおけるタッチコントロールのゴールドスタンダードはありますか?
現在、iPhoneやAndroidなどのプラットフォームのシューティングゲームにおけるタッチコントロールの「標準」はありますか?それらの多くはデフォルトで自動発射を有効にするか、スプライトに直接タッチしてキャラクターを制御することに気づきましたが、これが標準として浮上しているかどうかはわかりません。 仮想ジョイスティックとボタンソリューションも見ましたが、これは非常に不安定に見えます。

5
キーボードとマウスの入力の処理(Win API)
Windowsでマウスやキーボードをキャッチする方法はいくつかあります。いくつか試してみましたが、それぞれに長所と短所があります。私はあなたに尋ねたいです:どの方法を使用しますか? 私はこれらを試しました: WM_KEYDOWN / WM_KEYUP-主な欠点は、ALT、CONTROL、SHIFTのような左利きのキーと右利きのキーを区別できないことです。 GetKeyboardState-これは最初の方法の問題を解決しますが、新しい方法があります。右ALTキーが押されていることを確認すると、左Ctrlキーが押されていることも確認できます。この動作は、ローカライズされたキーボードレイアウト(チェコ語-CS)を使用している場合にのみ発生します。 WM_INPUT(生の入力)-このメソッドは、左利きのキーと右利きのキーを区別しません(覚えている場合)。マウスの動きに対して、マウス位置のデルタ値がゼロのメッセージが生成されることがあります。

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