概要:
複数の「XBox 360 コントローラー」の違いを教えてください。
コンテキスト: Javascript ( Typescript )を使用してGamepad API
用の GamepadManager の構築に取り組んでいます。GamepadManager の主な機能は、特定のゲームパッド ボタンまたは軸が使用されたときに呼び出されるコールバックをサポートすることです。(GamepadManager は、特定のメーカーとモデルのボタンと軸を具体的にマップするコントローラー プロファイルのリストも使用します)
質問:
物理ゲームパッドが再接続された場合、最初に切断された物理ゲームパッドに同じ Javascript ゲームパッド オブジェクトを再リンク/割り当てできますか?
それは実際に自動的に起こっているのでしょうか?さらに良いことに、どうにかして再リンクを手動で行うことはできますか?
window.addEventListener("gamepaddisconnected", function(e) {
var gp = e.gamepad;
var isConnected = gp.connected;
});
シナリオ:
物理ゲームパッドが切断されると、上記の EventListener は、現在切断されている物理ゲームパッドに元々使用されていたゲームパッド オブジェクトを含むイベントを返します。イベントのゲームパッド オブジェクトには、物理ゲームパッドがまだ接続されているかどうかを指定するブール値があります....しかし、切断イベント リスナーから返されたので、もちろん切断されています。私にとって、これは、物理ゲームパッドが切断されたまま、おそらく再接続されたときに再利用される間、ゲームパッド オブジェクトが永続的に使用される可能性があることを意味します。
私が探しているもの:
GamepadManager が、切断される前に、再接続された物理ゲームパッドを同じゲーム内のプレイ可能なキャラクターにリンクするのに十分なほどスマートであることを望みます。
(この方法では、プレーヤーが特定のコントローラーを使用していて、それが切断されて再接続された場合、その同じコントローラーが記憶され、同じキャラクターを引き続き制御します)
さらに、4 つすべての物理ゲームパッドが XBox 360 コントローラーの同じメーカー/モデルであっても、接続されている USB ポートに関係なく、GamepadManager が違いを認識できるようにしたいと考えています。
各物理ゲームパッドには、同じメーカーとモデルの他のゲームパッドと区別するために必要な特定の ID/シリアル番号があるのでしょうか? それとも、2 つ以上の一致する物理ゲームパッドの違いを見分ける唯一の方法は USB ポートですか?
別の方法:
ゲームの物理ゲームパッドを管理する方法を調べるより良い方法はありますか? (横スクロールアクションサンドボックス)