Starling partikkel effekter for Stage3D Shooter Games

Starling partikkel effekter for Stage3D Shooter spill
to
Del
15
Del
Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av
Dette innlegget er en del av en serie som heter skytespillet Up.Quick. Tips: Legg et uskarpt Trail Effect til din BulletsBuild en Stage3D skytespillet Up: Eksplosjoner, Parallax, og Kollisjoner

Jeg er sikker på at Stage3D er ikke fremmed for de fleste lesere; det er den nye API som gir AS3 programmerere tilgang til GPU. Men koding mot opcodes i Stage3D kan ikke være alles foretrukne valget, så det er heldig at det er en snarvei: Starling, bibliotek utviklet for å kapsle dette lave nivået programmering å gjøre det mye enklere. Og sammen med Starling kommer dens partikkel effekter forlengelse. I denne opplæringen, vil vi sjekke ut partikkel-systemer i dette rammeverket, og se sine programmer brukes på en shoot-'em-up spill




Trinn 1:. Basic Oppsett

Hopp over dette trinnet hvis du har jobbet med FlashDevelop en stund. For nybegynnere, her er hvordan du installerer et bibliotek pakke - i dette tilfellet Starling og partikkel forlengelse. Merk at disse to elementene ikke kommer i en pakke, så vi må laste dem separat.

Først laste ned Starling rammeverk og partikkel forlengelse fra depotene. Pakk etter vellykket nedlasting. Skanne den første utpakkede katalog for src mappen og lim Starling rammeverket bibliotek, markert på bildet under, inn i prosjektet kildemappen.

skanne andre mappen for partikkel forlengelse og kombinere dem sammen. Du kan trekke den markerte mappen nedenfor i Starling-mappen. Bildet nedenfor er det sluttresultatet du bør ankomme

