? Microsoft udviklet sin XNA software til at bistå udviklere at skabe videospil til Xbox 360 -konsoller og Windows -pc'er. XNA håndterer alle aspekter af videospil programmering, herunder acceptere input fra regulatoren som spilleren manipulerer sine joysticks og knapper. Controller data tager to forskellige former, analog og digital. Analoge data tager på en kontinuerlig række af værdier , digital information er diskrete. Operation
Som du spiller et videospil , du bruger både analoge og digitale kontrol. En Xbox 360- controller, for eksempel, har " stick" kontrolelementer, output analoge data gennem en række fremad -back og højre-venstre positioner. En enkelt position består af to numre : én langs højre - venstre akse og en anden langs den frem - tilbage akse . Digital kontrol , på den anden side har diskrete tilstande , såsom " on" eller "off ". Trykknapper på reguleringssignalet digitale data. For at hjælpe spiludviklere , XNA inkluderer software objekter, der har multivalue variabler for analog indgang og særlige værdier for digital indgang.
Controls
Xbox controlleren har 10 digitale og fire analoge kontrol. De digitale objekter omfatter on-off kontakter såsom venstre og højre udløser , kofangere og knappen Guide . D- pad er en digital styring , der har fire diskrete værdier : Op, ned , venstre og højre . Controlleren har to analoge stick kontrol, som hver kan du angive en placering i et XY-planet. Når man presser en udløser kontrol , det har en trinløs effekt gennem sin vifte af bevægelse. Ud over Xbox, arbejder XNA på PC spil software . På PC'en omfatter digitale kontroller tastaturet og museknapper . Hver tast på tastaturet er enten op eller ned , museknapper er klikket eller ej. Musens frem -back og venstre-højre bevægelser udgør analoge data .
Programmering
For at bruge Xbox konsollens stick analog indgang i et program ved hjælp af XNA , du angive ThumbSticks objekt. Det har de egenskaber " venstre" og "Right ", som identificerer stick, og "X" og "Y" , der indeholder højre -venstre og frem - tilbage akseværdier , som den følgende kode illustrerer : Hej
stickLeftX = currentState.ThumbSticks.Left.X , stickLeftY = currentState.ThumbSticks.Left.Y , stickRightX = currentState.ThumbSticks.Right.X , stickRightY = currentState.ThumbSticks.Right.Y ,
Analoge kontrol producerer numerisk værdier, som du bruger i dit program. Dit program tester tilstanden for et digitalt kontrol og udfører handlinger, afhængigt af resultatet af testen , da denne linje kode viser:
if ( GamePad.GetState ( PlayerIndex.One ) Buttons.A == ButtonState . . Pressede ) abc = 1,
i dette eksempel, når Player One trykker på "A" -knappen på sin controller, at programmet sætter variablen " abc" til værdien af én. Bemærk, at " A" er en egenskab af " knapper " indsamling objekt.
Applications
spil programmer , single -parameter analoge kontroller bestemme varierende mængder såsom hastigheden af en racerbil eller den kraft bag en baseball banen. Stick kontrol lader dig sætte en variabel størrelse og en retning , så du kan bruge stokken , at "styre " et rumfartøj og bestemme dens hastighed . D- pad kontrol kan sætte en retning , men bliver digital , kan ikke indstille en hastighed eller anden variabel parameter. Knappen kontrol, også digital, udløser forskellige arrangementer, som at starte et spil eller vise et kort .