Hva er forskjellen mellom en analog inngang Control & en Digital Input kontroll XNA?

Hva er forskjellen mellom en analog inngang Control & en Digital Input kontroll XNA?


Microsoft utviklet sin XNA programvare for å hjelpe utviklere med å skape videospill for Xbox 360-konsoller og Windows-PCer. XNA håndterer alle aspekter av videospill programmering, blant annet godkjenning av innspill fra kontrolleren som spilleren manipulerer sine styrespaker og knapper. Controller data tar to forskjellige former, analog og digital. Analog data tar på en sammenhengende rekke av verdier; digital informasjon er diskret.

Operasjon

Når du spiller et spill, du bruker både analoge og digitale kontroller. En Xbox 360-kontrolleren, for eksempel, har "pinne" kontrollerer at produksjonen analoge data gjennom en rekke fremtids tilbake og høyre-venstre stillinger. En enkelt stilling består av to tall: en langs høyre-venstre aksen og en annen langs fremtids tilbake aksen. Digitale kontroller, på den annen side, har diskrete tilstander, som for eksempel "on" eller "off." Lamper på kontrolleren utgangs digitale data. For å hjelpe spillutviklere, XNA inkluderer programvare objekter som har flerverdi variabler for analog inngang og spesifikke verdier for digital inngang.

Controls

Xbox-kontrolleren har 10 digitale og fire analoge kontroller. De digitale kontroller omfatter on-off brytere som venstre og høyre triggere, støtfangere og guide-knappen. D-pad er en digital kontroll som har fire diskrete verdier: opp, ned, venstre og høyre. Kontrolleren har to analoge spaken kontrollerer, som hver kan du angi en plassering i en XY planet. Når du klemmer en utløser kontroll, har det en kontinuerlig variabel effekt gjennom sitt utvalg av bevegelse. I tillegg til Xbox, fungerer XNA på PC spill programvare. På PC, digitale kontroller inkluderer tastaturet og museknappene. Hver tast på tastaturet er enten opp eller ned; museknappene er klikket eller ikke. Musens fremover-back og venstre-høyre bevegelser utgjør analoge data.

programmering

For å bruke Xbox-konsollen stokk analog inngang i et program ved hjelp av XNA, angir du spaker objekt. Den har egenskaper "Venstre" og "Right", som identifiserer pinnen, og "X" og "Y" som inneholder de høyre-venstre og forover og bakover akseverdiene, som følgende kode illustrerer:

stickLeftX = currentState.ThumbSticks.Left.X;
stickLeftY = currentState.ThumbSticks.Left.Y;
stickRightX = currentState.ThumbSticks.Right.X;
stickRightY = currentState.ThumbSticks.Right.Y;

Analoge kontroller produsere tallverdier du bruker i programmet. Programmet tester tilstanden til en digital kontroll og utfører handlinger avhengig av utfallet av testen, da dette kodelinje viser:

if (GamePad.GetState (PlayerIndex.One) .Buttons.A == ButtonState.Pressed)

abc = 1;

I dette eksempelet, når spilleren trykker på en "A" -knappen på sin styreenheten, innstiller programmet variabelen "abc" til verdien av en. Merk at "A" er en egenskap av «Knapper» samling objekt.

applikasjoner

I spillet programmer, single-parameter analoge kontrollene avgjøre variable mengder som hastigheten på en racerbil eller kraften bak en baseball banen. Stick kontroller kan du angi en variabel mengde og en retning, slik at du kan bruke stokk for å "styre" et romskip og bestemme farten. D-pad kontroll kan angi en retning, men å være digital, kan ikke angi en hastighet eller en annen variabel parameter. Knappekontrollene, også digitalt, utløse ulike arrangementer, som for eksempel å starte et spill eller vise et kart.