For mer info om FlashDevelop og bruk av eksterne biblioteker, se disse tutorials.

  • nybegynners å FlashDevelop

    Hvordan bruke en ekstern Biblioteket i flash Prosjekter


    Trinn 2: Hovedklasser

    Hvis du ikke har blitt introdusert til Starling og partikkel forlengelse allerede, jeg oppfordrer sterkt et besøk til Lee Brimelow sin video tutorials på Starling og partikkeleffekter, og Matthew Chung tutorial om håndtering animasjon stater med Starling.

    Vi skal bare bris gjennom det grunnleggende i to trinn her. Hvis du allerede er kjent med Starling og partikkel forlengelse, gjerne hoppe til trinn 4.

    Du kan se fra det andre bildet av forrige trinn (nedre del) at to klasser blir opprettet: Main.as og Testing.as. Den første fungerer som en bærerakett for sistnevnte. Så, de fleste av våre Starling kode bor i Testing.as. Jeg har understreket den viktige koden i Main.as her:
    privat funksjon init (e: Hendelses = null): void {removeEventListener (Event.ADDED_TO_STAGE, init); //Inngangspunkt Var myStarling: Starling = new Starling (Testing, scene); myStarling.simulateMultitouch = true; myStarling.start (); //initiere Starling på scenen //tillate mus /røre hendelser skal skje i Starling //vri nøkkelen og starte motoren}

    ... og Testing.as skal se slik ut:
    public class Testing strekker Sprite {offentlig funksjon Testing () {addEventListener (Event.ADDED_TO_STAGE, init); } Private funksjon init (e: Hendelses): void {removeEventListener (Event.ADDED_TO_STAGE, init); //Koden går her. stage.color = 0; //slå scenen farge til svart //Tegn opp en liten quad på scenen, //bare for å sørge for at alt er på plass //Legg merke til den øverste venstre hjørne av sprite er justert til midten av scenen Var q: Quad = new Quad (30, 30); addChild (q); q.color = 0xEEEEEE; q.x = stage.stageWidth > > 1; q.y = stage.stageHeight > > 1; }}

    Og hvis alt er satt opp riktig, bør du komme frem til resultatet som vist nedenfor. Ikke mye, bare en sprite på scenen

    Merk:. Testing.as utvider Sprite fra Starling.display.Sprite, ikke flash.display.Sprite. Klassene har samme navn, men er ikke det samme



    Trinn 3:. Partikkel Extension i Starling

    Partikkel forlengelse av Starling inneholder tre viktige klasser. Deres funksjonalitet er oppført nedenfor
    Navn ClassFunctionalityParticle.asA enkelt partikkel med unike attributes.ParticleSystem.asControls flyten av partikler:. Generasjonen, animasjon og recycling.ParticleDesignerPS.asAn forlengelse av ParticleSystem.as for enkel manipulering av partikkel system.

    Vi skal opprette en forekomst av ParticleDesignerPS.as. Dette krever inntasting følgende argumenter inn i klassen konstruktør:

    en XML-fil som inneholder all initiering verdi for partikkelegenskaper (ganske mange av dem)

    en image å prøve for alle partikler

    Ingen fare, onebyonedesign.com vil hjelpe deg med dette. Besøk deres partikkel designer siden og finpusse alle disse innvielses verdier til hjertet ditt innhold. Deretter eksportere alle data til ZIP-format. Denne ZIP-filen inneholder XML-filen, og bildet for partikkel effekten du bare laget gjennom deres nettside!

    Pakk og dra alle disse inn i kildemappen i FlashDevelop. Se de markerte elementene i bildet nedenfor.

    Generer import uttalelser å få disse to elementene i din Testing klasse. Du må også skrive om init-metoden i Testing. De er alle under
    [Bygg (kilde = "particle.pex", mimetype = "application /octet-stream")] private Var InitValues. Class [Bygg (kilde = "texture.png")] private Var Sample : Classprivate funksjonen init (e: Hendelses): void {removeEventListener (Event.ADDED_TO_STAGE, init); //Koden går her. stage.color = 0; //slå scenen farge til svart Var flow1: ParticleDesignerPS = nye ParticleDesignerPS (XML (nye InitValues ​​()), Texture.fromBitmap (ny prøve ())); addChild (flow1); flow1.emitterX = stage.stageWidth > > 1; flow1.emitterY = stage.stageHeight > > 1; flow1.start (); Starling.juggler.add (flow1);}

    Her er resultatet bør du ankommer. Ganske enkel, rett




    Trinn 4: Forstå Particle System

    Vårt neste skritt er å muliggjøre samhandling med partikkel system (det lille brann) på runtime. Vi vil bruke musen til å styre egenskapene til brann. Men før vi gjør det, vil jeg gjerne sidesteg litt å orientere deg på konseptet med partikkelsystemer.

    Partikler er bare sprites som blir sendt fra et koordinatsystem. Etter fødselen, vil de animere i et bestemt mønster. Dette mønsteret kan være unik for hver partikkel eller felles for alle partikler. Men trygg, deres fysiske egenskaper vil endre seg over tid. For eksempel:

    Avstand fra fødselen koordinere

    Retning og hastighet

    Farge og alpha nivå

    Størrelse

    Også, deres liv på scenen bestemmes ved fødselen. Hvis hver partikkel er lov til å leve evig på scenen, vil vi ha overbefolkning og programmet ytelse vil lide på grunn av å ha en masse grafiske eiendeler for å håndtere. På et tidspunkt, dør partikkelen, men det blir ikke skuffes av scenen. Det er resirkulert i stedet, ved å bli flyttet til en fødsel koordinere og innta rollen som en ny partikkel. Det er en ny partikkel fordi et nytt sett med egenskaper vil bli definert for det da før sine animasjons spark i og en annen syklusen fortsetter.

    (Dette er objekt pooling
    , og du kan se hvordan du bruke den til din egen ikke-Starling Flash prosjekter her.)

    Ok, så hvordan forholder dette seg til våre brann? Vel, vi kan bruke lettelser funksjoner for å animere egenskaper av denne brannen over tid. Innenfor Starling rammeverket er ParticleDesignerPS plassert på slutten av dette hierarkiet:

    ParticleDesignerPS &​​gt; ParticleSystem > Displayobject > EventDispatcher > Object

    For å finne en balanse, vi vil bare spore arvet egenskaper fra ParticleSystem. La oss ta en titt på disse neste trinn ...



    Trinn 5: Egenskaper av ParticleSystem og ParticleDesignerPS

    Nedenfor er de egenskapene ParticleSystem
    PropertyDescriptioncapacityMaximum partikler kan systemet. bære når som helst. Øker i trinn på 500 når antallet partikler overskrider dagens kapasitet. Skrive only.numParticlesNumber av partikler i systemet på et gitt tidspunkt. Skrive only.emissionRateNumber av partikler generert fra fødselen koordinere hver second.emitterX, emitterYControl punkt for beholderen der alle partikler leve.

    blendFactorSource, blendFactorDestination
    Context3DBlendFactor definisjon for kilde og destinasjon. Destinasjon refererer til pixel farge fra siste gjengi og Kilden refererer til ny pixel farge for å tegne på destination.textureCurrent bilde samplet som tekstur av partikler. Beskyttet.

    De av ParticleDesignerPS er ordnet i neste tabell. De fleste av disse egenskapene kan finjusteres ved starten og slutten tilstand. For eksempel vil alle genererte partikler starte med en størrelse på 1,0 og avsluttes ved 0,1. Imidlertid vil partikkelstrømmen være kjedelig hvis alle partikler er initiert og avsluttet ved slike lignende tilstander, så ParticleDesignerPS bestemmelser for variansen av den opprinnelige verdien, og noen ganger variansen ved opphør verdi også.

    Siterer deres eksempel, hvis vi gi et avvik på 0,2 på partikkel opprinnelige størrelse, vil påfølgende partikler birthed eller resirkuleres inn i systemet starte sin størrelse et sted mellom 0,8 ~ 1,2 og slutten på 0,1.
    PropertyDescriptionemitterXVariance, emitterYVarianceVariation av fødselen coordinate.startSize, startSizeVarianceInitial størrelse og varianceendSize , endSizeVarianceTermination størrelse og varianceemitAngle, emitAngleVarianceParticle opprinnelige retning og variancespeed, speedVarianceParticle innledende hastighet og variancegravityXAcceleration langs x-aksen på alle partikler 'første velocitygravityYAcceleration langs y-aksen på alle partikler' første velocitytangentialAcceleration, tangentialAccelerationVariationRate av rotasjon på partikkelens hastighet, og varians

    Det finnes to typer av partikkelstrømmen leveres for i ParticleDesignerPS: tyngdekraften og radial. Vist i tabellen ovenfor er egenskaper du kan justere hvis du bruker tyngdekraften flyt. For gravitasjon, fødsel koordinere av partikler ligger på emitterX og emitterY. For radial, fødsel koordinere for partikler ligger noen poeng unna emitterX og emitterY, og de beveger seg mot
    det. Tabellen nedenfor viser egenskapene for radial flyt.
    PropertyDescriptionmaxRadius, maxRadiusVarianceMaximum radius fra sentrum, og varianceminRadiusMinimum radius fra centerrotationPerSecond, rotationPerSecondVarianceRate av rotasjon på partikkel velocitystartColor, startColorVarianceInitial farge og varianceendColor, endColorVarianceTermination farge og varians



    Trinn 6 : Legge Interaktivitet

    Vel, takk for imøtekommende at liten omvei. Nå for noen Actionscript. I init-metoden, vil vi legge til en lytter på scenen for touch hendelser
    stage.addEventListener (TouchEvent.TOUCH, spor);

    Og lytteren som nedenfor
    privat funksjon spor (e. TouchEvent. ): void {var touch: Touch = e.getTouch (scene); //kartlegging på scenen er rutenettet //når brukeren trykker mus og beveger if (touch.phase == TouchPhase.MOVED) {//beregne vinkelen å peke partikkelstrømmen til Var distX: Number = touch.globalX - flow1.emitterX; Var distY: Number = touch.globalY - flow1.emitterY; Var vinkel: Number = Math.atan2 (distY, distX); t = new Tween (flow1, 1,5, Transitions.EASE_OUT_BACK); t.animate ("emitAngle", vinkel); Starling.juggler.add (t); }}

    For å utføre animasjonen, er et eksempel Tween definert. Dens manipulasjon er lik som populære Tween motorer på mange måter. Så legger vi det til gjøgleren av gjeldende forekomsten av Starling. Dette sjonglør objektet vil bidra til å gradvis oppdatere Tween forekomsten over tid.

    Resultatet er nedenfor. Klikk og dra musen rundt på scenen



    Trinn 7:. Sette opp Ship

    La oss sette opp våre skip nå og sette en løype på den. Eiendelene er fra opengameart.org og jeg har tatt dem i nedlastingspakken. Sjekk at området ut for andre gratis spill kunst.

    Vi vil starte på nytt med en annen klasse, TestingShip.as. Først importerer romskipet image "boss1.png" product: [Bygg (kilde = "boss1.png")] privat Var Ship. Class

    ... etterfulgt av et lite oppsett for å initialisere det i init-metoden :
    //setup det grafiske appearancevar shipBMP: Bitmap = new Ship () som Bitmap; //import aktiva til en bmpvar shipTEX: Texture = Texture.fromBitmap (shipBMP); //prøven bmp som tekstur til imagevar shipIMG: Bilde = new Image (shipTEX); //bilde laget med tekstur //setup skipets orientering & positionshipIMG.rotation - = Math.PI * 0,5; //reorientere imageshipIMG.x - = shipIMG.width > > 1; //fordi bildets opprinnelse er i øvre venstre hjørne, shipIMG.y + = shipIMG.height > > 1; //vi omplassere imagetheShip = new Sprite (); //og sette det inn i en sprite. Nå registreringspunktet er centered.theShip.addChild (shipIMG); //sprite plassert på stageaddChildAt (theShip, 0); //navigasjons egenskaper shiploc = new Vector2D (stage.stageWidth > > 1, stage.stageHeight > > 1); lof = new Vector2D (0, 10); updateShip ();

    Oppdater sin posisjon og orientering i henhold til loc (plassering) og lof (fri sikt)
    privat funksjon updateShip (). void {theShip.x = loc.x; theShip.y = loc.y; theShip.rotation = lof.getAngle ();}

    Igjen, klikke og dra i scenen for å se effekten:



    Trinn 8: Sette opp Eksos Trail

    Ok , er eksos av skipet på toppen av selve skipet, og romskipet ikke reagerer på muse hendelsen. Vi skal fikse det nå. Bare oppveie emitterX og emitterY av partikkel flyte litt avstand av fra romskipet og oppdatering romskip rotasjon ved hjelp lof.

    (Merk at lof er oppdatert på mus hendelser. Du vil se manuset neste trinn.)
    privat funksjon updateShip (): void {theShip.x = loc.x; theShip.y = loc.y; theShip.rotation = lof.getAngle (); //oppdatering partikkel trail offset = new Vector2D (60, 0); offset.setAngle (lof.getAngle ()); flow1.emitterX = loc.x - offset.x; flow1.emitterY = loc.y - offset.y;}



    Trinn 9: Navigere Ship

    La oss prøve å programmere skipet navigasjon nå, ved å sende en mus hendelse. Jeg har bare kommentert de viktige linjene:
    privat funksjon spor (e: TouchEvent): void {var kontakt: Touch = e.getTouch (scene); if (touch.phase == TouchPhase.MOVED) {var distX: Number = touch.globalX - flow1.emitterX; Var distY: Number = touch.globalY - flow1.emitterY; vinkel = Math.atan2 (distY, distX); t = new Tween (flow1, 1,5, Transitions.EASE_OUT_BACK); t.animate ("emitAngle", vinkel + Math.PI); t2 = new Tween (theShip, 1,5, Transitions.EASE_OUT); t2.moveTo (touch.globalX, touch.globalY); //flytte skipet t2.onUpdate = oppdatere //påkalle denne funksjonen når tween motoren går Starling.juggler.add (t); Starling.juggler.add (t2); //legger til Juggler}} privat funksjon refresh (): void {loc.x = theShip.x; //refresh plassering loc.y = theShip.y; lof.setAngle (vinkel); //refresh orientering updateShip (); //Oppdatering}

    Og her er et show av sluttresultatet. Dra musen rundt på scenen og romskipet vil dra dit



    Trinn 10:. Animer Eksos

    La oss finjustere vår eksos. Når skipet beveger seg, vil eksosen definitivt være blåser hardere, til høyre? Vi kan gå opp emissionRate og hastighet når du flytter skipet, og trappe ned emissionRate når den er stoppet. Her er tilfelle, fremhevet:
    t2 = new Tween (theShip, 1,5, Transitions.EASE_OUT); t2.moveTo (touch.globalX, touch.globalY); //flytte shipt2.onUpdate = oppdatere //påkalle denne funksjonen når tween motor runst2.onStart = beginState //når skipet begynner movingt2.onComplete = endState //når skipet animasjonen stopper

    Og her er de funksjonskall på de . hendelser
    privat funksjon beginState (): void {flow1.emissionRate = 250 flow1.speed = 100;} private funksjon endState (): void {flow1.emissionRate = 50 flow1.speed = 10;}

    Klikk og dra igjen, og ta hensyn til lengden på eksos



    Trinn 11:. Parallax Effect

    Partikler kan også uttrykke hvor fort skipet beveger seg i forhold til sine omgivelser. Sjekk ut resultatet nedenfor. Klikk og dra deg musen rundt. Observere hvor raskt de omkringliggende partikler beveger seg. De øker som du samhandler med skipet, og bremser ned når du stopper samspillet. De har også orientere sin rotasjon tilsvarende.

    Konfigurering av denne effekten er relativt lett på app vist frem av onebyonedesign.com
    . Men vi trenger å kode noen Actionscript for å endre det under kjøring, og dette vil ta de neste trinnene



    Trinn 12:. En Emitter i Front

    initiering av partiklene følger et lignende format til det foregående eksempel. Du kan velge å finpusse effekt med app fra onebyonedesign.com Hotell og import inn i scenen. Jeg bare kode rett inn i Actionscript for enkel
    envr = nye ParticleDesignerPS (XML (nye InitValues ​​()), Texture.fromBitmap (ny prøve ()));. AddChildAt (envr, 0); envr.blendFactorSource = Context3DBlendFactor.ONEenvr .blendFactorDestination = Context3DBlendFactor.ONEenvr.speed = 10; envr.speedVariance = 20; envr.startSize = 15; envr.startSizeVariance = 0; envr.endSize = 20; envr.endSizeVariance = 20envr.lifespan = 5,0; envr.lifespanVariance = 4,0; envr.emissionRate = 10envr.start (); Starling.juggler.add (envr);

    Vi må også sette partikkel emitter litt avstand foran skipet
    envrLoc = new Vector2D (100, 0);. EnvrLoc.setAngle (vinkel);

    Og oppdatere denne vektoren under kjøring
    //oppdatere environmentenvr.gravityX = -40 * lof.x.; //partikkel akselererer i motsatt directionenvr.gravityY = -40 * lof.y; //av siktlinje vectorenvr.emitterX = loc.x + envrLoc.x; envr.emitterY = loc.y + envrLoc.y;



    Trinn 13: The Spread

    Du skjønner, emitterXVariance og emitterYVariance håndtere aksene separat. Dette betyr at hvis vi roter romskipet, trenger vi noen midler for å bestemme lengden på spredning langs disse to aksene.

    Nå sjekke ut vektor for siktelinjen. Det er alltid vinkelrett på den for spredning linje (den tynne mørk linje). Vi kan skalere opp denne vektoren tilsvarende og Swizzle sin x og y med de av emitter er variansen på startpunktet. Sjekk demo nedenfor. Klikk og dra musen rundt. Du vil se partikkelstrømmen mer livaktige.

    Til slutt, skalere omfanget av spredt opp og sette den litt lenger i forkant av skipet slik at spillerne ikke vil se sine utslippspunktet.
    EnvrLoc = new Vector2D (200, 0); envrLoc.setAngle (vinkel); //oppdatere spreadspread = envrLoc.clone (); spread.scale (0,5); envr.emitterXVariance = spread.y; envr.emitterYVariance = spread.x; < hr>
    Trinn 14: Pump Up the Acceleration

    Til slutt som skipet er akselererende, la oss øke omfanget av gravityX og gravityY, pluss eksos, tilsvar
    if (touch.phase ==. TouchPhase.MOVED) {var distX: Number = touch.globalX - flow1.emitterX; Var distY: Number = touch.globalY - flow1.emitterY; vinkel = Math.atan2 (distY, distX); //animere eksos t = new Tween (flow1, 1,5, Transitions.EASE_OUT_BACK); t.animate ("emitAngle", vinkel + Math.PI); Starling.juggler.add (t); //kontrollere eksos flow1.speed = 350; flow1.endSize = 70; //orientere skipet & parallax vinkel lof.setAngle (vinkel); lof.setMagnitude (10); //justere omfanget av akselerasjon envrLoc.setAngle (vinkel);} if (touch.phase == TouchPhase.ENDED) {//kontrollere eksos flow1.speed = 100; flow1.endSize = 10; lof.setMagnitude (5); //justere omfanget av akselerasjon}



    Trinn 15: Ship under angrep

    Som du avanserer i spillet, vil du definitivt ta hits og påføres skade. Som skade blir alvorlig, vil du skipet brenne opp. En slik effekt kan genereres her; vi kan gjøre bruk av emissionXVariance og emissionYVariance å definere området brenne. Jeg har uthevet dem i koden under
    envr = nye ParticleDesignerPS (XML (nye InitValues ​​()), Texture.fromBitmap (ny prøve ()));. AddChildAt (envr, 2); envr.blendFactorSource = Context3DBlendFactor. ONE_MINUS_SOURCE_ALPHAenvr.blendFactorDestination = Context3DBlendFactor.ONE; envr.emitterXVariance = theShip.width > > 2; envr.emitterYVariance = theShip.height > > 2; envr.emitAngle = 0; envr.emitAngleVariance = Math.PI; envr.speed = 0; envr.startSize = 40; envr.startSizeVariance = 0; envr.endSize = 10; envr.endSizeVariance = 0envr.lifespan = 5,0; envr.lifespanVariance = 3,0; envr.emissionRate = 10; envr.start (); Starling.juggler.add (envr);

    Skade alvorlighetsgraden er angitt med området og intensiteten av brannskader. Øke og redusere emissionRate å simulere dette. Jeg har lagt til kontroller på tastaturet "A" og "S" for å etterligne dette.
    privat funksjon controlBurn (e: KeyboardEvent): void {if (e.keyCode == Keyboard.A) {if (envr.emissionRate < 150) envr.emissionRate + = 10; if (envr.lifespan < 8) envr.lifespan + = 0,5; } If (e.keyCode == Keyboard.S) {if (envr.emissionRate > 10) envr.emissionRate - = 10; if (envr.lifespan > 5) envr.lifespan - = 0,5; }}

    Merk at hvis du øke levetiden av partikler, synes brannen å brenne mer intenst. Vel, det tar tid å interpolere partikler fra sin opprinnelige størrelse til å ende størrelse, så hvis du øke levetiden, er det lengre tid å gå over fra den større start til minste enden størrelse. Som flere store partikler bo på samme sted lenger, blander de sammen for å gi inntrykk av en mer intens brann



    Trinn 16:. Burning Ship

    Trykk på "A" -tasten å se brannen brenne mer intenst og "S" -tasten til litt slukke den. Eksos farge har vært endring, for å skille den fra den brenn:



    Trinn 17: Skips Exploded

    Alle gode spill må slutte på et tidspunkt. Uavhengig av hvem som blir eliminert, bør en god eksplosjon for en finish ikke bli savnet. Så hva med en kjernefysisk soppsky? Klikk på demoen nedenfor for å se en

    Nå, la oss kode det



    Trinn 18:.. Radial Particle Flow

    Denne partikkelstrømmen er litt annerledes enn de vi har sett. Tidligere har vi brukt partikkelstrømmen typen 0 (tyngdekraften), og dette er type 1 (radial). Partiklene er faktisk beveger seg til midten på en konstant hastighet.

    Jeg snudde utslipp vinkel variansen til sitt høyeste, slik at du kan se alle de genererte partikler danner en sirkel. Så, ved å animere maksimal radius og minimum radius disse partiklene skal leve i over tid, ved hjelp av en Tween, vi oppnå dette resultatet.
    Eksplosjon = nye ParticleDesignerPS (XML (nye InitValues ​​()), Texture.fromBitmap (ny Sample ())); addChild (eksplosjon); explosion.emitterX = stage.stageWidth > > 1; explosion.emitterY = stage.stageHeight > > 1; explosion.emitterType = 1; explosion.emitAngle = 0; explosion.emitAngleVariance = Math.PI; explosion.maxRadius = 10; explosion.maxRadiusVariance = 0; explosion.minRadius = 0;

    Her er koden for å utføre animasjonen
    privat funksjon spor (e: TouchEvent): void {var touch:. Touch = e.getTouch (scene); if (touch.phase == TouchPhase.BEGAN) {explosion.emitterX = touch.globalX; explosion.emitterY = touch.globalY; explosion.start (); t = new Tween (eksplosjon, 1,0, Transitions.EASE_IN); t.animate ("maxRadius", 150); t.animate ("minRadius", 130); t.onStart = fryse t.onComplete = null; Starling.juggler.add (t); }} privat funksjon fryse (): void {stage.removeEventListener (TouchEvent.TOUCH, spor);} private reset funksjon (): void {stage.addEventListener (TouchEvent.TOUCH, spor); explosion.stop (); explosion.maxRadius = 10; explosion.minRadius = 0;}



    Trinn 19: Repetisjon

    Så dette har vært en lang tutorial. La oss gjøre en liten oppsummering her. Vi har gått gjennom:

    Sette opp Starling og partikkel forlengelse

    Egenskaper ved partikkel system

    Eksempler på eiendoms manipulasjoner basert på scenario av en skytter spill.

    Konklusjon

    Vi har dekket ganske mye her. Men en viktig aspekt Jeg har ikke gått gjennom er å strekke seg fra ParticleSystem. Dette vil virkelig gi deg muligheten til å kode dine egne partikkel stier i stedet for å stole på ParticleDesignerPS. Jeg må utsette dette til en annen tutorial.

    Takk for lesing og se deg i neste opplæringen. Må legge igjen kommentarer på feil og denne partikkelen motorens bruk i prosjektet ditt hvis du velger å vedta det. Anmeldelser