, zal het spel training: meer mobiele vijanden,,,,,,,,,,,, deel 3,,,,,,, het netwerk van delen van maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen.,, in deze reeks, in het eerste deel van je geleerd om gebruik te maken van de fundamentele elementen van het canvas javascript, het bouwen van een zeer eenvoudige zal het spel.Maar het is te simpel... Een gemeenschappelijke vijand beweegt niet eens... Er is geen uitdaging.In deze handleiding zal je leren hoe te komen tot een eindeloze vijand, zal uit de Top van het scherm.,,, bijscholing, in het eerste deel van de handleiding wordt ons veel begrippen: in beeld schermhttp: //europa.eu.int en javascript. De interactie tussen de opsporing van kleine rat gedrag, en, als Die verklaring.Je kunt downloaden bron hier als je wilt duiken in dit deel van het voorstel voor de les, maar ik lees alle delen van ons spel: //europa.eu.int /comm /een het element bevat, dat zal leiden tot een javascript functie, drawavatar (), als het klikt.Deze functie is in een afzonderlijk document, en het belangrijkste. Js, doe twee dingen:,, het creëren van een avatar.png, en op de grond, en het opzetten van een luisteraar, die een andere functie, bekend als de redrawavatar (), als de muis aan het canvas.,,, redrawavatar (), en ook van binnen, heer. Js; in tegenstelling tot, drawavatar (), het aanvaarden van een parameter, bekend als de gebeurtenissen,,, die automatisch wordt doorgegeven aan de luisteraars.Deze gebeurtenissen, met inbegrip van de informatie over de locatie van de muis.Functie heeft vier dingen:,, duidelijk een doek, foto 's, avatar.png, op de grond, in plaats van een muis, die, enemy.png, op de grond, op een bepaalde locatie, controleer de avatar en de vijand is van elkaar overlappende dicht genoeg is, en dat is, als de signalering () en Zo, snap je?Als niet, probeer de warming - up uitdaging, de uitdaging van de opwarming van de aarde, als het zijn tijd is, omdat je het leest eerste deel van de serie (of als je gewoon je begrijpen wat er gaande is), een naar deze kleine oefening.Ze is volledig facultatief en praktische opleiding en gescheiden, dus ik stel voor dat je een kopie in de projecten werken, in plaats van de oorspronkelijke.Je kan de voltooiing van het eerste deel van de reeks van alle informatie die praktijken, die gemakkelijk te onthouden, drawimage (), als een aardappel postzegels.Het scheppen van een volledig gebruik van de vijand een ring rond je canvas, zoals dit: als je moe bent van het kopiëren en plakken alle verklaringen, voel je vrij, om het een kleine ring - je kan een aanpassing van het doek, zoveel als je wilt, de media, de "je hebt de vijand" waarschuwing Als avatar op de rand van de ring.(dit punt moet worden getest, herinner je je het kan druk enter, je hoeft niet klik.), de inspanningen, als je probeert je muis van externe. Naar binnen, dit is echt heel vervelend, als je al op het canvas.Het kan worden verplaatst naar het doek en niet het alarm af, maar eenmaal binnen, zodat het alarm aan als avatar ring vijanden, om de vijand te bewegen, we zullen de vijand uit de Top van het scherm af.Nu, zullen we ons concentreren op het opsporen van mobiele in plaats van botsingen "opmerkingen", dus de lijn, redrawenemy () en het beheer van conflicten, zoals dit: als mouseevent.offsetx > ///////(220 & & mouseevent.offsetx < 280 & & mouseevent.offsety > 117 & mouseevent.offsety && lt; 180) {///////waarschuwing ("Je raakt de vijand!"); ///////}, onthoud: twee sneden de browser "negeer hier vanaf het begin van dit alles.Voordat we met dit te creëren, toelichting, - kleine herinnert ons eraan dat bepaalde delen van de code... Maar hier, gebruiken we het voor een ander doel: voorkomen dat bepaalde codes van de operatie niet volledig wissen.Dit geeft ons de kans om de code op dit moment de vijand terug, schilderen, in dezelfde positie als we de muis:, gamecanvas. GetContext ("D"). Drawimage (enemyimage, 250150), weet je het nog, (), wiskunde. Het eerste deel van deze handleiding van de functie?De terugkeer van een willekeurig getal tussen 0 en 1 300 (doek, vermenigvuldigd met de hoogte) geeft ons een cijfer tussen 0 en 300.Als we de vijand op 0 en 300 elke muis willekeurige coördinatie tussen wat er gebeurt?Laten we proberen; amendementen zoals:, gamecanvas. GetContext ("D"). Drawimage (enemyimage, 250, wiskunde. () × 300);, probeer hier.Het ziet eruit als de vijand is, op een willekeurig, maar alleen als een muis.Natuurlijk niet, in feite, mobiele; het "vervoer" van een positie op de volgende, maar dat een beweging die de illusie, als we in één richting, maar een betere indruk.We kunnen door de bepaling van de coördinaten van de vijand zal er alleen maar toe, niet verminderen. De volgende codes, de functie redrawavatar (gebeurtenissen) {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld (); de VAR - enemyimage = nieuwe beeld (); de VAR - enemyy = 0; avatarimage.src = "IMG avatar Papoea - Nieuw - Guinea"; ". Enemyimage.src = IMG /vijand. Papoea - Nieuw - Guinea" geschrapt; gamecanvas.width = 400; ///////doek gamecanvas inhoud. GetContext ("D"). Drawimage (avatarimage, mouseevent.offsetx, MouseEvent. Offsety); enemyy = enemyy + 1; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, 11 en enemyy + 1 is, enzovoort. GameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, als enemyy); ///////(mouseevent.offsetx > 220 & & mouseevent.offsetx < 280 & & mouseevent.offsety > 117 &; & mouseevent.offsety < (180) {///////waarschuwing "Je raakt de vijand!")//////////////}, kijk eens wat ik aan het doen ben?Mijn waarde, enemyy, 0, in de hoogste functies en de toevoeging van een foto voor de vijand.Dus, mijn doel is om de vijand te verhogen van de y - positie een pixel per keer, redrawavatar (), exploitatie, maar in mijn gebrek aan logica.Rij, var enemyy = 0;, opnieuw, enemyy, variabelen, 0, elke keer, redrawavatar (), werking, wat betekent dat het altijd in een schilderij te coördineren, 1, (omdat het in lijn nr. 12 te verhogen), we moeten alleen worden vastgesteld als de 0, zodra de.Als we dat doen, drawenemy (),???????Immers, deze functie slechts één functie: de drawavatar () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld (); de VAR - enemyy = 0; avatarimage.src = "foto 's /avatar. Papoea - Nieuw - Guinea"; gameCanvas. GetContext ("D"). Drawimage (avatarimage, wiskunde (*). 100, wiskunde. () × 100); gameCanvas. AddEventListener ("muis", redrawavatar);} functie redrawavatar (gebeurtenissen) {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld (); de VAR - enemyimage = nieuwe beeld (avatarimage.src = "); de foto' s /avatar. Enemyimage.src =" Papoea - Nieuw - Guinea "; IMG /vijand. Papoea - Nieuw - Guinea"; gamecanvas.width = 400; ///////gamecanvas schrappen van de inhoud van het doek. GetContext ("D"). Drawimage (avatarimage, gebeurtenissen.Offsetx, MouseEvent. Offsety); enemyy = enemyy + 1; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, 11 en enemyy + 1 is, enzovoort. GameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, als enemyy); ///////(mouseevent.offsetx > 220 & & mouseevent.offsetx < 280 & & mouseevent.offsety > 117 &; & mouseevent.offsety < (180) {///////waarschuwing "Je raakt de vijand!")//////////////}}, probeer hier.Helaas, dit niet werken.Het probleem is een concept dat bereik.Als je met een variabele, het sleutelwoord voor de definitie van een variabele in de functie, de variabele zal alleen toegang tot de in deze functie.Dit betekent dat we, redrawavatar (), geen toegang tot dezelfde functie, enemyy, de definitie van de variabelen, drawavatar (),., maar als we een variabele definitie van alle functies, het kan door middel van een toegang.Dus, probeer dit eens: var enemyy = 0; de functionele drawavatar () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld (); avatarimage.src = "foto 's /avatar. Papoea - Nieuw - Guinea"; gameCanvas. GetContext ("D"). Drawimage (avatarimage, wiskunde. () 100 (), wiskunde. * * * * * * * 100); gameCanvas. AddEventListener ("muis", redrawavatar);} functie redrawavatar (gebeurtenissen) {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld (); de VAR - enemyimage = nieuwe beeld (); avatarimage.src = "foto' s van Papoea - Nieuw - Guinea /avatar."; enemyimage.src = "IMG /vijand. Papoea - Nieuw - Guinea" geschrapt; gamecanvas.width = 400; ///////doek gamecanvas inhoud. GetContext ("D"). Drawimage (avatarimage, mouseevent.offsetx, MouseEvent. Offsety); enemyy = enemyy + 1; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, 11 en enemyy + 1 is, enzovoort. GameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, als enemyy); ///////(mouseevent.offsetx > 220 & & mouseevent.offsetx < 280 & & mouseevent.offsety > 117 &; & mouseevent.offsety < (180) {///////waarschuwing "Je raakt de vijand!")//////////////}}, probeer hier.- de vijand, het werk van de dia 's van het scherm.Maar het zal alleen in onze muis.Dit is een leuk spel, maar het is niet mijn doel, zodat de vijand z 'n mobiele, het beter zou zijn, als de vijand verscheen de overeenkomst, het betekent, het verkeer of de muis de muis.We kunnen door de beweging van de trekker ("teleportations") op basis van de tijd in plaats van een muis, we kunnen door het gebruik van, setinterval (), functioneren.Het werkt zo: (naam, functie, setinterval); hier is het, de naam van de functie, willen we rennen weer, een functie van de tijd, is de naam, veel tijd (msec) We willen met elkaar bekend als functie van, laten we eens kijken of we dit ziet:. Enemyy = 0; de functionele, drawavatar () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld (); avatarimage.src = "foto 's /avatar. Papoea - Nieuw - Guinea"; gameCanvas. GetContext ("D"). Drawimage (avatarimage, wiskunde, wiskunde. () () × 100. * 100); gamecanvas. AddEventListener ("muis", redrawavatar setinterval (); redrawenemy, 1000);} functie redrawavatar (gebeurtenissen) {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var de avatar.Het nieuwe beeld = beeld (); avatarimage.src = "foto 's /avatar. Papoea - Nieuw - Guinea"; gamecanvas.width = 400; ///////gamecanvas schrappen van de inhoud van het doek. GetContext ("D"). Drawimage (avatarimage, mouseevent.offsetx, MouseEvent. Offsety); ///////als (mouseevent.offsetx > 220 & & mouseevent.offsetx < 2,8% AMP%; & mouseevent.offsety > 117 & & mouseevent.offsety < 180) {///////waarschuwing ("Je raakt de vijand!")De functie van redrawenemy; ///////}} () {VAR enemyimage = nieuwe beeld (); enemyimage.src = "IMG /vijand. Papoea - Nieuw - Guinea"; enemyy = enemyy + 1; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, 11 en enemyy + 1 is, enzovoort. GameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, enemyy);}, ik heb alle codes, mobiele en het aantrekken van nieuwe functies van de vijand, redrawenemy (), handel, ik noem het per 1000 MW (het gebruik van een), setinterval () (), drawavatar, telefoon.(met gebruik van een luisteraar, als er geen automatisch worden aangenomen, redrawenemy (), als we het noemen, setinterval (,, probeer hier.).Klik op het doek, en dan laat je de muis, er zijn een paar dingen, dat is de verkeerde vijand achterlaten:,, - dit is omdat het doek niet schoon, redrawenemy (). De vijand langzaam of duizend milliseconden lang, als avatar. Verplaatst, de vijand te verdwijnen, en dat is omdat de de vijand alleen aangetrokken, redrawenemy () (), redrawavatar;,, canvas opruimen en de avatar is geraadpleegd, maar niet de vijand.,, laten we deze keer.Ten eerste, we moeten duidelijk op het doek, redrawenemy () ():,, de functie van redrawenemy {VAR enemyimage = nieuwe beeld (); enemyimage.src = "IMG /vijand. Papoea - Nieuw - Guinea" geschrapt; gamecanvas.width = 400; ///////enemyy enemyy + 1 = het doek van de inhoud; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, 11 en enemyy + 1 is, enzovoort. GameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, enemyy);}, probeer hier.Nu, uh, hoofd verdwijnt, de conclusies van de vijand, en vice versa.Natuurlijk, dit is belangrijk. We weten het op de grond, redrawenemy (),,, maar nooit foto 's redrawavatar (), twee kanten van de avatar tegelijkertijd, als we, verplaatst, redrawenemy (), de vijand, door middel van toegevoegde waarde, enemyy, - maar in feite, de goeroe, het In de redrawavatar (),???????Geen werk, enemyy = 0; de functionele drawavatar () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld (); avatarimage.src = "foto 's /avatar. Papoea - Nieuw - Guinea"; gameCanvas. GetContext ("D"). Drawimage (avatarimage, wiskunde, wiskunde. () × 100. (de) × 100); gameCanvas. AddEventListener ("muis", redrawavatar setinterval (); redrawenemy, 1000);} functie redrawavatar (gebeurtenissen) {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld (); de VAR - enemyimage = nieuwe beeld (IMG enemyimage.src = "); Papoea - Nieuw - Guinea; avatarimage.src /vijand." = "foto' s /hoofd van Papoea - Nieuw - Guinea" geschrapt; gamecanvas.width = 400; ///////doek gamecanvas inhoud. GetContext ("de tweede dimensie"). Drawimage (avatarimage, mouseevent.offsetX - incident. Offsety); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, als enemyy); ///////(mouseevent.offsetx > 220 & & mouseevent.offsetx < 280 & & mouseevent.offsety > 117 & & mouseevent.offsety < 180) {"je waarschuwing (///////raakt de vijand!"); ///////redrawenemy () {}) de functie van enemyy = enemyy + 1; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, dan enemyy + 1 11, enz.}, probeer hier.Het is een beetje als,, maar we terug in de problemen, als je de muis de vijand zou bewegen.Echter, dit is een beetje anders. Om ervoor te zorgen dat dit een beetje duidelijker, kunnen we de vijand te verhogen door vermindering van de snelheid van de snelheid van de vijand.Het is 25 (1 /40 seconden, in de zin van redrawenemy (), die 40 keer per seconde, setinterval (): redrawenemy, 25);, probeer hier.En de vroege versie, en alleen als de muis te bewegen.Gezien de verschillende?In een nieuwe, van de positie van de vijand te veranderen, maar het is "achter de scène", praktische, beeld, alleen bij de muis, de vijand van de mobiele.Als je een seconde wachten op de muis, de vijand beeld springen naar het scherm om de werkelijke positie van de werkelijke positie, de vijand van de vijand, de locatie, de locatie van het beeld, zodat we onze problemen op te lossen.Ik ben(de), redrawenemy, eigenlijk niet aan de vijand.Laten we dopen ze iets makkelijker te volgen, drawavatar (.,), liep, toen we begonnen met het spel, die alles, laten we het te hernoemen naar, setupgame () (), en redrawavatar, loopt, de muis, dus zullen we het noemen, handlemousemovement () (), en redrawenemy, is een seconde; alsof er een tikkende klok tikt 40 keer per activeren.Dus, laten we het te hernoemen naar, handletick (), en vergeet niet om de functie van alle verwijzingen naar de,, in het geval van luisteraars en, setinterval ().Hier is wat het lijkt:,, var enemyy = 0; de functionele setupgame () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld (); avatarimage.src = "foto 's /avatar. Papoea - Nieuw - Guinea"; gameCanvas. GetContext ("D"). Drawimage (avatarimage, wiskunde, wiskunde () × 100.. () × 100); gameCanvas. AddEventListener ("muis", handlemousemovement setinterval (); handletick, 25);} functie handlemousemovement (gebeurtenissen) {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld var (); enemyimage = nieuwe beeld (); enemyimage.src = "IMG /vijand. Papoea - Nieuw - Guinea"; avatarimage.src = "foto' s /avatar. Papoea - Nieuw - Guinea"; gamecanvas.width = 400; ///////gamecanvas schrappen van de inhoud van het doek. GetContext ("D" d).Rawimage (avatarimage, mouseevent.offsetx, MouseEvent. Offsety); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, als enemyy); ///////(mouseevent.offsetx > 220 & & mouseevent.offsetx < 280 & & mouseevent.offsety > 117 &; & mouseevent.offsety < 180) (//waarschuwing ("Je raakt de vijand!"); ///////handletick () {}) de functie van enemyy = enemyy + 1; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, dan enemyy + 1 11, enz.}, je moet ook de: //europa.eu.int /comm /, zodat het doek van de onclick eigenschap,,, "setupgame ();" in plaats van "drawavatar ();", ben ik van mening dat dit maakt het makkelijker om te zien wat er gaat gebeuren als de muis:,,, we hebben de locatie van de foto, foto 's in zijn huidige positie, en het in kaart brengen van de vijand in zijn huidige positie, als de klok tikt, we hebben de vijand van de positie en de rol van de vijand, we moeten op dezelfde tijd (dat wil zeggen in dezelfde functie), als we alleen maar de vijand bij de muis, dan de vijand de actie is niet goed. Dit maakt het makkelijker om te zien, maar ook een mogelijke oplossing:,, bij de muis, de mobiele hoofd positie in de klok tikt, wordenMijn positie in de huidige positie van de avatar, schilderen, en in de huidige positie van de vijand 's, laten we om dit uit te voeren.Alles wat we moeten doen is de code, handlemousemovement () (), handletick,,, hè?Dus, var enemyy = 0; de functionele setupgame () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld (); avatarimage.src = "foto 's /avatar. Papoea - Nieuw - Guinea"; gameCanvas. GetContext ("D"). Drawimage (avatarimage, * * * * * * * * * * * * * * de wiskunde. () 100 100 (), wiskunde.); gameCanvas. AddEventListener ("muis", handlemousemovement setinterval (); handletick, 25); handlemousemovement (gebeurtenissen) {} functie als (mouseevent.offsetx > ///////220 & & mouseevent.offsetx < 280 & & mouseevent.offsety > 117 & & mouseevent.offsety < (180); ///////waarschuwing ("Je raakt de vijand!")De functie van handletick; ///////}} () {VAR avatarimage = nieuwe beeld (); de VAR - enemyimage = nieuwe beeld (); enemyy = enemyy + 1; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, dan is enemyy + 1, 11, enemyimage.src = "IMG /vijand. Papoea - Nieuw - Guinea"; avatarimage.src = "foto 's /avatar. Papoea - Nieuw - Guinea"; gamecanvas.width = 400; ///////gamecanvas schrappen van de inhoud van het doek. GetContext ("D"). Drawimage (avatarimage, mouseevent.offsetx, offsety gebeurtenissen gameCanvas.);. GetContext ("D"). Drawimage (enemyimage, 250, enemyy);}, nou, dat is niet goed.We hebben niets, handlemousemovement ().Maar dat is omdat we geen foto 's van de locatie en de avatar zou de werkelijke positie als we scheiden, en vijanden hebben.Dus laten we dit doen: var enemyy = 0; var avatarx = 0; var avatary = 0; de functionele setupgame () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld (); avatarimage.src = "foto 's /avatar. Papoea - Nieuw - Guinea"; gameCanvas getContext ("D". Drawimage (). Avatarimage, wiskunde, wiskunde. () × 100 × 100). (); gameCanvas. AddEventListener ("muis", handlemousemovement setinterval (); handletick, 25); de functie van handlemousemovement (gebeurtenissen) {} avatarx = mouseevent.offsetx; avatary = mouseevent.offsety; ///////als (mouseevent.offsetx > 220 & & mouseevent.offsetx < 280 & & mouseevent.offsety > 117 & & mouseevent.offsety < 180) {///////waarschuwing ("Je raakt de vijand!")De functie van handletick; ///////}} () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); var avatarimage = nieuwe beeld (); de VAR - enemyimage = nieuwe beeld (); enemyy = enemyy + 1; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, dan is enemyy + 1, 11, enemyimage.src = "IMG /vijand. Papoea - Nieuw - Guinea"; avatarimage.src = "foto 's /avatar. Papoea - Nieuw - Guinea"; gamecanvas.width = 400; ///////gamecanvas schrappen van de inhoud van het doek. GetContext ("D"). Drawimage (avatarimage, avatarx, avatary); getContext gamecanvas. (de "D"). Drawimage (enemyimage, 250, enemyy);}, we moeten het creëren van nieuwe variabelen voor de opslag van de X - en y-positions avatar, en een functie in de definities van variabelen, dus We kunnen overal toegang tot hun, probeer hier.Het werkt!Als het een beetje droog, dan sluit bepaalde etiketten of hervatting van de browser; ik werk) hebben wij nu een mobiele vijanden.Het duurde een tijdje te gaan, maar de echte code, we zijn aan het einde gekomen van niet al te ingewikkeld, en ik hoop dat je vindt, als je de uitdaging wil, proberen om opnieuw de botsing alarm.Als je in de problemen zit, maak je geen zorgen, we zullen op dit punt van de gemiddelde tijd, zullen we een probleem ziet, kan je ook niet naar... Het beeld van de server, zoals ik gezegd dat een eerste deel van de serie, als je je spel in een netwerk de server, omdat het niet goed is, zelfs als hun werk van je computer, van jouw computer.Ik werk voor de demonstratie van, want ik heb een kleine wijziging van de code; hier is het spel te lopen zonder code:, probeer hier, hoe is het?Oké, dit is de beelden te doen.Elke keer als de klok tikt, creëren we een nieuwe beelden, die de bron tot een echte foto 's.Als de foto 's op je harde schijf, maar als het op het internet, de pagina kan proberen de beelden downloaden, en dan op de tekening, voordat we kunnen speculeren op een oplossing, in het kader van die we hebben gedaan in deze handleiding, tot nu toe, en dit is niet de vraag.Als de vijand van de positie en de avatar, kunnen we de vijand van de functie van hoofd van de buiten beeld, dan gebruiken ze steeds weer, zonder hun definitie, handletick () die hun waarde, elk van de functie van de tijd. En kijk: var enemyy = 0; var avatarx = 0; var avatary = 0; var avatarimage; var enemyimage; de functionele setupgame () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); avatarimage = nieuwe beeld (); enemyimage = nieuwe beeld (); enemyimage.src = "IMG /vijand. Papoea - Nieuw - Guinea"; avatarimage.src = "foto 's /avatar. Papoea - Nieuw - Guinea"; gameCanvas getContext (. "D"). Drawimage (avatarimage, wiskunde, wiskunde. () × 100. () × 100); gameCanvas. AddEventListener ("muis", handlemousemovement setinterval ();Handletick, 25); de functie van handlemousemovement (gebeurtenissen) {} avatarx = mouseevent.offsetx; avatary = mouseevent.offsety; ///////als (mouseevent.offsetx > 220 & & mouseevent.offsetx < 280 & & mouseevent.offsety > 117 & & mouseevent.offsety < 180) {//. ("Je raakt de vijand!")De functie van handletick; ///////}} () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); enemyy = enemyy + 1; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, dan is enemyy + 1, 11, gamecanvas.width = 400; ///////gamecanvas schrappen van de inhoud van het doek. GetContext ("D"). Drawimage (avatarimage, avatarx, avatary); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, enemyy);}, probeer hier niet knipperen!Als je het wilt weten: we kunnen de functie van de mobiele lijnen is er een 9 - 12.Ik koos ze, setupgame (), omdat het lijkt alsof ze meer is, uh, het spel is, om een vijand, is eigenlijk heel eenvoudig om een vijand op het scherm.Weet je nog, het beeld als aardappelen postzegels; dit betekent dat niets kan ons tegenhouden van het aantrekken van de vijand beeld op het doek in twee verschillende plaatsen op dezelfde schaal: handletick () {var, de functie van gamecanvas = documenten. GetElementById ("gameCanvas"); enemyy = enemyy + 1; ///////enemyy door een verhoging van de variabelen pixel.Als enemyy is 10, dan is enemyy + 1, 11, gamecanvas.width = 400; ///////gamecanvas schrappen van de inhoud van het doek. GetContext ("D"). Drawimage (avatarimage, avatarx, avatary); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, enemyy); het getContext (spel. "D"). Drawimage (enemyimage, 100, enemyy);},,, klik eens proberen.Dat is eenvoudig.Je zet ze op de hoogte van de verschillende functies, zoals:, handletick () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); enemyy = enemyy + 1; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, dan is enemyy + 1, 11, gamecanvas.width = 400; ///////gamecanvas schrappen van de inhoud van het doek. GetContext ("D"). Drawimage (avatarimage, avatarx, avatary); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, enemyy); het getContext (spel. "D"). Drawimage (enemyimage enemyy, 100, 50);},,, klik eens proberen.Hoewel dit een beetje rommelig.Integendeel, wat is het creëren van een, enemyy2, veranderen?Geen werk, enemyy = 0; var enemyy2 = 50; var avatarx = 0; var avatary = 0; var avatarimage; var enemyimage; ///////...De functie van handletick () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); enemyy = enemyy + 1; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, 11 en enemyy + 1 is, enz. Enemyy2 = enemyy2 + 1; gamecanvas.width = 400; ///////gamecanvas schrappen van de inhoud van het doek. GetContext ("D"). Drawimage (avatarimage, avatarx, avatary); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, enemyy); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 100, enemyy2);}, nu kun je het aanvankelijke standpunt, enemyy,, enemyy2, wat je maar wilt, zonder wijziging van de code, handletick (), dat voor vijf van de vijand,.,, uit te breiden tot wat we al gedaan. Er zijn vijf vijanden, zijn er verschillende vertrekpunten.Kijk naar mijn code, als je het nodig hebt.Hier is een tip, je hoeft alleen de code van de interne en externe, van handletick (), de functie - zonder aanraken, setupgame (), of, handlemousemovement (), var., enemyy = 0; var enemyy2 = 50; var enemyy3 = 75; var enemyy4 = 120; var enemyy5 = - 250; var avatarx = 0; var avatary = 0; var avatarimage; var enemyimage; ///////...De functie van handletick () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); enemyy = enemyy + 1; ///////enemyy variabelen te verhogen door een pixel.Als enemyy is 10, 11 en enemyy + 1 is, enz. Enemyy2 = enemyy2 + 1 + 1 = enemyy3; enemyy3; enemyy4 = enemyy4 + 1 + 1 = enemyy5; enemyy5; gamecanvas.width = 400; ///////gamecanvas schrappen van de inhoud van het doek. GetContext ("D"). Drawimage (avatarimage, avatarx, avatary); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, enemyy); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 130, enemyy2); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 300, enemyy3); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 50, enemyy4); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 190, enemyy5);},,, klik eens proberen.De tien van de vijand, oh, dit is te saai, hè?Hou alle vijanden voor iedereen, en verhoging van de drie lijnen van de code.WOW, mag ik u voorstellen, de generator.Kijk eens: var enemyypositions = [0], 50, 75120250; var avatarx = 0; var avatary = 0; var avatarimage; var enemyimage; ///////...De functie van handletick () {VAR gamecanvas = documenten. GetElementById ("gameCanvas"); enemyypositions [0] = [0] + 1 enemyypositions; enemyypositions [1] = enemyypositions [1] + 1; enemyypositions [2] = enemyypositions [2] + 1; enemyypositions [3] = enemyypositions [3] + 1 [4] = enemyypositions; enemyypositions [4] + 1; gamecanvas.width = 400; ///////gamecanvas schrappen van de inhoud van het doek. GetContext ("D"). Drawimage (avatarimage, avatarx, avatary); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 250, enemyypositions [0]); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 130, enemyypositions [1]); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 300, enemyypositions [2]); gameCanvas. GetContext ("D" enemyimage drawimage (),50, enemyypositions [3]); gameCanvas. GetContext ("D"). Drawimage (enemyimage, 190, enemyypositions [4]);}, dat geeft ons ook de resultaten voor alle vijanden, maar:,, de y - positie is in een enkele lijn, definities, we hebben een locatie: een eenvoudige methode:, enemyyposition [...] nummer 1 verdachte,,,,, de aard van de variabelen worden genoemd, installatie, de lijst van de voor waarden; dit houdt (of andere variabelen), en laten we geen projecten van de lijst met een nummer.Opmerkelijk is dat het eerste element van de generator is 0, en de tweede is de waarde van nr. 1, wacht, we noemen het "nul" - basis, het verkeer, en kijk nu eens naar dit deel van de code, zie: enemyypositions [0] = [0] + 1 enemyypositions; enemyypositions [1] = enemyypositions [1] + 1; enemyypositions [2] = enemyypositions [2] + 1; enemyypositions [3] = enemyypositions [3] + 1; enemyypositions [4] = enemyypositions [4] + 1; dat we hetzelfde doen, en opnieuw en opnieuw, in de reeks van de verschillende projecten.De code is hetzelfde als de anderen, afgezien van de cijfers tussen haakjes te veranderen.Dat is goed, want we hebben code kunnen schrijven voor de "hetzelfde doen vijf keer, maar een nummer '.Bijvoorbeeld, de VAR - currentnumber = 0; en (currentnumber < 5) (signalering (currentnumber); currentnumber = currentnumber + 1;}, als je de J 's dossier (, setupgame (), bijvoorbeeld), het zal pagina' s vijf alarm: het eerste zal zeggen "0"; de Ten tweede zou zeggen "1"; tot de "4".Met andere woorden, het equivalent van doen: var currentnumber = 0; alarm (currentnumber); currentnumber = currentnumber + 1; alarm (currentnumber); currentnumber = currentnumber + 1; alarm (currentnumber); currentnumber = currentnumber + 1; alarm (currentnumber); currentnumber = currentnumber + 1; (currentnumber currentnumber alarm); = currentnumber + 1;, want dit is, hoewel de verklaring van gedrag, als een herhaling, als de verklaring.Weet je nog, als dit werkt, als (voorwaarden) {resultaten;}, "als voorwaarde, dat is waar, en dan rennen, de resultaten, de", maar dit werkt:, hoewel (voorwaarden) {resultaten;}, zolang de voorwaarden, blijven rennen,,, ", het is een delicate De verschillen, maar een echt belangrijk.Als een blok zal functioneren als een,, voorwaarden, waar is; overwegende dat de dollar steeds weer rennen, totdat de voorwaarden, voorwaarden, niet waar is, want de reden dat de oorzaken, de resultaten, de - code, die in het blok, en bevat een aantal - meestal een code. Uiteindelijk, op voorwaarde, niet echt is, en als het geen code zal herhalen, alleen jezelf voor altijd.In onze waarschuwing in het kader van de voorbeelden die we de toegevoegde waarde van currentnumber tot het ", currentnumber" is niet langer een echte (als, currentnumber tot 5, is het niet langer, van minder dan 5, dit is waarom we zien nooit een waarschuwing doos bevat 5), in de code, zodat ook bekend "verkeer", en die stukken genaamd "verkeer".Laten we deze code, enemyypositions [0] = [0] + 1 enemyypositions; enemyypositions [1] = enemyypositions [1] + 1; enemyypositions [2] = enemyypositions [2] + 1; enemyypositions [3] = enemyypositions [3] + 1; enemyypositions [4] = enemyypositions [4] + 1;,... En het verandert in een lus, var currentenemynumber = 0; en (currentenemynumber < 5) {enemyypositions [] = [currentenemynumber enemyypositions currentenemynumber] + 1;}, grote.?????Eigenlijk, dat is niet juist: we veranderen niet van waarde, currentenemynumber,.Dit is:
Zal het spel training: meer mobiele vijand
Next Page:- 3 - 101: de invoering van basix