PDA

Volledige versie bekijken : MC op positie afspelen bij hittest


peres
%Europe/Berlin %932 %2005, 23:22
Hey flashers,

Ik ben nou bezig met een spelletje. Ik ben al een heel eind gekomen. Colloision detection enzo werkt perfect; maar nou vroeg ik me af. Ik heb een MC met een animatie van een botsing. en nou had ik in gedachte: als ik met een MC tegen een andere bots, dat er op precies die positie de "botsing-MC" werd afgespeeld.

dit is de AS van de collision detection (hittest) die je kan besturen:

onClipEvent (enterFrame) {
if (this.hitTest(_root.MC)) {
if(!hit){
_root.hp.text = Number(_root.hp.text)-20;
hit = true;
if (_root.hp.text == 0) {
_root.MC5.gotoAndPlay(4);
}
}
} else {
hit = false;
}
}

hoe kan ik hier die functie aanmaken dat er bij een hittest een mc wordt geplaatst op de plaats en tijdstip van de botsing? en dat die MC ook maar 1 keer wordt afgespeeld, dus niet de hele tijd zolang ik op de andere MC blijf staan en de hittest functie aan blijft. Kan iemand mij hiermee helpen?

Dauntless
%Europe/Berlin %945 %2005, 23:41
Iets van

onClipEvent (enterFrame) {
if (this.hitTest(_root.MC)) {
if(!hit){
_root.hp.text = Number(_root.hp.text)-20;
hit = true;
if (_root.hp.text == 0) {
_root.MC5.gotoAndPlay(4);
_root.MC5._x = this._x;
_root.MC5._y = this._y;
}
}
} else {
hit = false;
}
}Op de laatste frame van je movieclip zet je:
this.swapDephts(1);
this.removeMovieClip();

peres
%Europe/Berlin %960 %2005, 00:03
die MC5 was iets anders trouwens, maar dat maakt niet uit. Ik heb jou manier toegepast:

onClipEvent (enterFrame) {
if (this.hitTest(_root.MC3.MC4)) {
if(!hit){
_root.hp.text = Number(_root.hp.text)-20;
_root.MC6.gotoAndPlay(2);
_root.MC6._x = this._x;
_root.MC6._y = this._y;
hit = true;
if (_root.hp.text == 0) {
_root.MC5.gotoAndPlay(4);
}
}
} else {
hit = false;
}
}

alleen nou komt die MC6 helemaal uit op een verkeerde positie...

de MC die de bovenstaande code draagt, staat ook weer in een MC. zo dus: _root -> MC1 -> MC2

en hij geeft via die AS de order aan _root -> MC6


volgens mij ligt het aan het feit dat de MC met de bovenstaande AS ook weer in een MC zit, en dat daarom de positiebepaling het niet doet... maar ik weet het niet zeker. weet jij het misschien hoe ik dit kan oplossen?

Dauntless
%Europe/Berlin %962 %2005, 00:05
Door het verschil van MC1's x en y te berekkenen t.o.v. de 0, 0 van de root...

peres
%Europe/Berlin %967 %2005, 00:12
dus ik moet een beetje spelen met de:

_root.MC6._x = this._x+???;
_root.MC6._y = this._y+???;

of is er toevallig een manier om dit af te lezen

peres
%Europe/Berlin %973 %2005, 00:21
nou ja ik heb em gewoon in de MC1 gezet en jou code toegepast, werkt even goed.

maar waarom moet deze code op de laatste keyframe van de MC?:


this.swapDephts(1);
this.removeMovieClip();