Avatar billede natro Nybegynder
31. december 2003 - 01:27 Der er 7 kommentarer og
1 løsning

score+1 drillerier

er der nogen der har erfaring med score/point-tælling i
små flash spil?
Jeg bruger følgende script, men det virker kun ved første sammenstød(hit) score-variablen forbliver derefter på 1 point, men det dur jo ikke...

onClipEvent (enterFrame) {
    if (this.hittest(_root.boynew.test) == true) {
        _root.score = _root.score+1;
    }
}
Avatar billede nikolajdu Nybegynder
31. december 2003 - 01:31 #1
onClipEvent (enterFrame) {
    if (this.hittest(_root.boynew.test) == true) {
        _root.score += _root.score+1;
    }
}
Avatar billede pyroman Nybegynder
31. december 2003 - 01:41 #2
øhh - nikolaj=> det er da ikke så smart så fordobler den da hele tiden scoren og lægger én til... går ikke ud fra at det er meningen...

onClipEvent (enterFrame) {
    if (this.hittest(_root.boynew.test)) {
        _root.score++;
    }
}

Kan ikke forstå hvorfor dit første script ikke virker... det burde det gøre - men dette er en lidt kortere måde at skrive det på...

/Filip
Avatar billede natro Nybegynder
31. december 2003 - 09:42 #3
pyroman => utroligt,det virker med din lille ændring!, men modsat min oprindelige er det en upræcis pointgivning, fordi man ikke kan angive hvor mange point scoren skal stige i forskellige situationer. score++ får blot scoren til at stige
Avatar billede barklund Nybegynder
31. december 2003 - 10:26 #4
_root.score++

er præcis det samme som:

_root.score = Number(_root.score)+1;

Jeg tror det er sket det, at din _root.score fra starten har været "", hvilket har resulteret i, at det er blevet til streng-konkatenering - altså _root.score er første gang blevet til "1", næste "11", "111" osv.

Og hvis dit tekstfelt så ikke har været så stort, så har du kun konstant kunnet se det første 1-tal.

Og årsagen til at pyroman's script pludselig virker lidt forkert er, at hittest sker så længe det to movieclips er over hinanden. Så hvis man rammer den begynder den at stige og holder først op, når man forlader den igen. Der skal nok laves lidt om til:

onClipEvent (enterFrame) {
    if (!over && this.hittest(_root.boynew.test)) {
        _root.score++;
        over = 1
    } else if (over && !this.hittest(_root.boynew.test)) {
        over = 1;
    }
}

Så trackes status hele tiden med...

// Barklund
Avatar billede pyroman Nybegynder
31. december 2003 - 10:46 #5
...Ja det kan godt være at du har kommet til at definere din score som en streng - dette kan du lave om ved at bruge:

score = Number(score);

og hvis du godt vil kunne ændre hvor mange point scoren skal stige med så kan du bruge:

score += stigning;
Avatar billede nikolajdu Nybegynder
31. december 2003 - 12:01 #6
pyroman jeg var vidst ikke helt ædru i går ;-)

Men nu vil jeg sige at _root.score++ ikke er nogen specielt god idé.

1. Hvis pointene kan ændre sig i f.eks andre levels
2. Hvis man finder ud af at 1 point ikke virker, men der skal 5 til.
Avatar billede natro Nybegynder
31. december 2003 - 12:15 #7
barklund=>> tak for den detaljerede forklaring, det udvidede script virker tilsyneladende smukt...
Avatar billede barklund Nybegynder
31. december 2003 - 12:17 #8
Tarker... og som filip siger, så kan du blot skrive:

onClipEvent (enterFrame) {
    if (!over && this.hittest(_root.boynew.test)) {
        _root.score += _root.stigning;
        over = 1
    } else if (over && !this.hittest(_root.boynew.test)) {
        over = 1;
    }
}

Og så sætte _root.stigning til hvad den nu bør være... ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester