PDA

Volledige versie bekijken : min score werkt wel plus niet...


-Rutger-
%Europe/Berlin %567 %2007, 13:37
onClipEvent (enterFrame) {
if (hitTest(_root.ship)) {
_root.health.text+= 20;
unloadMovie(this);
}
}
Dat script staat op een pickup, maar in plaats van als health bijvoorbeeld op 60 staat 80 word word het dit: 6020... maar dit werkt wel:
onClipEvent (enterFrame) {
if (hitTest(_root.ship)) {
_root.health.text-= 4;
unloadMovie(this);
}
}
ik snap niet wat ik dan fout doe....

Nidd
%Europe/Berlin %571 %2007, 13:43
Bij een tekst 20 optellen is vrij moeilijk. Rekenen kun je het beste met variabelen doen. Dus of het tekstveld een variabele maken en hierbij 20 optellen. Of dynamisch een variabele aanmaken en met een onChanged event de tekst van het tekstvak gelijkstellen aan de variabele.

Niels.

-Rutger-
%Europe/Berlin %576 %2007, 13:50
Ik ben enorm slecht in die variable's ik snap daar echt niets van :S kan je me een beetje uitleggen hoe het werkt en hoe je dat maakt?

DoDo
%Europe/Berlin %589 %2007, 14:09
Ik zou het zelf zo doen:

var health:Number; // Je kan hier een waarde achter zetten
_root.health.text = health;

// Andere code
onClipEvent (enterFrame) {
if(hitTest(_root.ship)) {
health += 20;
_root.health.text = health;
}
}

// Weer andere code
onClipEvent (enterFrame) {
if(hitTest(_root.ship)) {
health -= 4;
_root.health.text = health;
}
}

Op deze manier houd je makkelijk bij hoeveel health er is.

Ik denk dat Daunthless nu wel weer zal zeggen dat je geen _root moet gebruiken, maar toch :P

Nidd
%Europe/Berlin %593 %2007, 14:14
Dat is inderdaad wat ik ongeveer bedoelde!
_root kun je het beste voorkomen! Het is het beste om vanaf het begin met _parent te werken. Dat levert later geen problemen, als de _root nog ns veranderd!

Niels.

Dauntless
%Europe/Berlin %604 %2007, 14:30
Ik denk dat Daunthless nu wel weer zal zeggen dat je geen _root moet gebruiken, maar toch :P
Geen _root & geen onClipEvent ;). (En dan toch zeker geen onClipEvent...)
http://www.flashfocus.nl/forum/showthread.php?t=6338#events (Laatste 3). In die artikels staat ook beschreven WAAROM het slecht is en je helpt jezelf door je AS te updaten. (Staat er ook in uitgelegd)

-Rutger-
%Europe/Berlin %605 %2007, 14:31
DoDo, hij doet het nog steeds niet :S

DoDo
%Europe/Berlin %608 %2007, 14:36
1. Kijk even naar de URL van Dauntless
2. Weet je wel zeker dat je hitTests het doen?
3. Wat doet het niet? Krijg je geen tekst of krijg je nog steeds 6020 i.p.v. 80?

-Rutger-
%Europe/Berlin %628 %2007, 15:05
Ik krijg geen hittest

DoDo
%Europe/Berlin %632 %2007, 15:10
Das ook logisch. Je hebt nergens staan wat een hitTest moet maken met _root.ship.

hitTest (MovieClip.hitTest method)

Maak er eens this.hitTest(_root.ship) van (of this vervangen door de instanceName die je wil laten hitten.

Verder zou ik toch zo snel mogelijk van die onClipEvent() af stappen als ik jou was. Maak er instanceName.onEnterFrame = function() { van

-Rutger-
%Europe/Berlin %637 %2007, 15:18
oke... ik heb nu dit: frame:var health:Number;
_root.health.text = health;

projectiel (die werkt goed):onClipEvent (enterFrame) {
if (hitTest(_root.ship)) {
_root.score.text-= 4;
unloadMovie(this);
}
}

pickup:onClipEvent (enterFrame) {
if (hitTest(_root.ship)) {
_root.health.text+= 20;
root.health.text = health;
unloadMovie(this);
}
}

maar hij telt niet 20 op maar hij unload wel al...