en introduktion til html5 gamepad api -

, en introduktion til html5 gamepad api -,,,,, andel,,,,,,,, 42,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, som html legene begynde gradvis stigning i popularitet, sælgere er begyndt at indføre nogle spændende nye grænseflader til at spille lidt bedre både for os udviklere og vores spillere.et af disse er gamepadapi, som giver dem mulighed for at forbinde deres gode gamle konsol gamepad i din computer og bruge det til browser baseret på spil, og så kører stil.lad os dykke i.,,, indledning: hvad er gamepad api?i en nøddeskal de gamepad api giver dig mulighed for at interagere med din browser ved hjælp af en spilkonsol registeransvarlige, også kendt som en gamepad.det kræver ikke en særlig chauffør eller stik af arbejde, det er så enkelt som at sætte!som en konsol spil snarere end en desktop - spil mig, jeg foretrækker at interagere med spil med en gamepad, og med den kommende stigning i html og javascript baseret på spil, bliver det et meget nyttigt redskab til at lege mere let tilgængeligt for brugerne, gamepad api - ikke er let tilgængelige for offentligheden løsladelse, men vi kan begynde at anvende den selv med foreløbige udgaver af firefox.så før vi blev fanget, vi har brug for et par ting.,,, hvad du skal bruge, som jeg nævnte, gamepad api - ikke er til rådighed for offentliggørelse endnu, så du bliver nødt til at få dig en nat bygge af firefox og sørg for, at du har ildflue tillæg installeret (for fejlretning). også, du ikke kan glemme et gamepad!jeg skal bruge en playstation 3 registeransvarlige for denne forelæsning, men en xbox registeransvarlige er fint.,, natlige - downloads for vinduer, mac og linux, ildflue - downloader, en gamepad - playstation eller xbox registeransvarlige vil gøre en usb - kabler til at forbinde deres styreenhed til din computer, når de har installeret hver nat og tilføjede ildflue, du er klar til at gå., (nb.de bygger af chrom har gamepad api - støtte, men denne lektion er ikke blevet testet mod dem.), trin 1: tilslutning af en gamepad til din browser, lad os begynde med en grundlæggende akter (http: //index.html), leverandører "gamepad. er" a "javascript fil).,, index.html, <!doctype html > < html > < head > < meta - charset = "utf - 8" > < afsnit > introduktion til gamepad api < /afsnit > < /head > < krop > < h1 > gamepad api - < /h1 > < manuskript src = "gamepad. er" > < /manuskript > < /organ > < /html >, tilslutning af en gamepad er opdaget med en simpel javascript begivenhed til at lytte, hvis fyret kaldes "mozgamepadconnected".så den første ting, vi skal gøre, er at tilføje en begivenhed til at lytte til vinduet for at afsløre det. jeg er også tilføjet en callback - funktion, som vil log detaljerne i tilfælde at ildflue er konsol.det er de oplysninger, vi er mest interesserede i, og hvad der rent faktisk vil lade os vide, at vi har knyttet en gamepad succes., funktion gamepadconnected (evt) (konsol. log (evt)} vindue. addeventlistener ('mozgamepadconnected, gamepadconnected), løb din. i hver nat og åbne ildflue er konsol, vi her vil være i stand til at se skovning af tilfælde af vores callback funktion., sørg for at din registeransvarlige er slukket, og ikke forbundet trådløst til en spillekonsol.sæt den i din computer via usb - og magt på den registeransvarlige, se tilfælde logge på konsollen.,,, godt, vi har en gamepad tilkobling til en browser, ingen ekstra plugins eller bilister, der kræves.,, trin 2: ved at afbryde en gamepad, det er lige så vigtigt at vide, om en gamepad er blevet afbrudt, så lad os se på de omstændigheder, mozgamepaddisconnected ". på samme måde som første trin, tilføje en begivenhed til at lytte til den begivenhed, og denne funktion at registrere tilfælde af detaljer.,, funktion gamepaddisconnected (evt) (konsol. log (evt)} vindue. addeventlistener ('mozgamepaddisconnected, gamepaddisconnected), hvis du er gamepad er stadig forbundet, opfriske din side, som du vil se forbundet tilfælde registreres) og derefter fjernes ved at trække det fra din gamepad usb - porten.du burde få en begivenhed log som denne.,,, - nu ved vi da en gamepad har været tilsluttet og usammenhængende, det er nok en god ide at registrere den medlemsstat, inden for en variabel, og vær klar til at spore knap begivenheder.,, var gamepadactive = falske funktion gamepadconnected (evt) (konsol. log (evt); gamepadactive = sandt.} funktion gamepaddisconnected (evt) (konsol. log (evt); gamepadactive = falske} vindue. addeventlistener ('mozgamepadconnected, gamepadconnected); vindue. addeventlistener ('mozgamepaddisconnected, gamepaddisconnected), trin 3: påvisning af tastetryk, tastetryk igen, bruger en begivenhed til at lytte og bør fungere med to begivenheder, mozgamepadbuttondown "og" mozgamepadbuttonup. ", vil jeg foreslå, skovning hele begivenheden fra knap trykker dig selv for at se, hvad der foregår, men de centrale oplysninger, vi har brug for at komme fra dette begivenhed, evt. knap.det er den numeriske id på den knap, som var presset. det bør fungere denne gang tager et andet parameter, en boolean - værdi til at prøve, hvis knap var presset eller frigivet.vi sætter det os i den callback funktioner i tilfælde lyttere., funktion buttonpressed (evt, presset) (konsol. log (evt.button, presset)} vindue. addeventlistener ("mozgamepadbuttondown" funktion (evt) (buttonpressed (evt, sande)}); vindue. addeventlistener ("mozgamepadbuttonup" funktion (evt) (buttonpressed (evt, falske)}); dette bør nu output id på knapperne, der er presset, og om de blev presset eller frigivet (tilfældet for knap, falske for knap).,,, så vi kan skabe et system med alle playstation 3 knapper i.The indices of the array will map to the IDs used on this gamepad, with the values being the name of the button., var gamepadActive = false, ps3Buttons = new Array(); ps3Buttons[12] = 'triangle', ps3Buttons[15] = 'square', ps3Buttons[14] = 'cross', ps3Buttons[13] = 'circle', ps3Buttons[4] = 'up', ps3Buttons[7] = 'left', ps3Buttons[6] = 'down', ps3Buttons[5] = 'right', ps3Buttons[10] = 'L1', ps3Buttons[8] = 'L2', ps3Buttons[11] = 'R1', ps3Buttons[9] = 'R2', ps3Buttons[1] = 'L3', ps3Buttons[2] = 'R3', ps3Buttons[16] = 'PS', ps3Buttons[0] = 'select', ps3Buttons[3] = 'start';,If you're using a different controller, take the time to figure out which index goes with which button, and store that- i et lignende system. hvis vi nu ændre, buttonpressed(), funktion lige så let, som vi let kan se, hvilken knap på den registeransvarlige er trykket, funktion buttonpressed (evt, presset) (konsol. log (ps3buttons [evt. knap] + blev presset)}, giv det en gå!at trykke på knapper på din tilsynsførende bør nu log navn knapper er presset.det vil være lettere at forstå end "knap 5" (som i mit tilfælde er på d-pad).,, trin 4: påvisning af akse begivenheder, afsløre akse begivenheder er dybest set at holde styr på, hvor venstre og højre analog pinde på gamepad anbringes ved hjælp af "mozgamepadaxismove, tilføje" begivenhed. de nye omstændigheder kontakt, og denne funktion., funktion moveanalogsticks (evt) (konsol. log (evt.axis, evt. værdi);} vindue. addeventlistener ("mozgamepadaxismove", moveanalogsticks); det er, hvad vi får - forvirrende, ikke?,,, - - er der kun ét tilfælde fyret af både analoge pinde, hver begivenhed, giver os en af de fire mulige akse og en værdi på mellem 1,0 og + 1,0.akse 0 og 1 tilhører venstre analog pind og akse 2 og 3 tilhører højre.,,, i diagrammet ovenfor, vil du se akse, 0 og 2, svarer til x - aksen, og 1 og 3 i overensstemmelse med y - aksen.ved hjælp af både x - og y - akse for hver enkelt analog holder, kan du finde ud af, hvilken vej de analoge holde står over for.på forskellige gamepads, du kan have andre akser.for eksempel, skulderen udløser på en xbox registeransvarlige også er analoge.,, løntrin 5: at føre det ud i praksis, som dækker alle de begivenheder, som vi for øjeblikket kan tage fra en gamepad, så lad os få det, vi har lært i praksis. jeg ønsker ikke at gå for dybt ind i spillet udvikling af ting, som vi skal fokusere på, hvad vi anvender til kontrol af legene.en af de vigtigste ting, til at se på, er, at kontrol ordninger.da ikke alle vil have en gamepad klar til side, er vi nødt til at sikre, at vi yder kontrol for både tastatur og gamepad.,, trin 6: oprettelse af din lærred, for at få en lille demo op at køre, skabe, lærred, element i deres html fil med en id "spil", og bredde 600 og højde til 540.som de ved, lærred element er almindeligvis anvendes til at gøre html spil. du vil kopiere "skib. men heller ikke dér er menneskene sikre" og "rum. jpg" billeder fra kilden downloade til deres arbejde folder, for det er, hvad vi vil gøre på lærredet.alternativt kan finde nogle billeder af din egen have en at lege med., <!doctype html> <html> <head> <meta charset="utf-8"> <title>Introduction to the Gamepad API</title> </head> <body> <h1>Gamepad API</h1> <canvas id="game" width="600" height="540"></canvas> <script src="gamepad.js"></script> </body> </html>, , Step 7: Creating the Game Loop,Now that the ,canvas, element is in our DOM, we want to create a game loop to render our game.,I'm using a shim for "requestAnimationFrame" by Paul Irish that will be the base for our loop. næste gang, vi får den 2d rammerne af, lærred, som vi kan bruge til at trække på og skabe to nye image objekter, for baggrunden og for vores rumskib. //http://paulirish.com/2011/requestanimationframe-for-smart-animating/window.requestanimframe = (function() {tilbage window.requestanimationframe



Previous:
Next Page: