Quick Tips: A Simple Score Display for Flash Games
Del
Del
Del
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.Build en Stage3D skytespillet-Up. Eksplosjoner, Parallax, og CollisionsBuild en Stage3D skytespillet-Up: Terreng , Enemy AI, og nivå data
Nesten alle spill der ute bruker et poengsystem for å hjelpe spillerne se utviklingen deres. Det er viktig å vise spillerens score i en klar og morsom måte. I denne hurtig Tips skal vi lære hvordan du gjør nettopp det
Innledning
Klikk på knappen for å legge til 20.000 poeng til poengsummen din!
I dette Quick Tips vi kommer til å lære å lage en poengsum skjerm. For å forbedre kvaliteten på vår skjerm, kommer vi til å gjøre to ting:
Legg komma til vår score, så den leser 1.600.000 istedenfor 1600000. Dette gjør det enklere for spilleren å finne ut hvor stor hans eller hennes poengsum.
Gjør vår poengsum overgangen mellom verdier, i stedet for å endre umiddelbart. Dette gir spilleren en følelse av prestasjon, fordi han eller hun faktisk ser sin poengsum vokse.
Til slutt vil vi ha en veldig enkel og nyttig klassen, som du enkelt kan bruke i noen av prosjektene
Denne klassen vil eneste bekymringen seg med å vise resultatet, ikke med å beregne det
Trinn 1:.. Opprette Vår klasse
Først la oss lage vår klasse; Jeg har kalt det ScoreDisplay:
pakke {import flash.display.Sprite; public class ScoreDisplay strekker Sprite {offentlig funksjon ScoreDisplay () {}}}
Trinn 2: Legge vår score Variabler
La oss sakte legge noen variabler:
pakke {import flash.display. Sprite; public class ScoreDisplay strekker Sprite {//scoren som blir vist, mens det er økende offentlig Var currentScore: UINT; //spillerens poengsum private Var poengsum: UINT; offentlig funksjon ScoreDisplay () {}}}
Vi kommer til å vise vår score i en Textfield. Hvis du ønsker å bruke et symbol når du arbeider med ScoreDisplay, trenger du ikke å opprette tekstfeltet ved kode. Men hvis du ikke ønsker å bruke et symbol, må du ringe createScoreField ().
Du må huske på at hvis du ønsker å bruke din egen Symbol, må du gi tekstfeltet innsiden som symbol forekomsten navnet currentScoreField
pakke {import flash.display.Sprite.; import flash.text.TextField; public class ScoreDisplay strekker Sprite {//tekstfeltet som vil vise currentScore offentlig Var currentScoreField: Textfield; //scoren som blir vist, mens det er økende offentlig Var currentScore: UINT; //spillerens poengsum private Var poengsum: UINT; offentlig funksjon ScoreDisplay () {} //hvis utbygger ikke vil koble denne klassen til et symbol, denne metoden må kalles offentlig funksjon createScoreField (): void {currentScoreField = new Textfield (); addChild (currentScoreField); }}}
Trinn 3: Endre og sette Vår Score
La oss nå begynne å tenke på hva vi ønsker å gjøre med vår ScoreDisplay klasse. Vi vil gjerne være i stand til å sette en poengsum, samt legge til eller trekke fra spillerens poengsum. Så la oss lage disse metodene
pakke {import flash.display.Sprite!; import flash.text.TextField; public class ScoreDisplay strekker Sprite {//tekstfeltet som vil vise currentScore offentlig Var currentScoreField: Textfield; //spillerens poengsum private Var poengsum: UINT; //scoren som blir vist, mens det er økende private Var currentScore: UINT; offentlig funksjon ScoreDisplay () {} //hvis utbygger ikke vil koble denne klassen til et symbol, denne metoden må kalles offentlig funksjon createScoreField (): void {currentScoreField = new Textfield (); addChild (currentScoreField); } Offentlig funksjon setScore (_value: uint): void {poengsum = _value; } Offentlig funksjon changeScore (_change: uint): void {poengsum + = _change; }}}
Trinn 4: Vise Vår Score
Så langt så bra, kan vi nå satt og endre poengsum verdi. Men hvordan skal vi vise denne? Selv om det ennå ikke kan virke veldig nyttig, vil vi være å bruke et skriv ramme hendelse lytteren. Ikke bekymre deg det vil være fornuftig
pakke {import flash.display.Sprite!; import flash.events.Event; import flash.text.TextField; public class ScoreDisplay strekker Sprite {//tekstfeltet som vil vise currentScore offentlig Var currentScoreField: Textfield; //spillerens poengsum private Var poengsum: UINT; //scoren som blir vist, mens det er økende private Var currentScore: UINT; offentlig funksjon ScoreDisplay () {addEventListener (Event.ENTER_FRAME, showScore, falsk, 0, true); } //Hvis utvikleren ikke vil koble denne klassen til et symbol, denne metoden må kalles offentlig funksjon createScoreField (): void {currentScoreField = new Textfield (); addChild (currentScoreField); } Offentlig funksjon setScore (_value: uint): void {poengsum = _value; } Offentlig funksjon changeScore (_change: uint): void {poengsum + = _change; } Private funksjon showScore (hendelse: Hendelse): void {currentScoreField.text = String (score); }}}
Trinn 5: Vår Delvis Ferdig Class
Hvis vi ønsker å bruke vår klasse i et prosjekt, ville det se slik ut. Synes å fungere riktig - poengsummen endres - men vi er ikke ferdig. Husk hva vi ønsket å gjøre?
Legg komma til vår score, så den leser 1.600.000 i stedet for 1600000.
Gjør vår poengsum overgangen mellom verdier, i stedet for å endre umiddelbart.
Trinn 6:. Legge Komma
La oss starte med det første målet, og legger komma
pakke {import flash.display.Sprite; import flash.events.Event; import flash.text.TextField; public class ScoreDisplay strekker Sprite {//tekstfeltet som vil vise currentScore offentlig Var currentScoreField: Textfield; //spillerens poengsum private Var poengsum: UINT; //scoren som blir vist, mens det er økende private Var currentScore: UINT; offentlig funksjon ScoreDisplay () {addEventListener (Event.ENTER_FRAME, showScore, falsk, 0, true); } //Hvis utvikleren ikke vil koble denne klassen til et symbol, denne metoden må kalles offentlig funksjon createScoreField (): void {currentScoreField = new Textfield (); addChild (currentScoreField); } Offentlig funksjon setScore (_value: uint): void {poengsum = _value; } Offentlig funksjon changeScore (_change: uint): void {poengsum + = _change; } Private funksjon showScore (hendelse: Hendelse): void {currentScoreField.text = addCommas (score); } Private funksjon addCommas (_score: uint): String {//en streng, som vil ha stillingen komma Var scoreString: String = new String (); //mengden karakterer vår score (uten komma) har Div scoreLength. uint = _score.toString () lengde; scoreString = ""; //legge komma til strengen for (var i: uint = 0; i < scoreLength; i ++) {if (! (scoreLength-i)% 3 == 0 & & i = 0) {scoreString + = " "; } ScoreString + = _score.toString () charAt (i).; } Returnere scoreString; }}}
Trinn 7: Overgangen mellom Poeng
Nå skal arbeide på vår andre mål; overgangen mellom rille verdier, i stedet for å bytte til den nye verdien umiddelbart.
For dette kan vi bruke den utrolige egenskapene til Tween klassen. De fleste ganger vi tenker på Tween klassen for å flytte visningsobjekter, men du kan bruke den til å endre noen numerisk verdi, inkludert våre poengsum
pakke {import fl.transitions.Tween.; importere fl.transitions.easing. *; import flash.display.Sprite; import flash.events.Event; import flash.text.TextField; public class ScoreDisplay strekker Sprite {//tiden (i ms) som er nødvendig for å overgang fra en poengsum verdi til en annen privat statisk konst TRANSITION_LENGTH: uint = 500; //scoren som blir vist, mens det er økende offentlig Var currentScore: UINT; //spillerens poengsum private Var poengsum: UINT; //tekstfeltet som vil vise currentScore privat Var currentScoreField: Textfield; //dette vil lom den aktuelle stillingen verdi private Var currentScoreTween: Tween; offentlig funksjon ScoreDisplay () {addEventListener (Event.ENTER_FRAME, showScore, falsk, 0, true); } //Hvis utvikleren ikke vil koble denne klassen til et symbol, denne metoden må kalles offentlig funksjon createScoreField (): void {currentScoreField = new Textfield (); addChild (currentScoreField); } Offentlig funksjon setScore (_value: uint): void {poengsum = _value; tweenCurrentScore (); } Offentlig funksjon changeScore (_change: uint): void {poengsum + = _change; tweenCurrentScore (); } Private funksjon showScore (hendelse: Hendelse): void {currentScoreField.text = addCommas (currentScore); } Private funksjon tweenCurrentScore (): void {currentScoreTween = new Tween (dette ", currentScore", None.easeNone, currentScore, TRANSITION_LENGTH, true); } Private funksjon addCommas (_score: uint): String {//en streng, som vil ha stillingen komma Var scoreString: String = new String (); //mengden karakterer vår score (uten komma) har Div scoreLength. uint = _score.toString () lengde; scoreString = ""; //legge komma til strengen for (var i: uint = 0; i < scoreLength; i ++) {if (! (scoreLength-i)% 3 == 0 & & i = 0) {scoreString + = " "; } ScoreString + = _score.toString () charAt (i).; } Returnere scoreString; }}}
Vi er ferdig!
Og det er det! Du kan utvider denne klassen, og kanskje legge til noen lyder eller "fancy grafikk". Jeg håper du hadde en flott tid, og lært noe, hurra!