| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| dope Registriert seit: Aug 2002
Beiträge: 40
|
Hallo. Ich bastel gerade ein Spiel, bei welchem man mit einem kleinen Raumschiff Objekte anschießen kann. Mein Problem ist folgendes: Sowohl die Schussfunktion als auch die von oben runter fallenden Ziele werden mit duplicatemovieclip erstellt. Meine Frage lautet, wie mache ich die hittest Abfrage, da ja beide aufeinander treffenden Objekte dynamisch erzeugt werden und der Pfad bzw Name der Clips auf beiden Seiten variieren. |
| | |
| | #3 (permalink) |
| dope Registriert seit: Aug 2002
Beiträge: 40
|
So erzeuge ich die Schüsse: onClipEvent (mouseDown) { if (tiefe == 29) { tiefe = 1; } gNeuerName = "schuss" + tiefe; _root.schuss.duplicateMovieClip(gNeuerName, tiefe); tiefe ++; } ------------- So die Ziele: function duplicate(){ neuesziel = "ziel" + _root.tiefe2; // Neuer Name _root.mc_ziel.duplicateMovieClip(neuesziel, tiefe2); // Ziel wird dupliziert } Zwischen den beiden muss ich jetzt eine Kollisionsabfrage starten. |
| | |
| | #4 (permalink) |
| dope Registriert seit: Aug 2002
Beiträge: 40
|
ok ich habs soweit: for (i=0; i<=20; i++) { if(this.hitTest(eval("_root.schuss" + i))){ this.removeMovieClip(); trace("getroffen"+ i); } } Das funktioniert allerdings nicht bei allen Zielen ?? Ausserdem besteht noch das Problem, dass er bei einem Treffer alle bisher duplizierten MC´s löscht. Wie kann ich das verhindern ? Geändert von shuricAn (25-07-2003 um 14:42 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Apr 2002
Beiträge: 518
| ActionScript:
sollte so funzen [!getestet] grütze hnes |
| | |
| | #6 (permalink) |
| dope Registriert seit: Aug 2002
Beiträge: 40
|
Also ich hab das Skrip in den Movieclip des Ziels gepackt. Das läuft auch beinahe. Allerdings ist es so, dass wenn ich die Ziele in der Reihenfolge wie sie auftauchen treffe, dann ist der hittest erfolgreich und die punkte gehen hoch. Verfehle ich ein Ziel und treffe erst das darauffolgende, dann klappt der hittest ab da nicht mehr. for(i=0;i<30;i++){ if(this.hitTest(_root["schuss"+i])){ _root.punkte++; _root.t_punkte.text = _root.punkte; removeMovieclip(this); } } Im Klartext müssen momentan die Objekte genau in der Reihenfolge ihres Auftretens abgeschossen werden, ansonsten fliegt der Schuss einfach durch und der MC wird nicht gelöscht. Ich versteh es nicht... Geändert von shuricAn (25-07-2003 um 16:53 Uhr) |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Apr 2002
Beiträge: 518
|
ups hab nen tipfehler drinnen gehabt ActionScript:
und jetzt??? und wie erzeugst du deine gegner??? alle auf einmal?? Geändert von hnes (25-07-2003 um 19:59 Uhr) |
| | |
| | #8 (permalink) |
| dope Registriert seit: Aug 2002
Beiträge: 40
|
Gegner: Ich habe meinen AusgangsMC. Dieser bewegt oberhalb der Bühne zufällig, indem ich ihm per random alle paar Sekunden einen anderen _x Wert zuweise. Dieser wird dann alle paar Sekunden dupliziert und bewegt sich nach unten. Wenn der duplizierte mit dem Schuss kollidiert soll er verschwinden, was ich jetzt folgendermaßen gelößt habe: Skript liegt auf dem Ziel/Gegner ! PHP-Code: Wird der erste also nicht getroffen, kann ich keine Ziele mehr abschießen Ich versteh das nicht, bitte um euren Rat. Hier sehr ihr das Spiel: http://www.shurican.com/spiel.swf Geändert von shuricAn (26-07-2003 um 15:23 Uhr) |
| | |
| | #9 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Eigentlich sollte das so funktionieren, der Fehler scheint irgendwoanders zu sein. Vielleicht lädst du mal die Fla hoch. mfg .r
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #10 (permalink) |
| dope Registriert seit: Aug 2002
Beiträge: 40
|
Hier der File: www.shurican.com/spiel_fastfertig.fla |
| | |
| | #11 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Hallo shurican, da Problem war, dass du beim Erzeugen der neuen Ziele _root.tiefe2 benutzt, was es nicht gibt. Deshalb hiessen alle Ziele gleich, nämlich ziel und konnten nicht mehr einzeln angesprochen werden. Es muss nur tiefe2 heissen, dann klappt es. mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |