Hoe te User Interaction in uw HTML5 Game

Het grootste verschil tussen een HTML5 spel en een animatie is interactie met de gebruiker. Als u wilt om het te maken een spel, je de gebruiker nodig hebt om mee te doen. En hier is hoe dat te doen.

Hoe te User Interaction in uw HTML5 Game

Hier is de code:

<! DOCTYPE HTML>
<Html lang = "en-US">
<Head>
<Meta charset = "UTF-8">
<Title> car.html </ title>
<Script type = "text / javascript"
src = "simpleGame.js"> </ script>
<Script type = "text / javascript">
var scène;
var auto;
functie init () {
scène = new Scene ();
auto = new Sprite (scene, "car.png", 50, 30);
car.setAngle (270);
car.setSpeed ​​(0);
scene.start ();
} // End init
functie update () {
scene.clear ();
// Check toetsen

if (keysDown [K_LEFT]) {
car.changeAngleBy (-5);
} // End if

if (keysDown [K_RIGHT]) {
car.changeAngleBy (5);
} // End if

if (keysDown [K_UP]) {
car.changeSpeedBy (1);
} // End if

if (keysDown [K_DOWN]) {
car.changeSpeedBy (-1);
} // End if

car.update ();
} // End-update
</ Script>
</ Head>
<Body onload = "init ()">
<H1> Rijd de auto! </ H1>
</ Body>
</ Html>

Hoe het toetsenbord te gebruiken voor je spel

Een of andere manier de gebruiker nodig heeft om te interageren met de pagina. Het toetsenbord is een van de eenvoudigste invoer-elementen te gebruiken. simpleGame levert een paar manieren om het toetsenbord te controleren, maar de meest krachtige techniek maakt gebruik van een speciale variabele genaamd keysDown. Hier is hoe het werkt:

  • keysDown is een globale array. Deze variabele wordt automatisch gemaakt wanneer u een scène op te bouwen. Het is een array van Booleaanse waarden - dat betekent dat elk element kan alleen true of slechts onwaar.
  • Er is een constante bepaald voor elke toets. Elke toets van het standaard toetsenbord heeft een speciale constante reeds gedefinieerd. Zo K_A vertegenwoordigt de A-toets, en K_B vertegenwoordigt de B toets.
  • keysDown vertelt de status van elke toets. Als het een sleutel die momenteel wordt ingedrukt, keysDown [A] zal de waarde true bevatten. Als de A-toets niet wordt ingedrukt, keysDown [A] zal de waarde valse bevatten.
  • U kunt de huidige status van een willekeurige toets te bepalen. Kijk maar in de keysDown [] array om de huidige status van een willekeurige toets te bepalen.
  • U kunt meerdere toetsen moet hebben tegelijk. Het primaire doel van deze techniek is om voor meerdere toetsen tegelijk worden ingedrukt. In normale gegevensverwerking, is het ongebruikelijk om meerdere toetsen tegelijk hebben. In gaming, is het heel gebruikelijk om meer dan één toets tegelijk drukt, zodat u een mechanisme dat deze verwachting kan steunen nodig.

Hoe het spel sprite bewegen

In wezen is een sprite positie, die wordt bestuurd door X en Y eigenschappen. Als u zich van wiskunde klas, X staat voor horizontale waarden, en Y is voor verticale locatie. De oorsprong (0, 0) is de linkerbovenhoek van het scherm.

X-coördinaten werk net als u zich van de klasse math. Als X-waarden groter worden, de sprite naar rechts beweegt. In computer graphics, Y fungeert een beetje anders dan in de klasse math. Meest weergavehardware scans van boven naar beneden, dus Y 0 bovenaan het scherm toeneemt als je naar beneden beweegt.

Merk op dat de maximale hoogte en breedte worden opgeslagen in variabelen: scene.height en scene.width.

Hoe te User Interaction in uw HTML5 Game

