[AS3] Jump n Run Project


Johny85

Grünschnabel
#1
Hallo,

ich bin neu hier. Ich habe ein AS3 project angefangen. leider gibt es da fehler mit dem hitTest und die Tastatur steuerung könnte besser sein.

Für Vorschläge bin ich offen die zur verbesserung und erweiterung des spiels beitragen.

Ich lade mal die Fla in ner zip hoch und hoffe Ihr könnt mir dabei helfen was daraus zu machen.

Vielen Dank
 

Anhänge

Jens B.

Erfahrenes Mitglied
#2
Hallo und Willkommen auf tutorials.de, Johny85!

Als erstes Projekt ist das doch schon ganz gut. Ich werd dir mal ein paar Denkanstöße geben

Ich mach in meinen Projekten für die Bewegung von Objekten immer gern einen Vektor und eine Geschwindigkeit. Den Vektor kann man dann mit einfacher Vektormathematik modifizieren und die Bewegung ist dann immer in etwa so in jedem Frame:

Code:
spielfigur.x += bewegungsvektor.x * geschwindigkeit;
spielfigur.y += bewegungsvektor.y * geschwindigkeit;
Du könntest so zum Beispiel bewirken, dass deine Spielfigur nicht beim Springen nach oben teleportiert wird und dann langsam fällt, sondern die Bewegung etwa einer Sinus-Kurve entspricht (du rechnest auf die y-Koordinate des Bewegungsvektors nen zeitabhängigen Sinus drauf und schon hast du ne schöne Sprungparabel).

HitTest ist für den Anfang ganz gut, schau mal unter folgendem Link habe ich mal ein Tutorial zu Kollisionstests geschrieben:
http://www.tutorialflash.de/flash-as3-kurs-teil-5-kollisionen-timer-textfelder/2/

Für das bewegliche Feld würde ich, wenn ein hitTest vorliegt, die Figur auf dem Ding verankern - sprich dann die x-Werte gleichsetzen und y-Werte konstant. Hier musst du noch etwas rumspielen, das ist noch garnicht gut gelöst bei dir.

Gruß
jens
 

Johny85

Grünschnabel
#3
Vielen Dank für die schnelle Antwort.

Der hitTest geht ja an sich nur kommt immer diese Meldung beim aufsammeln des Goldstückes:


ArgumentError: Error #2025: Das angegebene DisplayObject muss ein untergeordnetes Element des Aufrufers sein.
at flash.display:isplayObjectContainer/removeChild()
at Gold/frame21()
at flash.display::MovieClip/gotoAndStop()
at Water1_fla::Spiel_mc_1/enterFrameHandler()

mit dem bewegungsvektor versteh ich noch nicht so ganz aber das mit der Sinus kurve hört sich gut an
 

Jens B.

Erfahrenes Mitglied
#4
Debuggen. Am wichtigsten ist meist die oberste Nachricht: Das angegebene DisplayObject muss ein untergeordnetes Element des Aufrufers sein.
Dann die Zeile darunter: at flash.display:isplayObjectContainer/removeChild()

Du rufst also die Funktion removeChild() nicht richtig auf - das angegebene Objekt muss ein untergeordnetes Element des Aufrufers sein.
->Wer ist der Aufrufer?
->Wer ist das angegebene Objekt?
->Wem ist das angegebene Objekt untergeordnet?