10. oktober 2005 - 12:59Der er
31 kommentarer og 2 løsninger
kun ét mc af gangen
Hej
jeg søger en løsning til et problem med dublicate MC. Jeg har et "laser skud" som MC som bliver dublicated ved et keypress på control. Men dette kan jeg gøre om og om igen hvorefter den enten genstarter skudet eller tilføjer et nyt, problemet i det ligger at der kune må være ét skud af gangen, dvs. hvis skudet "er på vej" skal et hit på control ikke gøre noget før skudet er væk. Det skal altså ikke genstartes eller affyre et nyt før det gamle skud er væk.
hvordan gør jeg dette ? 200 point til ideen der sender mig den rette vej. Behøver ikke at være ren actionscript løsning, måske bare en ide til hvordan...
Har forsøgt at sætte en skud "begrænser" ved at lave en global varialbel som så skal redceres til "1" når skudet fjernes, se nederst, men det virker ikke :-(
Dette script ligger på manden: Her er koden hvor jeg starter skudet:
det er sat til 1 som start, og skudet kan derfor affyres.... når skudet affyres ligges der én til så den har en værdi på 2 og næste skud kan ikke affyrres.... når skudet der blev affyrret fjernes (slutter) sættes den igen til 1 og der kan affyrres et nyt skud. MEN problemet er at jeg kan blive ved med at affyrre et nyt skud, så fjerner den dog det gamle og sætte et nyt fra den nye position.
har lige leget lidt med de flag, hvis jeg indsætter nogle flag i mit laser skud, hvorledes skal jeg så sætte min key.down action så den kan starte/ikke starte en ny ?
jeg har stærkt på fornemmelsen at denne værdi hurtigt bliver mindre og mindre da du jo hele tiden trækker SpillerEtLaserHastighed fra, - og når det sker on enterframe så går det altså hurtigt!!!
du har ret, den tæller bare nedaf for vildt også selvom første skud slet ikke er affyret ?!?? den skal selvfølgelig først starte når skudet falder, og nulstilles ved afslutning af skudet (removeMC)....
onClipEvent(enterFrame){ // hvis flaget er rejst så.... if(_global.SpillerEtLaserAntal == 2){
this._y-=SpillerEtLaserHastighed;
if(this._y<-30){ //Øverste grænseværdi // hvis vores laser har nået sin grænse så giver vi skyde knappen lov til at virke igen _global.SpillerEtLaserAntal = 1; this.removeMovieClip(); } }
hhhmmm ... jeg er ret sikker på at være tæt på løsnigen, men første gang jeg skyder afsender den 2 skud ?! den ene af de to blive hængende og forsvinder ikke ved øvre grænse, den anden forsvinder.
når jeg affyrer det næste skud står den stille og flytter sig kun én hastighed pr. "control" klik....
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.