(page) REDIGERET 17 September 2009 • by admin

Point-system

Points – score

Edited 17 September 2009 • admin TOCbe the first to comment

Hermed beskrivelsen og en anvendelsesprocedure for implementering i eksisterende scripts.

Princippet i trin

  1. at definere variabler til points, maximum-værdi, minimum-værdi og start-værdi
  2. at ændre værdierne på passende tidspunkt
  3. at vise værdierne for bruger
  4. at chekke om værdierne har nået den afgørende værdi
  5. at udføre konsekvenserne deraf

Det er meget muligt, at du har brug for kun at tælle opad – eller nedad, men her går eksempel i begge retninger, som du kan tilpasse. Eksemplet kan udbygges til også at tælle liv.

Foreslået fremgangs-rækkefølge

Nogle ’sigende’ variabler

(hører til i øverste del af et script, for nemt at kunne ’skrues’ på) :

var winScore:Number = 10;
var loseScore:Number = -10;
 
var points:Number=0;

Et dynamisk tekstfelt til display

(På et score-lag i spil.scenariet med instancenavnet ’score_txt’).
Det kan tegnes med tekstværktøjet og indstilles til dynamisk i property panelet, hvor det også formateres med lidt prøve-tekst i. Det skal være tomt for tekst når du er færdig, for teksten blir scriptet frem.

Tekst-feltet kan evt. starte ud med en forklaring:

score_txt.text = "Get "+ winScore.toString() + " points!";

Ændring af værdier

Så stilles spørgsmålet:
Hvornår eller under hvilke omstændigheder skal points- værdien stige?

Det kunne fx. være hvis noget rammer noget andet, eller hvis en status-variabel er opfyldt, eller en boolean er blevet sat til true.
I den øskede situation, som regel inden for en if-condition, øges points med den ønskede værdi:

points += 1; 
// eller points=points+1; // eller points+1;

Hvornår eller under hvilke omstændigheder skal points- værdien falde?
Samme overvejelser for mistede points, og hvormange af gangen:

points - -; 
// eller med kompleksitet fx. points/(en brøkdel af den tid der er gået);

Nye spørgsmål:
Hvornår skal points’ene vises?
Tekstfeltet påkaldes, som vist nedenfor, fx. hver gang points’ene ændres.
Hvornår har man vundet eller tabt?
Eller som i dette eksempel: Hvilke top- eller bund- værdier skal points’ene sammenlignes med?
Hvad skal der ske hvis sammenligningen passer?

Eksempel

I simpel rækkefølge

points += 2;
score_txt.text = "Your points =  "+ points.toString() ;
if (points == winScore) {
// her slukkes for evt. igangsatte ENTER_FRAME listeners
    gotoAndStop("win");
}

- Og tilsvarende for minus-points.

I en udregnende function

//////////////
points += 2;
EVALUATE();
//////////////
points --;
EVALUATE();
//////////////
function EVALUATE():void {
    score_txt.text = "Your points =  "+ points.toString() ;
    if (points == winScore) {
        // her slukkes for evt. igangsatte ENTER_FRAME listeners
         gotoAndStop("win");
    }
    if (points == loseScore) {
        // også her slukkes for kørende ENTER_FRAME listeners
        gotoAndStop("lose");
    }
}