Alle van de verschillende bewegingen methoden zijn echt over het manipuleren van X en Y. U kunt deze waarden handmatig in te stellen (SetPosition (), actief isX (), en Seti ()), of u kunt de waarden te wijzigen (changeXby (), changeYby ()) . Elk van deze methoden werkt meteen, zodat u ze kunt gebruiken om de positie of de beweging van de sprite richten.

Sommige van deze functies lijken op elkaar. Bijvoorbeeld, changeXby () lijkt veel op setChangeX (). Deze functies hebben een subtiel maar belangrijk verschil. De changeXby () functie verandert de waarde van X een keer. Als u wilt dat de verandering door te gaan, je moet blijven oproepen van deze functie.

De setChangeX () functie is krachtiger omdat je het een keer kunt bellen, en het herhaaldelijk verandert x met welke waarde u bepalen tot je setChangeX opnieuw te bellen ().

Voor de meeste sprites, je echt wilt gewoon geven de sprite een hoek en een snelheid, en laat het gaan. De sprite object heeft precies de methoden die u nodig hebt voor dit gedrag. setAngle () kunt u de richting van de sprite zal gaan bepalen, en setSpeed ​​() kunt u de snelheid om te gaan in die richting te geven. Zoals de meeste bewegingsfuncties, er ook changeAngle () en changeSpeed ​​() methoden.

Hoe de auto in je spel te besturen

De keysDown mechanisme kan worden gecombineerd met de beweging methoden om uw auto te besturen. Hier is de desbetreffende code van update () weer:

functie update () {
scene.clear ();
// Check toetsen

if (keysDown [K_LEFT]) {
car.changeAngleBy (-5);
} // End if

if (keysDown [K_RIGHT]) {
car.changeAngleBy (5);
} // End if

if (keysDown [K_UP]) {
car.changeSpeedBy (1);
} // End if

if (keysDown [K_DOWN]) {
car.changeSpeedBy (-1);
} // End if

car.update ();
} // End-update

De feitelijke codering is vrij eenvoudig te begrijpen:

  1. Duidelijk de scène.

    Zoals gebruikelijk, de eerste bestelling van het bedrijfsleven in de update () functie is om het schoonmaken van de speelkamer. Zorg ervoor dat u het vorige beeld hebt gewist voordat je iets anders doet.
  2. Controleer of er een pijl naar links drukt.

    Gebruik de keysDown mechanisme te bepalen of de linker pijl momenteel gedrukt.
  3. Als de pijl naar links wordt gedrukt, schakelt de auto links.

    Als de gebruiker die momenteel is druk op de pijl naar links, zet u de auto vijf graden tegen de klok in. Met de methode changeAngleBy () om de auto uiterlijk veranderen en de richting hij reist.
  4. Herhaal dit voor de pijl naar rechts.

    De pijl naar rechts cheque is vergelijkbaar, maar deze keer zet de auto vijf graden rechtsom.
  5. Gebruik het pijltje omhoog om te versnellen.

    Als de gebruiker de pijl omhoog drukt, verandert de snelheid van de auto. Gebruik een positieve waarde aan de auto te versnellen. Het zal niet veel voor nodig, want deze code wordt 20 keer per seconde gecontroleerd.
  6. Vertragen van de auto naar beneden met het pijltje naar beneden.

    Gebruik een vergelijkbaar mechanisme voor de pijl naar beneden. Verander de snelheid door een negatieve waarde om het afremmen van de auto. Deze aanpak zorgt voor negatieve waarden, en de auto zal een back-up als je wilt.
  7. Teken de auto in zijn nieuwe positie.

    Het is uiterst belangrijk om te onthouden dat bellen beweging functies van de sprite niet de locatie van de auto te veranderen! Het verandert alleen interne data in het geheugen van het spel. U moet methode van de auto-update () aanroepen om deze veranderingen in actie te zien.

© 2020 Quilcedacarvers.com | Contact us: webmaster# quilcedacarvers.com