| |||||||
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) |
| Neuer User Registriert seit: May 2010
Beiträge: 8
|
Hallo Welt! ![]() ich habe mich nun daran gemacht eine erste einfache Kollisionsabfrage zu erstellen und bin daran... gescheitert. Sollzustand: Wenn der äußere Rahmen des Movieclips Player (Player hat auch seine eigene Klasse) den äußeren Rahmen von Moviclip Labyrinth berührt soll ein trace ausgegeben werden. Ist-Zustand: KEINE Fehlermeldung aber auch keine Kollision. Player Läuf hinter dem Objekt Labyrinth ohne trace vorbei. Es verhält sich so, als sei überhaupt keine Kollisionsabfrage im Hintergrund abgelaufen. Was ich gemacht habe: Dem Movieclip Labyrinth wurde eine eigene Klasse zugeordnet. In der Actionsscriptdatei steht folgendes: package de.mhmk.sfink.graphics{ import flash.display.MovieClip; import flash.events.*; import com.greensock.TweenLite; import flash.ui.Keyboard; import flash.display.*; public class labyrinth extends MovieClip { var Player:MovieClip = new MovieClip; var Labyrinth:MovieClip = new MovieClip; public function labyrinth():void { trace('Labyrinth constructed'); stage.addEventListener(Event.ENTER_FRAME, kollisionsabfrage); function kollisionsabfrage(evt:Event) { if (Player.hitTestObject(Labyrinth)) { trace("Kollision!") } } } } } Tabulatoren will der hier nicht nehmen ![]() Wo liegt mein Fehler? Soll ich die Datein irgendwo hochladen? Ich versuche mir die Logik von AS alleine ein wenig näher zubringen aber irgendwie habe ich noch kein Auge dafür. Also bitte für Anfänger erklären. Wäre eine Bitmapkollisonsabfrage vielleicht sinnvoll? Denn ganz per Hand mathematisch glaube ich nicht, dass ich das hinbekomme. Verzweifelte Grüße |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Sep 2006
Beiträge: 620
|
So wie ich das sehe erstellst du nur leere MovieClips mit deinem Code. Hast du die MCs schon auf deiner Bühne liegen? Falls ja klick diese an und gib denen in den Eigenschaften einen Instanznamen (in deinem Fall z.b. player_mc). Du kannst auch die MCs in deiner Bibliothek fürs exportieren vorbereiten und dann per AS-Code erzeugen. Bei nem Labyrinth-Spiel brauchst du das aber eigentlich nicht (?!). Du wirst allerdings mit 2 MC ein Problem haben mit der Abfrage da das Labyrinth-MC als Quadrat angesehen wird. Also müsstest du für jede gerade ein eigenen Begrenzungs-MC haben um genaue abfragen zu bekommen. Als alternative könntest du auch mit Arrays arbeiten um mögliche Wege zu definieren. Ich habe mich mit sowas allerdings noch nicht tiefer beschäftigt -> es könnte sein, dass es bessere Wege gibt. Aber vielleicht hilft das als Denkanstoß. MfG Monk
__________________ Flash CS5 / Flex 3 / Flashdevelop / FB 4.6 |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: May 2010
Beiträge: 8
|
Richtig, ich habe die Movieclips auf der Bühne erstellt. Der Labyrinth MC ist noch nicht das fertige Labyrinth sondern lediglich ein Baustein. Ich möchte das Labyrinth aus mehreren dieser Bausteine zusammensetzen. Daher ist die Kollisionsabfrage kein Problem, da es nur rechte Winkel gibt ![]() Wie exportiere ich denn den MC korrekt aus der Bibilothek auf die Bühe? Und das am besten gleich merfach. Geht das irgendwie mit AddChild? Bitte Hilfe mit Code... ich kann lesen, aber noch nicht so gut selbst zusammenschreiben... |
| | |
| | #4 (permalink) | |
| Neuer User Registriert seit: Sep 2006
Beiträge: 620
| Zitat:
Wenn du deine Mauern aus der Bibliothek holen möchtest musst du bei diesen in den Einstellungen eine Klasse angeben. Im AS-Code kannst du diese dann mit der Klasse aufrufen und der Bühne hinzufügen: PHP-Code: p.s. die LiveDocs von Adobe sind sehr zu empfehlen. Dort findet man auch sehr viele praktische Beispiele ![]() MfG Monk
__________________ Flash CS5 / Flex 3 / Flashdevelop / FB 4.6 | |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: May 2010
Beiträge: 8
| Ich glaube ich scheitere jämmerlich als Autodidakt...Jetzt mal eine ganz blöde Frage: Angenommen meine Klasse für die Bausteine heißt labyrinth. Kann ich dann in diese Klasse die Anweisungen zum initiieren der Movieclips schreiben? Sprich in die klasse labyrinth, mit der ich die Bausteine und den Player auf die Bühne schaffen möchte, var BausteinMC:labyrinth = new labyrinth(); stage.addChild(BausteinMC); oder muss ich dafür eine neue überstehende Klasse schreiben... und wie´verknüpfe ich diese dann mit dem Hauptfilm? Ich habe auch eine Mainklasse, da steht aber nicht wirklich etwas drin... sollte es dort hinein? Bitte um weitere Hilfe ![]() Und schoneinmal vielen Dank! |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Sep 2006
Beiträge: 620
|
Wenn du ein MC in deiner Bibliothek hast und diesem über "Eigenschaften" "Exportieren für AS" "Klasse" einen Namen gibst kannst du ihn über diesen Namen initialisieren. Also so wie du es oben geschrieben hast ![]() Das ganze ist denn nicht zu verwechseln mit externen Klassen ![]() MfG Monk
__________________ Flash CS5 / Flex 3 / Flashdevelop / FB 4.6 |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: May 2010
Beiträge: 8
|
Konkret: Wenn ich es einbinde kommt folgende Fehlermeldung: 1046: Typ wurde nicht gefunden oder war keine Kompilierungszeit-Konstante: Player. 1180: Aufruf einer möglicherweise undefinierten Methode Player. Bedeutet das, dass er die Klasse nicht findet? Ich habe es jetzt nochmal ohne Ordnerstruktur versucht Da klappt zumindest schonmal das exportieren. Ich werde nochmal ein bisschen rumprobieren... unser Dozent hat eine Ellenlange Ordnerstruktur angelegt...Und nächste Frage: Wie kann ich mehrmals den gleichen Movieclip importieren, durch verschiedene Variablennamen? Muss ich dann jedesmal eine Kollionsabfrage neu programmieren... nach dem schema: If kollidiert mit Movieclip1 tu das else if kollidiert Movieclip2.... ich werde sicher 50 Stück haben... kann ich die irgendwie in eine Gruppe zusammenfügen? Geändert von Lyssander (25-05-2010 um 09:56 Uhr) |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Sep 2006
Beiträge: 620
|
Wahrscheinlich liegt es daran, dass du die () Hinter deinem "movieClip" vergessen hast. Du willst da ja schließlich eine Funktion aufrufen: PHP-Code: MfG Monk
__________________ Flash CS5 / Flex 3 / Flashdevelop / FB 4.6 |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| actionscript 3, hittestobject, kollisionsabfrage |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Problem mit Kollisionsabfrage (Rennspiel) | Flughafen | ActionScript 1 | 2 | 11-08-2006 11:27 |
| Problem mit Kollisionsabfrage | millfoo | Flash MX 2004 | 2 | 06-06-2005 20:43 |
| problem mit kollisionsabfrage | digiknipser | Flash MX | 4 | 22-10-2004 22:32 |
| Problem bei Kollisionsabfrage | sparrow101 | ActionScript 1 | 3 | 16-07-2003 23:42 |
| Kleines Problem mit der Kollisionsabfrage. | CyberDyne | Flash 4 und Flash 5 | 1 | 24-06-2002 17:09 |