Rask tips En enkel scorevisning for Flash-spill

Nesten alle spill der ute, bruker et scoring system for å hjelpe spillerne til å se deres fremgang. Det er viktig å vise spillerens score på en klar og morsom måte. I denne Quick Tip skal vi lære å gjøre nettopp det!


Introduksjon

Klikk på knappen for å legge til 20.000 poeng til poengsummen din:

I denne Quick Tip kommer vi til å lære å lage en scoringsvisning. For å forbedre kvaliteten på skjermen, skal vi gjøre to ting:

  1. Legg kommater til poengsummen vår, så den leser 1.600.000 i stedet for 1600000. Dette gjør det lettere for spilleren å finne ut hvor stor hans eller hennes poengsum er.
  2. Gjør vår poengovergang mellom verdier, i stedet for å endre umiddelbart. Dette gir spilleren en følelse av prestasjon, fordi han eller hun faktisk ser sin score vokse.

Til slutt vil vi ha en veldig enkel og nyttig klasse, som du enkelt kan bruke innenfor noen av dine prosjekter.

Denne klassen vil bare omhandle seg med å vise poengsummen, ikke med å beregne den.


Trinn 1: Opprette vår klasse

Først av, la oss lage vår klasse; Jeg har kalt den ScoreDisplay:

 pakke import flash.display.Sprite; offentlig klasse ScoreDisplay utvider Sprite offentlig funksjon ScoreDisplay () 

Trinn 2: Legge til våre scorevariabler

La oss sakte legge til noen variabler:

 pakke import flash.display.Sprite; offentlig klasse ScoreDisplay utvider Sprite // poenget som blir vist, mens det øker offentlig var currentScore: uint; // spillerens poengsum, private var score: uint; offentlig funksjon ScoreDisplay () 

Vi skal vise poengsummen vår i a Tekstfelt. Hvis du vil bruke et Symbol når du arbeider med ScoreDisplay, Du trenger ikke å opprette tekstfeltet etter kode. Men hvis du ikke vil bruke et symbol, må du ringe createScoreField ().

Husk at hvis du vil bruke ditt eget Symbol, må du gi tekstfeltet i det symbolet forekomstnavnet til currentScoreField.

 pakke import flash.display.Sprite; importer flash.text.TextField; offentlig klasse ScoreDisplay utvider Sprite // tekstfeltet som vil vise currentScore public var currentScoreField: TextField; // poenget som blir vist, mens det øker offentlig var currentScore: uint; // spillerens poengsum, private var score: uint; offentlig funksjon ScoreDisplay ()  // hvis utvikleren ikke vil koble denne klassen til et symbol, må denne metoden kalles offentlig funksjon createScoreField (): void currentScoreField = new TextField (); addChild (currentScoreField); 

Trinn 3: Endre og sette vårt poeng

La oss nå begynne å tenke på hva vi vil gjerne gjøre med vår ScoreDisplay klasse. Vi ønsker å kunne sette en poengsum, samt legge til eller trekke fra spillerens poengsum. Så la oss lage disse metodene!

 pakke import flash.display.Sprite; importer flash.text.TextField; offentlig klasse ScoreDisplay utvider Sprite // tekstfeltet som vil vise currentScore public var currentScoreField: TextField; // spillerens poengsum, private var score: uint; // poenget som blir vist, mens det øker private var currentScore: uint; offentlig funksjon ScoreDisplay ()  // hvis utvikleren ikke vil koble denne klassen til et symbol, må denne metoden kalles offentlig funksjon createScoreField (): void currentScoreField = new TextField (); addChild (currentScoreField);  offentlig funksjon setScore (_value: uint): void score = _value;  offentlig funksjon changeScore (_change: uint): void score + = _change; 

Trinn 4: Viser vårt poeng

Så langt så bra, kan vi nå sette og endre poengets verdi. Men hvordan skal vi vise dette? Selv om det kanskje ikke synes å være veldig nyttig, bruker vi en innrammet rammehendelse lytter. Ikke bekymre deg for det vil være fornuftig!

 pakke import flash.display.Sprite; importere flash.events.Event; importer flash.text.TextField; offentlig klasse ScoreDisplay utvider Sprite // tekstfeltet som vil vise currentScore public var currentScoreField: TextField; // spillerens poengsum, private var score: uint; // poenget som blir vist, mens det øker private var currentScore: uint; offentlig funksjon ScoreDisplay () addEventListener (Event.ENTER_FRAME, showScore, false, 0, true);  // hvis utvikleren ikke vil koble denne klassen til et symbol, må denne metoden kalles offentlig funksjon createScoreField (): void currentScoreField = new TextField (); addChild (currentScoreField);  offentlig funksjon setScore (_value: uint): void score = _value;  offentlig funksjon changeScore (_change: uint): void score + = _change;  privat funksjon showScore (event: Event): void currentScoreField.text = String (score); 

