Avatar billede mat Nybegynder
31. august 2001 - 09:15 Der er 14 kommentarer og
1 løsning

Duplicate mc.....

Jeg er igang med et \"arcadestyle\" flyspil....Og jeg kan ikke få lortet til at makke ret....
Problemet er at når man skyder \"opløser\" det næste skud det første. In effect, skal man vente til man har ramt et mål før man skyder efter det næste, og det er jo ikke helt meningen :)

Jeg har brugt følgende kode på flyet (insancenavn:clip):

onClipEvent(load){ 
_root.skud1._visible=false; 
skudCount=1; 

onClipEvent (enterFrame) {
    if (Key.isDown(Key.RIGHT)) {
this._x+=4;
    }
    if (Key.isDown(Key.LEFT)) {
this._x-=4;
    }
    if (Key.isDown(Key.UP)) {
this._y-=4;
    }
    if (Key.isDown(Key.DOWN)) {
this._y+=4;
    }
}
onClipEvent (mouseDown) {
count = 1;
while (count<20) {
_root.skud1.duplicateMovieClip(\"skud1x\"+count, count);
_root[\"skud1x\"+count]._x = _root.clip._x;
_root[\"skud1x\"+count]._y = _root.clip._x;
_root[\"skud1x\"+count].gotoAndStop (2);
_root[\"skud1x\"+count]._visible=true;
count += 1;

}
}

Og på skuddet:

onClipEvent (load) {
this._x = _root.clip._x;
this._y = _root.clip._y;
}
onClipEvent (enterFrame) {
if (this._y<0) 
{ this.removeMovieClip(); 
}
}

Inde i skud mc´et er der så i frame 2 en action der bevæger et \"skud\"object.

Hvor er jeg gået galt i byen her?
Avatar billede hoejrup Nybegynder
31. august 2001 - 09:50 #1
Du skal huske at sætte bevægelses beregningen på selve skuddet.

this._y += MoveSpeed

Normalt opløser skuddet hinanden fordi de ligge i den samme dybte.

/per
Avatar billede hoejrup Nybegynder
31. august 2001 - 09:53 #2
eks. på programlinier på et projektil:

onClipEvent (enterFrame) {
    if (this._name<>\"skud\") {
        this._y -= skudMoveSpeed;
        if (this._y<0) {
            _root.skudCounter--;
            this.removeMovieClip();
        }
        for (i=1; i<=_root.skudCounter; i++) {
            if (this.hitTest(_root.fjendensFly)) {
                _root.ramt = 1;
            }
        }

    }
}


/per
Avatar billede mat Nybegynder
31. august 2001 - 10:00 #3
Du mener altså at det scriptingen på skuddet den er gal med? Jeg forsøgte lige med:

onClipEvent (load) {
this._x = _root.clip._x;
this._y = _root.clip._y;
}
onClipEvent (enterFrame) {
if (this._y<0) 
{ this.removeMovieClip(); 
}
}

onClipEvent (enterFrame) {
this._y -= 10;
}


på skuddet, ingen forskel.
Avatar billede lobstar Nybegynder
31. august 2001 - 10:01 #4
Mener du at den næste salve (på 20 skud) opløser den første?

For det kunne hænge sammen med at den næste salve har både samme navn og samme dybde som den første salve.

Hvis det er her problemet ligger bør du indføre en \"global\" variabel som tæller hvilket nummer den nuværende salve har, og som så navngiver de enkelte skud i salven fx. således:

_root.skud1.duplicateMovieClip(\"skud\" + salveCount + \"x\" + count, count * salveCount);

...og så lave en salveCount++ før løkken med de 20 skud

/Lobstar
Avatar billede mat Nybegynder
31. august 2001 - 10:04 #5
Det er det første skud som opløser det næste osv osv, det er ikke engang tæt på salver :) Hvis det bare var så vel
Avatar billede hoejrup Nybegynder
31. august 2001 - 10:08 #6
Hvis du lægger en begrænsning på flyets AS, så det maksimalt kan skyde 20 skud adgangen. Så vil kuglerne ikke opløse hinanden.
Normalt opløser skud hinanden fordi de ligge i den samme dybde.

/per
Avatar billede hoejrup Nybegynder
31. august 2001 - 10:09 #7
Kan du ikke lave et link til din fla fil, så skal jeg nok kigge på det.

/per
Avatar billede mat Nybegynder
31. august 2001 - 10:12 #8
Den dersens dybde-ting kender jeg ikke til, kan du uddybe? Og hvordan undgår jeg det?



Avatar billede mat Nybegynder
31. august 2001 - 10:13 #9
Har du en email?
Avatar billede mat Nybegynder
31. august 2001 - 10:20 #10
Avatar billede hoejrup Nybegynder
31. august 2001 - 11:07 #11
Her er den færdige version, og lidt inspiration til dig.

http://www.kazoma.dk/eksperten/testing4.fla

/per
Avatar billede mat Nybegynder
31. august 2001 - 11:25 #12
Takker, og måske et lille tillægsspørgsmål:

Hvordan definerer jeg et max antal skud på scenen så man ikke kan \"spray´e\" skærmen? (Kun hvis du umiddelbart kan svare, selvfølgelig.)
Avatar billede hoejrup Nybegynder
31. august 2001 - 13:02 #13
Velbekomme, her er der en version, hvor du kun kan skyde 5 skud adgangen.

http://www.kazoma.dk/eksperten/testing5.fla

/per
Avatar billede mat Nybegynder
31. august 2001 - 13:09 #14
Du er en rigtig guttermand er du!
Avatar billede hoejrup Nybegynder
31. august 2001 - 13:19 #15
Tak

/per
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