in de oprichting van een klassiek spel van de slang, het creëren van een klassieke slang wedstrijd 3,,,,,,,,,, uitwisseling van aandelen, 11,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen.,, in deze les. Ik zal laten zien hoe gemakkelijk het is in het creëren van een klassieke flash "slang" spel.Ik zal proberen een stap voor stap om alles uit te leggen, dus je kan de verdere ontwikkeling van je vraag.Het spel zal op 3 en ik zal FlashDevelop ide.,,,, het is niet zo ingewikkeld, het spel.Als we tegen een muur, zal het spel herstart.Eet een appel, de slang komt, zal er een appel van de "nieuwe" appel.(in feite, zal het met een appel, maar ik zal het uitleggen in het spel.), is een van de belangrijkste aspecten van de code van de reactie key_down gebeurtenis is.De slang zal veranderen na de haak in de richting van een druk op de knop, nee, onmiddellijk.Dit betekent dat, als de slang is correct, je drukt op de linker zeer snel en slangen kunnen gaan, en niet naar beneden en ga weg.Als het niet de "functionele", de slang zal ons in de weg lopen, dat zou betekenen dat het zelf, laten we eens kijken of we dit spel.Laten we, om te zien wat het resultaat zullen wij werken aan:,, stap 1: in FlashDevelop tot het project, het creëren van een nieuw project, en in deze map, het creëren van een "COM" MAP.In de "COM" MAP in het creëren van een nieuwe klasse, en noemt het een element is van de omvang van het project. ", 600X600 pixel. Stap 2:,, wacht...Element is?De slang is, door de blauwe vierkantjes, noem ik de elementen.We creëren een element, dat die elementen.Een rode appel wordt ook een element, en dus zullen wij meer lijn voor de uitbreiding van de code, en daarom zullen wij niet voor het creëren van nieuwe soorten appels.Maar als je het echt wil, kan je.), stap 3: voorbereiding van de elementen, elementen van het creëren van een vierkant.Het zal niet op het podium die foto, het is gewoon te creëren.Registratie van de positie van de elementen bekend voor de X - en Y - as is in de linker.,, open de element.as zie je na zoiets als dit,,, pakket {COM /* * * * * * *.* * * * * * * * * * * * * * zsombor @ auteur fuszenecker /open - {}} {}) element (openbare functie, in de eerste plaats moeten wij de verlenging van de vorm, dus we kunnen het gebruik van grafische voorwerp van het plein.Na dit, het creëren van twee variabelen: een richting (indien het een deel van zijn slangen), één voor de score (als het een appel) en veranderingen van de parameters van de fabrikant:,,, COM (flash.display.shape pakket invoer; de uitbreiding van de bescherming van _direction:VaR element vormen, {/als touw; Het is een appel > de bescherming van werk _catchvalue: nummer; /kleur, de breedte, lengte, α, de functionele elementen (_c: eenheid, _a: cijfers _w: aantal, _h: aantal) {}}}, nu de aanvullende functie van een code:,,, COM (flash.display.shape pakket van invoer; de uitbreiding van de bescherming van _direction element vorm {werk: touw, /als het een appel > de bescherming van werk _catchvalue: nummer;///////breedte, lengte, kleur, α, de functionele elementen (_c: eenheid, _a: cijfers _w: aantal, _h: nummer) (grafiek. Type (0, _c, _a); grafische. Beginfill (_c, _a); grafische. DrawRect (0, 0, _w, _h); figuur. Endfill (); _catchvalue = 0;}}}, nu, als we het creëren van een element, het zal een rechthoek 0 standaard eenheid scores.(het niet op het podium van de rechthoek geplaatst, maar het schilderij in zijn binnen.Dat we geen naam, functie, addchild ()), laten we dit afmaken en dan kunnen we eindelijk testen hoeveel we hebben:,,, COM (flash.display.shape pakket invoer; de uitbreiding van de bescherming van _direction element vorm {werk: touw, /als het een appel > bescherming var _catchvalue: nummer; /kleur, de breedte, lengte, α, de functionele elementen (_c: eenheid, _a: cijfers _w: aantal, _h: nummer) (grafiek. Type (0, _c, _a); grafische. Beginfill (_c, _a); grafische. DrawRect (0, 0, _w, _h); grafische. Endfill (); _catchvalue = 0;) ///////uitsluitend van toepassing zijn op openbare functies die slang in de richting van de deel van de zaak (waarde: string): ongeldig {_direction = waarde van de;}C) (functie): string _direction {} alleen appels; ///////voor openbare functies catchvalue zaak (waarde: aantal): ongeldig {_catchvalue = waarde van de openbare functie;} catchvalue (aantal): _catchvalue}}} {terug te keren; en we hebben vier functies en de waarde van veranderingen in de richting van de appel.Door gebruik te maken van een van ons en een doorzetter.Voor meer informatie over de voor het /de in dit artikel bedoelde persoon.Stap 4: het testen van onderdelen,,, open, de invoer van Main.as veranderd, com.element, klasse en het creëren van een element in de functie (s):,,, pakket - invoer van flash.display.sprite; de invoer van flash.events.event; de invoer van maïs. Element; in de loop van de belangrijkste uitbreiding van de openbare functie Sprite (Main () {als (addEventListener (fase) event.added_to_stage ervan ()); de andere;} privé functie ervan (E: gebeurtenissen = nul) {VAR testelement: nietigverklaring van: - = nieuwe elementen (0x00aaff, 1, 10, 10); testelement. X = 50; testelement. Y = 50; dit. Addchild (testelement);}}} we creëren, in de eerste plaats, die wij testelement, variabele elementen.We creëren een nieuwe elementen, en voor ons, testelement, veranderd.Let op ons argument: in de eerste plaats geven we een kleur, dan is de alfa en de breedte en lengte.Als je kijkt naar de elementen van elementen, zoals je kan zien hoe het gebruik van deze gegevens te trekken van vierkante of rechthoekige vorm, in het creëren van elementen, zullen we het in de arena.Stap 5: de vaststelling van de variabele, en naar de volgende code.Ik schrijf de functie van de variabele naast hen (er nota van te nemen dat wij de noodzakelijke):,,, pakket - invoer van flash.display.sprite; de invoer van flash.text.textfield; de invoer van flash.utils.timer; de invoer van flash.events.timerevent; de invoer van flash.ui.keyboard; de invoer van flash.events.keyboardevent; de invoer van flash.events.mouseevent; de invoer van flash.events.event; de invoer van maïs. Element; in de loop van de belangrijkste uitbreiding van de niet aan doen? (///////de waarden van de variabelen is hier.///////in hun functie (waarden).De particuliere snake_vector:VAR vector. < - >; ///////slangen hier gehouden markers_vector deel van particuliere var: vector. < doel >; ///////- particuliere var de timer hier gehouden: de timer; particuliere var dood: Bull. Min_elements:int Particuliere var; ///////die slangen moeten aan het begin van een particuliere var. Hoeveel delen: - appel; /we speciale appel var space_value: nummer; ///////last_button_down deel van de ruimte tussen de slang van particuliere var: eenheid; /eindelijk op een knop te drukken De code sleutel locomotieven: Bull. ///////symbool of om van richting te veranderen?Privé - beoordeling van de risico 's: nummer; particuliere var score_tf:TextField; ///////de functie van de symptomen van Main () {als (fase) addEventListener (event.added_to_stage ervan ()); de andere;} privé functie ervan (E: gebeurtenissen = nul): {snake_vector = nieuwe luchtvaartmaatschappij ongeldig. < - > markers_vector = nieuwe luchtvaartmaatschappij. < doel space_value = 2 >;; ///////er de ruimte voor elke dollar timer = nieuwe timer (50); ///////tussen elk vijftigste msec () functie worden ontslagen op, schiet op!Het geheel van de slang dood = valse snelheid; min_elements = 10; ///////- we beginnen met 10 elementen.De appel = nieuwe elementen (0xFF0000, 1, 10, 10); ///////rode opake breedte: 10, hoogte: 10; apple.catchvalue = 0; ///////duidelijk appel last_button_down = keyboard.right score; ///////de slang een eerste richting deze variabele score = 0; score_tf = nieuwe textfield (het); ///////is dat onze fractie de tekst.Deze. Addchild (score_tf);}}}, is een van de belangrijkste variabelen, snake_vector,.We zullen de slang van elk van de elementen van een op deze vector.En dan is markers_vector,,,.We zullen voor het merken van de richting die de slang.De vector in elk object heeft een positie en een type.Het type zal ons vertellen of de rechten moeten gaan, slangen, links, of "tegen" de doel na.Ze zal niet alleen de positie van de botsing, etikettering en de slang gedeelte zal worden gecontroleerd.), als een voorbeeld, als we op neer, een doel zal worden gecreëerd.Het object is de kop van de slang en te coördineren, en van het type "naar beneden" zal worden.Als een van de elementen is de positie van dezelfde slang van het object van de elementen, de slang richting zal worden ingesteld als de "naar beneden".De toelichting, lees de variabelen te begrijpen, wat is de andere variabelen.Stap 6:,, schrijven, attachelement attachelement () (), vier parameters: nieuwe functie zal de slang elementen, de X - en Y - coördinaten, en het laatste deel van de slang in de richting van de,,., de privé - functies (die attachelement: element, lastxpos: hoeveelheid = 0, lastypos: hoeveelheid = 0, diroflast: string = "r"): ongeldig {}, voordat we element op het podium moeten we in positie.Maar we moeten voor dit laatste element van de richting van de snake's, te weten of de nieuwe element is te boven, onder, of de volgende. Na controle, de richting en de positie kunnen we vaststellen en voeg het toe aan de stage.,,, privé functie attachElement (who:Element, lastXPos:Number = 0, lastYPos:Number = 0, dirOfLast:String = "r"):. {als (dirOfLast = = = = = = = "r") {who.x = lastXPos - snake_vector[0].width - space_value; who.y = lastYPos;} anders als (dirOfLast = = = = = = = "L") {who.x = lastXPos + snake_vector[0].width + space_value; who.y = lastYPos;} anders als (dirOfLast = = = = = = = "e") {who.x = lastXPos; who.y = lastYPos + snake_vector[0].height + space_value;} anders als (= = = = = = = dirOfLast "D") {who.x = lastXPos; who.y =Lastypos - snake_vector [0]. De hoogte van deze space_value;}. Addchild (wie);}, nu kunnen we op, (), gebruik te maken van deze functie:,,, (var i:int = 0; ik < min_elements; + + I) {snake_vector [M] = nieuwe elementen (0x00aaff, 1,10,10); snake_vector [M] = "r". De richting van de aanvankelijke richting; ///////de slang als (M = = 0) ////////- {eerste slang zal je het eerste element in het netwerk.(nu: 0,0) /[mogelijke positie X: (snake_vector [0]. Breedte: + space_value) * < eenheid >] attachelement (snake_vector [M], [I] 0,0, snake_vector. Richting) snake_vector [0]. α = 0,7;} {attachelement (of snake_vector [M] [1], ik snake_vector. X, ik snake_vector [1]. Y, ik snake_vector [1]. Richting);}}, creëren we de eerste tien elementen, en die hun richting, R (rechts).Als het de eerste factor is, noemen we het attachelement (), we veranderen het Alpha bits (het "hoofd" is een kleur, licht) als u de locatie, onthoud het volgende: de slang is geplaatst in een net, anders zal er slecht werkt niet.Als je wil veranderen de X - en Y - positie kan je doen als volgt:,, in de voor de cyclus, we controleren of de nieuwe appel van de X - en Y - locatie van een snake_vectors dezelfde elementen.Als dat het geval is, noemen we het, placeapple (), functionele (terugkerende functies), waarin de parameters, de valse.(bedoelt appel niet gepakt, maar we moeten heroriënteren), (appelen), als de appel op het podium weer echt.We gebruiken "."De waarde van de exploitanten, dus als het niet op het podium, we hebben, we moeten nog een ding doen is bellen, placeapple () (), de functie, de laatste functie,.,,, privé functie ervan (E: gebeurtenissen = nul) {/*: ongeldig...* * * * * * * /placeapple een (pseudo);}, dat we de overdracht, de valse, als parameter.Dat is logisch, omdat we niet in te halen (), appel, maar de functie.We zullen alleen op, op, schiet op, pak de functie van het (de).,, nu slechts drie functies te schrijven, directionchanged () ():,, op, schiet op, en, gameover (), functie, acht stappen. EN: begin, op, schiet op, op, schiet Op, () () is verantwoordelijk voor alle functies van de sport..Deze functie wordt de controle aan de grenzen, en kijk of er een voorwerp in de X - en de kop van de slang.Het zal ook ik voor de appel in deze. En voor alle gebruik van dit, we zullen onze timer variable., toevoegen. In het einde van de meer lijnen ervan (), function:,,, timer.addEventListener (TimerEvent.TIMER, moveIt); timer.start (); is op de opmerkingen in het sourcecode, te zien. Blok van De code is.,,, privé functie moveIt (e:TimerEvent):. {als (snake_vector[0].x = = = = = = = = = = = = = = apple.x & & snake_vector[0].y apple.y) {///////deze code start positie aan als de slangen en de kikker positie zijn Dezelfde} als (snake_vector[0].x > stage.stageWidth-snake_vector[0].width