PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
Webdesign: HTML/CSS, Responsive Design, Sass...
MOORHUHN KLON - teufelskreis mit lokaler variable für gegner
Beitrag
<blockquote data-quote="pdpdpd" data-source="post: 1504376" data-attributes="member: 291876"><p>Hallo Leute!</p><p></p><p>Seit ca. 2 Wochen bastel ich an meinem Moorhuhn-Klon als Projektarbeit. Bin sehr gut vorangekommen und finde AS 3 ziemlich cool. Es ist eigentlich schon fast alles fertig: Wechsel zwischen Szenen, Musik abspielen und stoppen, Trefferquotient ausgeben, Sonnenbewegung auf elliptischer Bahn, eine komplette Funktion für das Nachladen nach 6 Schuss. Ich bin stolz. Aber auf eine Sache, die mir zum Ende fehlt (und die das wichtigste ist!) komme ich einfach nicht.</p><p></p><p>Ich habe nun sehr lange an der addChild Funktion für meine Viecher gesessen, eh ich das verstanden habe.</p><p></p><p>Diese habe ich nun erfolgreich eingebunden und mir dann eine Bewegung für die Viecher erstellt. Hier der Code:</p><p></p><p></p><p></p><p><span style="font-size: 9px">addEventListener (Event.ENTER_FRAME, handleMakillaCreation);</span></p><p><span style="font-size: 9px">function handleMakillaCreation (event:Event):void</span></p><p><span style="font-size: 9px">{</span></p><p><span style="font-size: 9px"> <span style="color: Gray">//Gegner werden neben der Bühne hinzugefügt</span></span></p><p><span style="font-size: 9px"> if (enemyTime < enemyLimit) {</span></p><p><span style="font-size: 9px"> enemyTime ++;</span></p><p><span style="font-size: 9px"> } else {</span></p><p><span style="font-size: 9px"> var newMakilla = new GraphicMakillaAlive();</span></p><p><span style="font-size: 9px"> newMakilla.x = -1 * newMakilla.width;</span></p><p><span style="font-size: 9px"> newMakilla.y = int(Math.random()*(stage.stageHeight - newMakilla.height));</span></p><p><span style="font-size: 9px"> addChild (newMakilla);</span></p><p><span style="font-size: 9px"> <span style="color: Gray">//damit Fadenkreuz und Menüleiste nicht von Makillas verdeckt werden</span></span></p><p><span style="font-size: 9px"> MovieClip(root).setChildIndex (newMakilla,MovieClip(root).numChildren-17);</span></p><p><span style="font-size: 9px"> enemyTime = 0;</span></p><p><span style="font-size: 9px"></span></p><p><span style="font-size: 9px"> var speedX:Number = Math.random()*1+3;</span></p><p><span style="font-size: 9px"> var startY:Number = Math.random()*250;</span></p><p><span style="font-size: 9px"> var flightRadiusY:Number = Math.random()*250+70;</span></p><p><span style="font-size: 9px"> var flightAmplitude:Number = 0;</span></p><p><span style="font-size: 9px"> </span></p><p><span style="font-size: 9px"> addEventListener(Event.ENTER_FRAME, makillaMovement);</span></p><p><span style="font-size: 9px"> function makillaMovement (event:Event):void</span></p><p><span style="font-size: 9px"> {</span></p><p><span style="font-size: 9px"> newMakilla.x = newMakilla.x + speedX;</span></p><p><span style="font-size: 9px"> newMakilla.y = startY + Math.sin(flightAmplitude)*flightRadiusY;</span></p><p><span style="font-size: 9px"> flightAmplitude += Math.random()*0.005+0.012;</span></p><p><span style="font-size: 9px"> }</span></p><p><span style="font-size: 9px"> </span></p><p><span style="font-size: 9px"> newMakilla.addEventListener (MouseEvent.CLICK, handleMakillaHit); </span></p><p><span style="font-size: 9px"></span></p><p><span style="font-size: 9px"> function handleMakillaHit (event:MouseEvent):void</span></p><p><span style="font-size: 9px"> {</span></p><p><span style="font-size: 9px"> trace ("handleMakillaHit()");</span></p><p><span style="font-size: 9px"> handleMakillaDeath ();</span></p><p><span style="font-size: 9px"> }</span></p><p><span style="font-size: 9px"></span></p><p><span style="font-size: 9px"> function handleMakillaDeath ():void</span></p><p><span style="font-size: 9px"> {</span></p><p><span style="font-size: 9px"> newMakilla.gotoAndPlay ("death");</span></p><p><span style="font-size: 9px"> handleHitCounter ();</span></p><p><span style="font-size: 9px"> soundDead.play ();</span></p><p><span style="font-size: 9px"> <span style="color: Gray">//damit man ein Makilla nicht mehrmals abschießen kann</span></span></p><p><span style="font-size: 9px"> newMakilla.removeEventListener (MouseEvent.CLICK, handleMakillaHit);</span></p><p><span style="font-size: 9px"> }</span></p><p><span style="font-size: 9px"></span></p><p><span style="font-size: 9px"> function handleHitCounter ():void</span></p><p><span style="font-size: 9px"> {</span></p><p><span style="font-size: 9px"> hits ++;</span></p><p><span style="font-size: 9px"> hits_txt.text = "HITS: "+hits;</span></p><p><span style="font-size: 9px"> }</span></p><p><span style="font-size: 9px"> }</span></p><p><span style="font-size: 9px">}</span></p><p></p><p></p><p></p><p>so. mein PROBLEM ist:</p><p>da ich ja "gezwungen" bin, die Variable "newMakilla" innerhalb der funktion zu definieren, kann ich diese ja nicht außerhalb verwenden.</p><p></p><p>ich hatte aber schonmal außerhalb bereits funktionen definiert, die wenn die "munition=0" ist, den EventListener für den Abschuss entfernt, und wenn der Nachladevorgang abgeschlossen ist, wird er wieder hinzugefügt. das kann ich jetzt nicht mehr machen. man soll ja die biester nicht auch abknallen können, wenn die kanone alle ist. und nach dem reload sollte das schon wieder ordentlich klappen.</p><p></p><p>Ich wollte das nun auch schon da rein schreiben in die Funktion, aber das läuft nicht korrekt, da ja dann immer "onEnterFrame" der Eventlistener hinzugefügt wird.</p><p></p><p>Hat jemand einen Vorschlag wie ich das in Angriff nehmen kann?</p><p></p><p>Vielen Dank im Voraus.</p><p></p><p>pd</p></blockquote><p></p>
[QUOTE="pdpdpd, post: 1504376, member: 291876"] Hallo Leute! Seit ca. 2 Wochen bastel ich an meinem Moorhuhn-Klon als Projektarbeit. Bin sehr gut vorangekommen und finde AS 3 ziemlich cool. Es ist eigentlich schon fast alles fertig: Wechsel zwischen Szenen, Musik abspielen und stoppen, Trefferquotient ausgeben, Sonnenbewegung auf elliptischer Bahn, eine komplette Funktion für das Nachladen nach 6 Schuss. Ich bin stolz. Aber auf eine Sache, die mir zum Ende fehlt (und die das wichtigste ist!) komme ich einfach nicht. Ich habe nun sehr lange an der addChild Funktion für meine Viecher gesessen, eh ich das verstanden habe. Diese habe ich nun erfolgreich eingebunden und mir dann eine Bewegung für die Viecher erstellt. Hier der Code: [SIZE=1]addEventListener (Event.ENTER_FRAME, handleMakillaCreation); function handleMakillaCreation (event:Event):void { [COLOR=Gray]//Gegner werden neben der Bühne hinzugefügt[/COLOR] if (enemyTime < enemyLimit) { enemyTime ++; } else { var newMakilla = new GraphicMakillaAlive(); newMakilla.x = -1 * newMakilla.width; newMakilla.y = int(Math.random()*(stage.stageHeight - newMakilla.height)); addChild (newMakilla); [COLOR=Gray]//damit Fadenkreuz und Menüleiste nicht von Makillas verdeckt werden[/COLOR] MovieClip(root).setChildIndex (newMakilla,MovieClip(root).numChildren-17); enemyTime = 0; var speedX:Number = Math.random()*1+3; var startY:Number = Math.random()*250; var flightRadiusY:Number = Math.random()*250+70; var flightAmplitude:Number = 0; addEventListener(Event.ENTER_FRAME, makillaMovement); function makillaMovement (event:Event):void { newMakilla.x = newMakilla.x + speedX; newMakilla.y = startY + Math.sin(flightAmplitude)*flightRadiusY; flightAmplitude += Math.random()*0.005+0.012; } newMakilla.addEventListener (MouseEvent.CLICK, handleMakillaHit); function handleMakillaHit (event:MouseEvent):void { trace ("handleMakillaHit()"); handleMakillaDeath (); } function handleMakillaDeath ():void { newMakilla.gotoAndPlay ("death"); handleHitCounter (); soundDead.play (); [COLOR=Gray]//damit man ein Makilla nicht mehrmals abschießen kann[/COLOR] newMakilla.removeEventListener (MouseEvent.CLICK, handleMakillaHit); } function handleHitCounter ():void { hits ++; hits_txt.text = "HITS: "+hits; } } }[/SIZE] so. mein PROBLEM ist: da ich ja "gezwungen" bin, die Variable "newMakilla" innerhalb der funktion zu definieren, kann ich diese ja nicht außerhalb verwenden. ich hatte aber schonmal außerhalb bereits funktionen definiert, die wenn die "munition=0" ist, den EventListener für den Abschuss entfernt, und wenn der Nachladevorgang abgeschlossen ist, wird er wieder hinzugefügt. das kann ich jetzt nicht mehr machen. man soll ja die biester nicht auch abknallen können, wenn die kanone alle ist. und nach dem reload sollte das schon wieder ordentlich klappen. Ich wollte das nun auch schon da rein schreiben in die Funktion, aber das läuft nicht korrekt, da ja dann immer "onEnterFrame" der Eventlistener hinzugefügt wird. Hat jemand einen Vorschlag wie ich das in Angriff nehmen kann? Vielen Dank im Voraus. pd [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ★ = 12, ◇ = 4 und die Hälfte von ★ zu ◇ addiert wird, was ist das Ergebnis?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
Webdesign: HTML/CSS, Responsive Design, Sass...
MOORHUHN KLON - teufelskreis mit lokaler variable für gegner
Oben