Trinn 5: Vår delvis ferdig klasse

Hvis vi ønsker å bruke vår klasse i et prosjekt, vil det se slik ut. Synes å fungere riktig - poenget endres - men vi er ikke ferdige. Husk hva vi ønsket å gjøre?

  1. Legg til kommaer til poengsummen vår, så den leser 1.600.000 i stedet for 1600000.
  2. Gjør vår poengovergang mellom verdier, i stedet for å endre umiddelbart.

Trinn 6: Legge til kommaer

La oss starte med det første målet, legge til kommaer.

 pakke import flash.display.Sprite; importere flash.events.Event; importer flash.text.TextField; offentlig klasse ScoreDisplay utvider Sprite // tekstfeltet som vil vise currentScore public var currentScoreField: TextField; // spillerens poengsum, private var score: uint; // poenget som blir vist, mens det øker private var currentScore: uint; offentlig funksjon ScoreDisplay () addEventListener (Event.ENTER_FRAME, showScore, false, 0, true);  // hvis utvikleren ikke vil koble denne klassen til et symbol, må denne metoden kalles offentlig funksjon createScoreField (): void currentScoreField = new TextField (); addChild (currentScoreField);  offentlig funksjon setScore (_value: uint): void score = _value;  offentlig funksjon changeScore (_change: uint): void score + = _change;  private funksjon showScore (event: Event): void currentScoreField.text = addCommas (score);  privat funksjon addCommas (_score: uint): String // en streng, som vil ha poenget med kommaer var scoreString: String = new String (); // antall tegn våre poeng (uten kommaer) har var scoreLengde: uint = _score.toString (). lengde; scoreString = ""; // legg kommasene til strengen for (var jeg: uint = 0; i 

Trinn 7: Overgang mellom poeng

La oss nå jobbe med vårt andre mål; overgang mellom scoreverdier, i stedet for å skifte til den nye verdien umiddelbart.

For dette kan vi bruke de fantastiske evnene til Tween klasse. De fleste ganger tenker vi på Tween-klassen for å flytte visningsobjekter, men du kan bruke den til å endre noen numerisk verdi, inkludert poengsummen.

 pakke import fl.transitions.Tween; importere fl.transitions.easing. *; importer flash.display.Sprite; importere flash.events.Event; importer flash.text.TextField; offentlig klasse ScoreDisplay utvider Sprite // hvor lang tid (i ms) som trengs for å overgå fra en poengsum til en annen en privat statisk const TRANSITION_LENGTH: uint = 500; // poenget som blir vist, mens det øker offentlig var currentScore: uint; // spillerens poengsum, private var score: uint; // tekstfeltet som vil vise currentScore private var currentScoreField: TextField; // dette vil tween nåværende score verdi privat var currentScoreTween: Tween; offentlig funksjon ScoreDisplay () addEventListener (Event.ENTER_FRAME, showScore, false, 0, true);  // hvis utvikleren ikke vil koble denne klassen til et symbol, må denne metoden kalles offentlig funksjon createScoreField (): void currentScoreField = new TextField (); addChild (currentScoreField);  offentlig funksjon setScore (_value: uint): void score = _value; tweenCurrentScore ();  offentlig funksjon changeScore (_change: uint): void score + = _change; tweenCurrentScore ();  privat funksjon showScore (event: Event): void currentScoreField.text = addCommas (currentScore);  privat funksjon tweenCurrentScore (): void currentScoreTween = ny Tween (dette, "nåværendeScore", None.easeNone, currentScore, TRANSITION_LENGTH, true);  privat funksjon addCommas (_score: uint): String // en streng, som vil ha poenget med kommaer var scoreString: String = new String (); // antall tegn våre poeng (uten kommaer) har var scoreLengde: uint = _score.toString (). lengde; scoreString = ""; // legg kommasene til strengen for (var jeg: uint = 0; i 

Vi er ferdige!

Og det er det! Du kan utvide denne klassen og kanskje legge til noen lyder eller "fancy grafikk". Jeg håper du hadde en flott tid og lært noe, skål!