Aproape toate jocurile de acolo folosesc un sistem de punctaj pentru a ajuta jucătorii să-și vadă progresul. Este esențial să se arate scorul jucătorului într-un mod clar și distractiv. În acest sfat rapid vom învăța cum să facem asta!
Faceți clic pe butonul pentru a adăuga 20.000 de puncte la scorul dvs.:
În acest sfat rapid vom învăța cum să creați un afișaj de scoruri. Pentru a îmbunătăți calitatea afișării noastre, vom face două lucruri:
În final, vom avea o clasă foarte simplă și utilă, pe care o puteți utiliza cu ușurință în cadrul oricăror proiecte pe care le desfășurați.
Această clasă se va ocupa numai de afișarea scorului, nu cu calcularea acestuia.
În primul rând, să creați clasa noastră; Am numit-o ScoreDisplay
:
pachet import flash.display.Sprite; clasa publică ScoreDisplay extinde Sprite funcția publică ScoreDisplay ()
Să adăugăm încet câteva variabile:
pachet import flash.display.Sprite; clasa publica ScoreDisplay extinde Sprite // scorul care se afiseaza, in timp ce creste publicul var currentScore: uint; // scorul jucătorului scor privat var: uint; funcția publică ScoreDisplay ()
Vom arăta scorul nostru într-un TextField
. Dacă doriți să utilizați un simbol atunci când lucrați cu ScoreDisplay
, nu va trebui să creați câmpul de text prin cod. Cu toate acestea, dacă nu doriți să utilizați un simbol, va trebui să apelați createScoreField ()
.
Amintiți-vă că dacă doriți să utilizați propriul dvs. Simbol, trebuie să dați câmpul de text din interiorul simbolului numele instanței currentScoreField
.
pachet import flash.display.Sprite; import flash.text.TextField; public class ScoreDisplay extinde Sprite // câmpul text care va arăta curentScore public var varScoreField: TextField; // scorul care este afișat, în timp ce este în creștere publice var currentScore: uint; // scorul jucătorului scor privat var: uint; funcția publică ScoreDisplay () // dacă dezvoltatorul nu va conecta această clasă la un simbol, această metodă trebuie să fie numită funcție publică createScoreField (): void currentScoreField = new TextField (); addChild (currentScoreField);
Acum, să începem să ne gândim ce vrem să facem cu noi ScoreDisplay
clasă. Am dori să putem stabili un scor, precum și să adăugăm sau să scăpăm din punctajul jucătorului. Deci, să creăm aceste metode!
pachet import flash.display.Sprite; import flash.text.TextField; public class ScoreDisplay extinde Sprite // câmpul text care va arăta curentScore public var varScoreField: TextField; // scorul jucătorului scor privat var: uint; // scorul care este afișat, în timp ce este în creștere privată var currentScore: uint; funcția publică ScoreDisplay () // dacă dezvoltatorul nu va conecta această clasă la un simbol, această metodă trebuie să fie numită funcție publică createScoreField (): void currentScoreField = new TextField (); addChild (currentScoreField); funcția publică setScore (_value: uint): void score = _value; funcția publică changeScore (_change: uint): void score + = _change;
Până acum, atât de bine, putem seta și schimba valoarea scorului. Dar cum vom arăta asta? Chiar dacă nu s-ar părea încă foarte util, vom folosi un ascultător de eveniment pentru introducerea cadrului. Nu vă faceți griji că va avea sens!
pachet import flash.display.Sprite; importul flash.events.Event; import flash.text.TextField; public class ScoreDisplay extinde Sprite // câmpul text care va arăta curentScore public var varScoreField: TextField; // scorul jucătorului scor privat var: uint; // scorul care este afișat, în timp ce este în creștere privată var currentScore: uint; funcția publică ScoreDisplay () addEventListener (Event.ENTER_FRAME, showScore, false, 0, true); // dacă dezvoltatorul nu va conecta această clasă la un simbol, această metodă trebuie să fie numită funcție publică createScoreField (): void currentScoreField = new TextField (); addChild (currentScoreField); funcția publică setScore (_value: uint): void score = _value; funcția publică changeScore (_change: uint): void score + = _change; funcția privată showScore (eveniment: Eveniment): void currentScoreField.text = String (scor);
Dacă ne-ar plăcea să folosim clasa noastră într-un proiect, ar arăta așa. Se pare că funcționează corect - scorul se schimbă - dar nu am terminat. Amintiți-vă ce vrem să facem?
Să începem cu primul gol, adăugând virgule.
pachet import flash.display.Sprite; importul flash.events.Event; import flash.text.TextField; public class ScoreDisplay extinde Sprite // câmpul text care va arăta curentScore public var varScoreField: TextField; // scorul jucătorului scor privat var: uint; // scorul care este afișat, în timp ce este în creștere privată var currentScore: uint; funcția publică ScoreDisplay () addEventListener (Event.ENTER_FRAME, showScore, false, 0, true); // dacă dezvoltatorul nu va conecta această clasă la un simbol, această metodă trebuie să fie numită funcție publică createScoreField (): void currentScoreField = new TextField (); addChild (currentScoreField); funcția publică setScore (_value: uint): void score = _value; funcția publică changeScore (_change: uint): void score + = _change; funcția privată showScore (eveniment: Eveniment): void currentScoreField.text = addCommas (scor); funcția privată addCommas (_score: uint): String // un șir, care va avea scorul cu virgule var scoreString: String = new String (); // cantitatea de caractere scorul nostru (fără virgule) are var scorul Lungime: uint = _score.toString () lungime; scoreString = ""; // adăugați virgulele șirului pentru (var i: uint = 0; i
Pasul 7: Tranziția între scoruri
Acum, să lucrăm la al doilea scop; trecerea între valorile scorurilor, în loc să se schimbe imediat noua valoare.
Pentru aceasta putem folosi capabilitățile minunate ale
Tween
clasă. De cele mai multe ori ne gândim la clasa Tween pentru mutarea obiectelor afișate, dar o puteți folosi pentru a schimba orice valoare numerică, inclusiv scorul nostru.pachet import fl.transitions.Tween; import fl.transitions.easing. *; import flash.display.Sprite; importul flash.events.Event; import flash.text.TextField; clasa publică ScoreDisplay extinde Sprite // cantitatea de timp (în ms) care este necesară pentru trecerea de la o valoare a scorului la altul static static const TRANSITION_LENGTH: uint = 500; // scorul care este afișat, în timp ce este în creștere publice var currentScore: uint; // scorul jucătorului scor privat var: uint; // câmpul text care va afișa currentScore private var currentScoreField: TextField; // aceasta va fi între valoarea actuală a scorului actual var currentScoreTween: Tween; funcția publică ScoreDisplay () addEventListener (Event.ENTER_FRAME, showScore, false, 0, true); // dacă dezvoltatorul nu va conecta această clasă la un simbol, această metodă trebuie să fie numită funcție publică createScoreField (): void currentScoreField = new TextField (); addChild (currentScoreField); funcția publică setScore (_value: uint): void score = _value; tweenCurrentScore (); funcția publică changeScore (_change: uint): void score + = _change; tweenCurrentScore (); funcția privată showScore (eveniment: eveniment): void currentScoreField.text = addCommas (currentScore); funcția privată tweenCurrentScore (): void currentScoreTween = nou Tween (aceasta, "currentScore", None.easeNone, currentScore, TRANSITION_LENGTH, true); funcția privată addCommas (_score: uint): String // un șir, care va avea scorul cu virgule var scoreString: String = new String (); // cantitatea de caractere scorul nostru (fără virgule) are var scorul Lungime: uint = _score.toString () lungime; scoreString = ""; // adăugați virgulele șirului pentru (var i: uint = 0; i
Au fost efectuate!
Si asta e! Ați putea extinde această clasă și puteți adăuga câteva sunete sau "grafice fanteziste". Sper că ai avut un timp minunat și ai învățat ceva, mulțumiri!