Flash Tutorials zur Spieleprogrammierung?

Tropical

Mitglied
Hallo ;)
Wie der Thementitel bereits vermuten lässt suche ich Flash Tutorials. Insbesondere zur Spieleprogrammierung. Durch google habe ich gleich wieder hierher gefunden, doch leider finde ich in der Tutorials-Sektion nicht allzuviel zum Aufbau eines Spieles, auch wenn mir andere Artikel geholfen haben.

Also wichtig wäre für mich z.B. wenn ich einen MouseOver-Event bei einem Objekt habe, wie springe ich dann auf's nächste Level?
 
Hi,

Ich nehme mal an, es wird nicht leicht werden, "allgemeine" Tutorials zur Spieleprogrammierung zu finden, da die Vorgehensweise von Spiel zu Spiel unterschiedlich ist (und zwar oft komplett unterschiedlich). Was für ein Spiel willst Du denn gestalten?

Ein Beispiel ist die von Dir erwähnte Levelweiterleitung: Es kommt zunächst darauf an, wie Du Deine Level angelegt hast:
  • alle fest angelegt und zwar mit Zeitleisten, z.B. in unterschiedlichen Szenen
    --> über gotoAndPlay()

  • Unterschiedliche MovieClips, die eingeblendet oder instanziert werden
    --> über _visible oder attachMovie/removeMovieClip

  • Eine Engine, die sich ihre Daten aus einer externen Datei (z.B. XML) zieht (die Methode würde ich empfehlen)
    --> über entsprechende Initialisierungsmethoden

Nun unterscheiden sich ein Plattform-Shooter, ein Click&Point-Riddle, ein Breakout-Clone oder ein Textadventure wie gesagt im Aufbau oft recht grundlegend. Es existieren im Netz aber sicherlich viele Tutorials zu bestimmten Genres - wenn Du uns etwas mehr erzählst, können wir Dir sicher Tipps geben.

Gruß

P.S.: In der Tutorials-Sektion hat es von Jens-Uwe Bahr zumindest einen Weltraum-Shooter und eine Schachimplementation. ;)
.
 
Danke, erstmal für deine ausführliche Antwort.

Zu den drei Möglichkeiten: Warum empfiehlst du die Variante mit XML? Welche Vorteile habe ich dadurch? Ich würde nämlich gotoAndPlay() bevorzugen, klingt am leichtesten. :)

Hmm Typ von Spiel lässt sich schwer bestimmen, da es nicht so aufwendig sein wird, als das man es in eine Kategorie stopfen kann.

Eigentlich bräuchte ich denke ich nur onMouseOut() bzw. onMouseOver() und eben gotoAndPlay() oder eine der anderen Methoden. Kann ich mit Flash in einer Ebene einfach mehrere "Kästen" verbinden? Also das ich dann so eine Fläche habe:

|||||||||||||||||
|||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||||||||||||||

Kann ich dann einfach auf dieses Objekt nen onMouseOut() legen oder muss ich dabei etwas beachten?
 
Hi,

nunja - wenn Du jeden Level in einer Szene oder so selbst zusammenbaust, ist es aufwendig, hinterher etwas zu ändern. Oft gleichen sich ja unterschiedliche Levels in ein und dem selben Spiel zumindest im Aufbau und des Verhaltens. Wenn Du eine Engine schreibst, die nur externe Daten nachladen muss (z.B. Spielfiguren, Szenerie { Räume, Wege, Steine usw. }, Extras, Waffen etc.), kannst Du später einfacher Details ändern. Ausserdem kannst Du Dir einen Leveleditor schreiben, in dem Du dann einfach neue Level per Drag&Drop zusammenbauen kannst (so habe ich es z.B. für meinen Breakout-Clone [click] gemacht, da sich ja nur Steine, Extras und Hintergrund ändern müssen).

Zu Deiner Frage: Genau habe ich nicht verstanden was Du meinst - aus mehreren MovieClips eine Form zusammenstellen, die auf ein gemeinsames Mausereignis reagiert? Wenn zwischen den Clips keine Abstände sind, kannst Du alle zusammen wieder in einen MC packen und mit hitTest prüfen, ob sich die Maus darüber befindet. Andernfalls müsste man sich eine eigene Funktion dafür schreiben.

Gruß
.
 
Probieren geht über studieren, ich probier's einfach :)
Danke soweit für die Hilfe, ich melde mich gegebenenfalls später wieder.

btw. Dein Breakout funktioniert nicht ;)
 
... was verstehst Du unter "funktioniert nicht"? Bei mir läuft es prima. ;)

Kann aber sein, dass Du Flashplayer 7 brauchst, damit es läuft.

Gruß
.
 
Nunja bei mir kommt das:
Ein Zugriff auf den Server ist nicht möglich.

Die von Ihnen aufgerufene Adresse, http://www.ekto.net/karma/forum/breakout/breakout.html, ist im Moment nicht erreichbar. Bitte überprüfen Sie die korrekte Schreibweise der Webadresse (URL) und versuchen Sie dann die Seite neu zu laden.

etc. etc.
----------------------------
aber naja egal, hier geht's ja um mich :)

Ich habe nun ein Objekt gemacht -> in MovieClip konvertiert -> folgende Actionscript Anweisungen verwendet:
onClipEvent (enterFrame) {
trace("MouseIn");
}

Und jetzt werde ich mit "MouseIn"s zugebombt, bis ich den flash player wieder schließe. Welchen Anfängerfehler habe ich begangen? D=
 
Hi,

na ja, Du hast einfach eine onEnterFrame-Methode definiert, die kontinuierlich eine Trace-Aktion ausgibt. "Übersetzt" hieße das ungefähr:
Code:
Mach jeden Frameaufruf folgendes: {
    schreibe "MouseIn" ins Ausgabefenster
}

Im Anhang findest Du ein Beispiel, mit dem per hitTest abgefragt wird, ob sich die Maus über dem MovieClip befindet. In diesem Fall könntest Du natürlich auch die "normalen" Maushandler onRollOver und onRollOut verwenden:
PHP:
on(rollOver) {
    trace("Mouseover");
}

on(rollOut, releaseOutside) {
    trace("Mouseout");
}

Gruß
.
 

Anhänge

  • mouse_in.zip
    5,4 KB · Aufrufe: 17
na ja,

die Vorgehensweise in meinem ersten Beispiel ist eigentlich für Deine Anforderungen ungeeignet (sorry: hab in die falsche Richtung gedacht) - ich habe hier nochmal die einfache Version mit onRollOver usw. beigefügt.

Der Code sitzt auf der Instanz von "Blocks" und sollte eigentlich selbsterklärend sein. Wenn das nicht der Fall sein sollte: Bitte verstehe, dass wir hier nicht alle ActionScript-Grundlagen erklären können; das kann das Handbuch viel besser und ausführlicher leisten. Ein Blick in die Referenz unter "on()" bzw. onRollOver (und dann vielleicht noch einer unter "onEnterFrame") sollte eigentlich aufschlussreich sein.

Gruß
.
 

Anhänge

  • mouse_in2.zip
    5,2 KB · Aufrufe: 18

Neue Beiträge

Zurück