Flash-Spiel programmieren... Wer Hilft mir?

L

Lari1989

Hallo Zusammen!
Ich bin Grafik-Design-Studentin im 5. Semester und muss ein Flash-Spiel programmieren, für meine Semesterarbeit.
Ich arbeite mit Adobe Flash CS3 (ActionScript 2.0) und ich will vom Aufbau her dieses Spiel: http://www.gemoo.de/games/krebs-volleyball.html nachbauen. Habe schon alles schon gestaltet und muss es nur noch mit ActionScript-Codes programmieren.
Im Bereich ActionScript bin ich noch Anfängerin und möchte deshalb gerne wissen wie die Codes aussehen, ... :

1. ... damit der Ball im zufallsmodus vom rechten Krebs zum linken springt? (Bei meinem Spiel, wird der rechte Krebs stehen bleiben. Nur der linke wird sich von rechts nach links bewegen)

2. ... dass der Ball wie ein Gummiball springt, wenn er auf dem Krebs und auf dem Boden aufkommt?

3. ... dass der Krebs nur im linken Bildbereich laufen kann, also so dass er nicht durch die Mauer läuft?

Vielen Dank schon mal im vorraus und ich hoffe auf schnelle Hilfe!! :)
Gruss Lari

PS: Falls ihr mir Internetseiten schickt, bitte nur solche auf Deutsch. Bin der Englischen Sprache nicht so Mächtig ;)
 
Hey und herzlich Willkommen!
Am Besten postest du einmal deinen bisherigen Fortschritt. Wird bei der Bewertung auch der Code mit einbezogen? Wenn du das Postest - ich hab nur Flash 8, wäre gut wenn du die fla dafür exportierst.

1. Generell gilt bei einem Ball Einfallswinkel = Ausfallswinkel. Kennst du vielleicht von den komischen Screensavern. Ich würde dem Ball ein paar Variablen geben - Geschwindigkeit, Richtungsvektor. Die Richtung veränderst du immer bei einem Aufprall entsprechend dem Winkel. Die Geschwindigkeit kannst du bei einem Aufprall erhöhen (natürlich mit Begrenzngen). Dann vom Richtungsvektor immer ein wenig 'Gravitation' abziehen, also einen kleinen Vektor der genau nach unten zeigt ran rechnen. Dann bewegst du den Ball pro Frame einfach entlang des Vektors um den den Wert von Geschwindigkeit. Hoffe das ist nachvollziehbar erklärt :)

2. Das ist ein Kniff mit dem Richtungsvektor und der Geschwindigkeit dann. Ich würde probieren in diesen Fällen einen Sinus mit einzubauen.

3. Ganz einfach mit ner if-Abfrage, ob seine _x-Koordinate noch kleiner ist als die der Wand (oder größer als der linke Rand des Flashfilms)

Viel Erfolg noch
jens
 
Hi Jens!!
Vielen Dank für deine Antwort und sorry, dass ich erst jetzt antworte...
Ja, ich glaube schon, dass der Code mit in die Bewertung einfliesst.
Die Flashdatei ist leider zu gross um sie hier zu Uploaden. Könnte ich sie dir vielleicht auf deine E-Mail schicken?
Jedenfalls läuft jetzt mein linker Krebs ohne Probleme hin und her.
Bei Frage Nr.:

1. Kannst du mir vielleicht eine kleine einfache Flashdatei zusammenbasteln, damit ich ein kleines Beispiel hab? *liebfrag* Natürlich nur, wenn du Zeit hast.
Hab nämlich keine Ahnung wie der Code am schluss aussehen sollte und was rein kommt.

2. Ich lass das Springen wie ein Gummiball weg. Ist mir irgendwie zu viel :)

3. Wo/Wem/Was/Wie soll ich diese if-Abfrage schreiben?

Gruss Lari
 
Joa schick mir das ruhig mal. Ich schick dir meine eMail-Adresse per PM. Kann dir aber nichts versprechen.

/edit.

Also. Die Struktur deines Codes bisher lässt für ein solches Spiel sehr zu wünschen übrig. Es hat sich bei Spielen eigentlich bewährt, dass man eine Hauptschleife hat. Das heißt im Endeffekt eine Funktion, die bei jedem Frame aufgerufen wird und die dann berechnet, was wie passieren soll und dies auch auf die Objekte auf der Bühne anwendet.

Im Endeffekt geht es in dieser Schleife nur darum, was sie wann wie wohin bewegt. Mehr nicht. Problem kann dabei natürlich sein, dass es spezielle Restriktionen beim Bewegen gibt (Kollisionsabfragen) oder Gegner sich evtl etwas schlauer bewegen sollen (KI). Sowas brauchst du bei deinem Spiel nur in einem kleinen Maße.

Meine Empfehlung für dich wäre, ersteinmal auf der Hauptzeitleiste eine neue leere Ebene zu erstellen, die auch für immer leer bleibt. Diese nennst du Code und in das Schlüsselbild kommt all dein Code. Das ist viel übersichtlicher. Die oben genannte Schleife bekommst du ganz einfach durch ein:

Code:
_root.onEnterFrame = function() {
// bla
}

Dort hinein kommen dann die Bewegungen. Entferne dich von Uralt-Syntax wie onClipEvent() - das war vielleicht in Flash 5 noch ganz ok aber hat in Flash 8 nichts mehr zu suchen. Wenn deine Profs das sehen bekommen die ne Krise :)

Die Animation des Krebses hast du auch recht umständlich gemacht. Du kannst ihm einfach 2 Schlüsselbilder geben für die Animation (oder besser sogar noch mehr) und dann im AS per meinKrebs.play() starten und per meinKrebs.stop() oder meinKrebs.gotoAndStop(1) stoppen. Deine Architektur für diese Bewegung ist etwas ... um die Ecke. Wenn auch eine ziemlich gute Idee dahinter steckt :)

Dann kann man mit deinem Krebs noch einfach durch die Wand und aus dem Film raus gehen. Da kommt die if-Abfrage ins Spiel, die ich schonmal erwähnt habe. Die kommt in deinem bisherigen Fall hier hin:

Code:
if (Key.getCode() ==39 && _root.krebs._x > 0 && _root.krebs._y < 210) {
_root.krebs._x +=10;		
}

Ich hab das jetzt mit einer alten verschachtelt. && heißt, dass BEIDE bzw. ALLE Bedingungen erfüllt sein müssen. Nur dann bewegt sich der Krebs.

Ich hoffe ich konnte dir helfen. Für viel mehr hatte ich keine Zeit :)
 
Zuletzt bearbeitet:
Zurück