? Microsoft utviklet sin XNA programvare for å hjelpe utviklere å lage videospill for Xbox 360- konsoller og Windows-PCer . XNA håndterer alle aspekter av videospill programmering, herunder akseptere innspill fra kontrolleren som spilleren manipulerer sine styrespaker og knapper . Controller data tar to forskjellige former, analog og digital. Analoge data tar på en sammenhengende rekke av verdier ; digital informasjon er diskret. Operation
Når du spiller et dataspill , bruker du både analoge og digitale kontroller. En Xbox 360-kontrolleren , for eksempel, har " stick "-kontroller som utgang analoge data gjennom en rekke frem -back og høyre - venstre stillinger. En enkelt stilling består av to tall , ett langs høyre -venstre- akse og en annen langs fremtidsrettet tilbake aksen. Digitale kontroller , derimot , har diskrete tilstander , som for eksempel "på" eller "av". Trykknapper på kontrolleren utgang digitale data . For å hjelpe spillutviklere , inkluderer XNA programvare objekter som har multivalue variabler for analog inngang og spesifikke verdier for digital inngang .
Styrer
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 lar deg 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- spillet programvare . På PC , digitale kontroller omfatter tastaturet og museknappene . Hver tast på tastaturet er enten opp eller ned, museknappene er klikket eller ikke. Musens forward -back og venstre-høyre bevegelser utgjør analoge data .
Programming
å bruke Xbox -konsollens stick analog inngang i et program ved hjelp av XNA , du spesifisere thumbsticks objektet . Den har egenskaper " Venstre " og " Right ", som identifiserer pinnen, og "X" og " Y" som inneholder de høyre-venstre og forover og bakover akseverdiene , slik følgende kode illustrerer : en
stickLeftX = currentState.ThumbSticks.Left.X ; stickLeftY = currentState.ThumbSticks.Left.Y ; stickRightX = currentState.ThumbSticks.Right.X ; stickRightY = currentState.ThumbSticks.Right.Y ;
analoge kontroller produsere numerisk verdiene bruker du i programmet. Programmet tester status for en digital kontroll og utfører handlinger avhengig av utfallet av testen, da dette kodelinje viser:
if ( GamePad.GetState ( PlayerIndex.One ) Buttons.A == ButtonState . . trykket) abc = 1;
i dette eksempelet når Player One trykker på "A" -knappen på kontrolleren sin, legger programmet variabelen " abc " til en verdi av én . Merk at " A" er en egenskap av " Knapper " samling objekt.
Applications
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 pinnen til " styre " et romskip og bestemme dens hastighet. D- pad kontroll kan angi en retning , men å være digital, ikke kan sette en hastighet eller annen variabel parameter. Knappen kontroller, også digitale , trigger ulike arrangementer , som for eksempel å starte et spill eller vise et kart .