Ich arbeite an meinem ersten Multiplayer-XNA-Spiel, und ich muss in der Lage sein, Eingabe von jedem aktiven GamePad
auf einer Xbox360 oder PC zu überprüfen, so dass ich nicht kopieren muss und fügen Sie denselben Code für vier verschiedene Controller ein.Wie man über jedes aktive GamePad in XNA iteriert
Ich habe mir die SignedInGamer
und SignedInGamerCollection
angesehen, aber keiner von ihnen hat einen Verweis auf die spezifischen GamePad
.
Ich möchte etwas wie das Snippet unten tun, aber geändert, damit es in einer Schleife für alle gegenwärtigen Spieler benutzt werden kann, damit ich Eingang für jedes von ihnen erhalten kann. PlayerIndex
hat "Eins", "Zwei", "Drei" und "Vier".
GamePadState gS = GamePad.GetState(Microsoft.Xna.Framework.PlayerIndex.One);
Ich habe mir die Freiheit genommen, einen allgemeinen Fehler in Ihrem Code zu beheben. Achten Sie darauf, '<=' und * nicht * '<' in Ihrem Zustand zu verwenden. Die Verwendung des Letzteren wird dazu führen, dass der vierte Controller nicht funktioniert (und dazu führt, dass Ihr Spiel keinen Peer-Review durchführt - dieses Problem ist in http://create.msdn.com/en-US/resources/help/peer_review_evil_checklist aufgeführt). –
@AndrewRussell Danke für die Korrektur! Es stellt sich heraus, es ist ein sehr beliebter Fehler. : D – Athari