jeg har fået et script der gør præcis det der (fra en på IRC) men, det jeg gerne vil have er at den fortsætter ligeud, ud over kanten, og kommer ind igen på den anden side, ligesom rumskibet gør
jeg kedede mig, men helt enig, så kan saxe jo selv prøve at finde ud af hvordan ovenstående virker. Iøvrigt er det stadig langt fra et komplet arkanoid (som jeg formoder han gerne vil "lave") :)
det virker fint nok, men der er problemet så at denligger sig over min tekst, og det kan jeg ikke lave til et mc, for så virker det ikke! Jeg ser lige nærmere på det
Synes godt om
Slettet bruger
28. oktober 2003 - 14:05#15
sådan. Det virker nu. Men her er min hittest;
onClipEvent (enterframe) if (rock.hitTest(_root.rumskib)){ _root.lives--; } }
onClipEvent (enterframe) { if (this.hitTest(_root.rumskib)){ _root.lives--; } }
sådan :)
Synes godt om
Slettet bruger
28. oktober 2003 - 17:49#20
yeah det virker! Men problemet er at den ikke skifter frame når lives kommer ned på 0! jeg ved ikke hvorfor! her er min frame action: lives = 3; if(lives == 0){ gotoAndPlay(2); } else{ stop(); }
en frameaction udføres kun en gang, når playhead rammer framen. Hvis du vil tjekke lives kontinuerligt (som du bliver nødt til) skal tjekket ligge i et form for loop, det kan være et frameloop eller en enterFrame.
Synes godt om
Slettet bruger
28. oktober 2003 - 18:22#22
hvordan får jeg den til at gå til frame 2 hvis liv er på 0 eller derunder?
ja, okay det virker. jeg arbejder videre med spillet. mangler stadig nogle funktioner. F.eks. skyd.
Synes godt om
Slettet bruger
29. oktober 2003 - 17:40#28
Jeg har et problem med den der hittest kode. Jeg har lavet spådan at når man rammer en sten, eksploderer den. Men hvordan gør jeg sådan at den ikke har nogen hittest funktion når den eksploderer? Det er nemlig lidt irriterende at dø pga. nogle stumper
lav først et rumskib som er et moviclip kald det astro og skriv i astros actions skriver du: onClipEvent (load) { s = new Sound(); s.attachSound("prop"); u = int(1); z = int(0); lx = int(_root.cont._x); ty = int(_root.cont._y); rx = int(lx+_root.cont._width); by = int(ty+_root.cont._height); xprop = new Array(0); yprop = new Array(0); acce = new Array(z); prop = z; i = z; bul = new Array(); bulacc = int(10); _parent.bull._x = 5000; PI = Math.PI; _root.act = u; bulbs = int(3); varrot = int(20); _visible = z; spdel = z; pini = new Sound(_root.prop); } onClipEvent (keyDown) { // <! spara if (_root.act != u & spdel == z) { if (Key.isDown(32)) { b = int(bul.length); duplicateMovieClip("_parent.bull", "bul"+b, b+bulbs); bul[b] = eval("_parent.bul"+b); bul[b]._x = _x; bul[b]._y = _y; bul[b]._rotation = _rotation; spdel = int(6); } } // !>fine spara } onClipEvent (enterFrame) { // verifica attivita if (_root.act != u) { // iperspace if (Key.isDown(17)) { play(); _root.act = u; } // comandi if (Key.isDown(37)) { _rotation -= varrot; } if (Key.isDown(39)) { _rotation += varrot; } // arrow up if (Key.isDown(38)) { // verifica che non stia gia accellerando if (prop != u) { i = int(acce.length); } s.start(); prop = u; // aumenta l'accellerazione if (acce[i]<=20) { acce[i] = parseFloat(substring((acce[i]+1)*1.15, 1, 5)); } // setta la direzione per questa accellerazione if (Math.abs(_rotation) == 90) { xprop[i] = 0; } else { xprop[i] = parseFloat(substring(Math.cos(PI/180*_rotation), 1, 5)); } yprop[i] = parseFloat(substring(Math.sin(PI/180*_rotation), 1, 5)); } else { prop = int(0); } } // attrito delle propulsioni for (n=z; n<=i; n++) { if (~((n == i) & (prop == u))) { if (acce[n]>0.4) { acce[n] = parseFloat(substring((acce[n]*0.94), 1, 5)); } else { acce.splice(n, 1); xprop.splice(n, 1); yprop.splice(n, 1); } } // applica le spinte _x += xprop[n]*acce[n]; _y += yprop[n]*acce[n]; } // screen if (_x>rx) { _x = lx; } if (_y>by) { _y = ty; } if (_x<lx) { _x = rx; } if (_y<ty) { _y = by; } // <! bullets for (p=0; p<=bul.length; p++) { if (Math.abs(bul[p]._rotation) == 90) { bul[p]._x += z; } else { bul[p]._x += parseFloat(substring((Math.cos(PI/180*(bul[p]._rotation))*bulacc), 1, 5)); } bul[p]._y += parseFloat(substring((Math.sin(PI/180*(bul[p]._rotation))*bulacc), 1, 5)); // uscita di campo dei bullets if (bul[p]._y>by | bul[p]._x>rx | bul[p]._y<ty | bul[p]._x<lx) { removeMovieClip(bul[p]); bul.splice(p, 1); } } // !>fine bullets if (spdel>z) { spdel--; } updateAfterEvent(); // _root.veri = "roation ="+_rotation+newline+"sin ="+Math.sin(PI/180*_rotation)+newline+"act ="+_root.act+newline+"prop ="+prop+newline+"prop.length ="+acce.length+newline+"acce0 ="+acce[0]+newline+"acce1 ="+acce[1]+newline+"acce2 ="+acce[2]+newline+"acce3 ="+acce[3]+newline+"xprop0 ="+xprop[0]+newline+"xprop1 ="+xprop[1]+newline+"xprop2 ="+xprop[2]+newline+"xpropx.length ="+xprop.length+newline+"asteroLENGTH ="+_root.cont.astero.length+newline+"spdel ="+spdel; }
nu skal du oprette en kant(movieclip)kald den cont og klik to gange på cont og inde i cont laver du en sten(movieclip) kald den aster klik nu to gange et sted hvor der ikke er noget tryk nu på cont's actions og skriv:
lav nu nogle liv fx. en kopi af aster men kald den i stedet lives nu har du liv sten rumskib og en kant nu skal du skrive i framen skriv i frame 1:
fscommand("fullscreen", "true"); fscommand("allowscale", "false"); pino = new Sound(bull); pino.stop();
nu laver du point lav et dynamisk tekstfelt og det's variable navn skal være score og lav også et dynamisk tekst felt som skal hede(variablenavn)level lav et til dynamisk tekst felt og kald det(variablenavn) end
nu er du næsten færdig nu skal du klike to gange på aster og lav disse frame: i frame 1 skriver du: stop(); og lav så i frame 1 - 4 vender den sig lav nu frame nummer 5 - 7 her skal den komme frem igen når den er død skriv i frame 5:this._rotation = 270; for (i=0; i<=acce.length; i++) { xprop[i] = 0; yprop[i] = 0; } this._x = random(550); this._y = random(400); // while (ok<int(_root.cont.astero.length)) { // ok = 0; // for (i=0; i<=int(_root.cont.astero.length); i++) { // if (Math.sqrt((int(this._x)-int(_root.cont.astero[i]._x))*(int(this._x)-int(_root.cont.astero[i]._x))+(int(this._y)-int(_root.cont.astero[i]._y))*(int(this._y)-int(_root.cont.astero[i]._y)))<10) { // ok++; // } // } // }
lav nu frame 8 - 30 her dør du lav fx. en kniv igennem aster eller noget andet men skriv i frame 8: gotoAndStop(1); _root.act = 0;
gi også frame 8 - 30 et navn kald det distr lav nu frame 30 skriv: gotoAndPlay("5");
nu kliker du to gange hvor der ikke er noget nu skal den sidste ting laves det er så man kan skyde lav et movieclip og kald det bull nu kan du så ligge lyd ind i bull eller andre steder men det må du selv rode med
oh nej oh nej jeg har skrevet forkert oven over der står nemlig: nu er du næsten færdig nu skal du klike to gange på aster
nej nej der står aster der skal stå astro
Synes godt om
Ny brugerNybegynder
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.