Actionscript 3.0 für Anfänger: Lektion # 2

Wie hier versprochen wird die zweite Lektion in ActionScript 3.0! Heute starten wir die Analyse der ein einfaches Projekt, dass das Spiel oder das Tic Tac Toe Tic Tac Toe wiedergibt. Ich habe versucht, einige Besonderheiten in diesem Beispiel von ActionScript 3.0 und versuchte, einen Platz für das Verständnis und die nicht auf Stil geben, gehören. Daraus folgt, dass, wenn ich das "Spiel" wirklich geschrieben hatte, wäre ich wahrscheinlich sehr unterschiedlich strukturiert, aber in diesem Fall habe ich versucht, zwischen einem klassischen Programm mit einem kompakten, hermetisch verständlicher für Neulinge zu vermitteln. Ich habe ein einziges Dokument-Klasse, ist das Verfahren nicht notwendig, aber nützlich, um im Einklang mit den zu halten vorherigen Lektion .

Tic Tac Toe

Loading Flash ...

Die Quelle

Zusätzlich zu den ActionScript-Datei (. As) das Dokument-Klasse, die beginnen, hier im Detail zu analysieren will, ist das Projekt mit einem Standard-Flash-Film (. Fla), dass das Spiel-Interface sorgt. Alle Dateien, die benötigt wird, um die Kommentare zu den Kodex zu befolgen sind hier erhältlich .

Schematische Darstellung des Spiels

In dieser Version des Spiels habe ich nicht den Computer als Gegner, Aktivitäten, die Sie tun können, wenn Sie möchten, Leser fühlen. Die Frage, deshalb wechselt zwei Spieler, so wie wir sind auf einer Tafel oder auf ein Blatt Papier zu spielen. Das logische Schema, die folgen werden ist folgende:

Scheme Tic Tac Toe

Globale Vision

e il suo interno: Vor Beginn der eigentlichen Analyse des Codes ist gut, die Umrisse einer generischen Klasse, der sich aus sehen, package , class , und sein Interieur:

Scheme Tic Tac Toe

Document Class Hersteller

Wie wir erwarteten letzte Mal einen Film - -, wenn wir ein Flash-Dokument Link ein Dokument der Klasse, wobei letztere ein reales Objekt instanziiert werden, wird das System booten Sie den Hersteller.

1
2
3
4
5
6
7
8
9
/ **
* Konstruktor der Klasse
* /
TicTacToe ( ) : void { public function TicTacToe (): void {
/ / Set-Modus und Praktikum Praktikum Treppen ausrichten
scaleMode = StageScaleMode . NO_SCALE Praktika. scaleMode = StageScaleMode . NO_SCALE
align = StageAlign . TOP_LEFT ; Praktika align =. StageAlign TOP_LEFT.;
Event . ADDED_TO_STAGE , init ) ; addEventListener ( Ereignis . ADDED_TO_STAGE, init);
}

quando la nostra classe documento è aggiunta allo stage , cioè quando sarà visualizzata! Der Hersteller in diesem Fall setzt die stage , die die Container innerhalb eines Browsers ist, und fügen Sie den Aufruf der Funktion / Methode init() , wenn das Dokument auf unsere Klasse hinzugefügt wird stage , das heißt, wenn es angezeigt wird! Dies ist ein Standardverfahren, dass ich übernehmen oft. In einigen Fällen ist es völlig unnötig, aber wenn Sie Verwendung von Komponenten, das heißt, die visuelle Objekte in die Schnittstelle des Flash (wie TextArea, TreeView, etc. ...), diese nicht zur Verfügung (als Zeiger) zu machen, bis das Ereignis ADDED_TO_STAGE ist nicht freigegeben! So sicher zu sein, ist es immer ratsam, diesen Weg zu gehen, in Erwartung eines neuen Releases.

Für diejenigen, die einen trockenen objektorientierten Programmierung eigene, empfehle ich mindestens Klassen, Objekte und Instanzen !

: Die Funktion oder Methode, init() aufgerufen wurde private (siehe Actionscript 3.0 public, protected, private und interne ) durch das Schlüsselwort private :

1
2
3
4
5
6
7
8
9
10
/ **
* Methode aufgerufen, wenn der MovieClip auf die Bühne hinzugefügt wird
*
* @ Param {event} e = ging von addEventListener (). Kann null
* @ Return void
* @ Private
* /
init ( e : Event = null ) : void { private function init (e: Event- = null): void {
initCell ();
}

Denn jetzt, wie Sie sehen können, ist diese Funktion rufen Sie eine andere, initCell() . Oft in der Methode init() sind alle die Initialisierung Funktionen eingefügt, die Vermeidung direkt geben Sie den Code zu öffnen. Dies kann sich als nützlich für den Fall neu zu initialisieren einige Parameter zu kommen. Da es sich um ein Beispiel für ein relativ einfaches Spiel, kann es seltsam, diese doppelte springen fast nutzlos gewesen, aber in anderen Fällen die Methode init() können viel größer sein, indem eine Reihe von init-Funktionen wie:

1
2
3
4
5
6
7
8
9
init ( e : Event = null ) : void { private function init (e: Event- = null): void {
initBackground ();
initIntro ();
initPlayers ();
initScore ();
initEnemy ();
InitSound ();
; start ();
}

. Die Methode init() aufgerufen wird (dh genannt), wenn das System gibt die Veranstaltung ADDED_TO_STAGE . Aus diesem Grund war es den Parameter hinzugefügt e:Event .

Tricks Hinweise: Oft kann es passieren, um Methoden (z. B. haben init() ), die von beiden Ereignisse innerhalb der Code aufgerufen werden. Es ist genau aus diesem Grund, dass die Parameter dieser Methode gesetzt wurde e:Event = null . (a meno di “simularlo” con un notevole spreco di energie). Auf diese Weise, in der Tat, sollte sie jemals brauchen, nennen wir können init() , ohne jegliche Parameter, weil wir nicht ein Ereignis sind, und dann könnten wir nicht durch den Parameter e:Event (es sei denn, Sie "fake it" mit erheblichen Verschwendung von Energie ). Für Einzelheiten über die Verwaltung der Parameter in Actionscript 3.0, siehe auch: Topics und Standard-Variablen in Javascript, Actionscript und PHP und Actionscript 3.0 Themen-Variablen ,

Die Initialisierung des Spiels

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/ **
* Initialisieren einer linearen Anordnung, dass unser Netz stellen wird.
* Dieses "Grid" auf Null (0) ausgefallen, die angibt, dass keine
* Symbol (o / x) gemacht wurde.
* Der Spieler 1 (oder) den Wert eins (1) zugeordnet werden. Während der Spieler 2 (x) wird
* Mit dem Wert zehn (10) verbunden sind. Mit diesem Trick, wenn solche
* Summe der Werte in Zeile 1 gleich 3, werden wir wissen, wer gewonnen hat der Spieler 1.
* Wenn die Summe, sondern der Spalte 1 ist 30, dann gewann die 2-Spieler ... und so weiter.
*
* 0 | 0 | 0
* --+---+---
* 0 | 0 | 0
* --+---+---
* 0 | 0 | 0
*
* @ Param void
* @ Return void
* @ Private
* /
initCell ( ) : void { private function initCell (): void {
/ / Array of pre-set das Spiel auf Null
, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ; __cell = [0, 0, 0, 0, 0, 0, 0, 0, 0];
/ / Beginnt immer mit dem Player (Spieler) # 1
__player = 1;
/ / Zeichnen des Rasters auf dem Bildschirm
createGrid ();
/ / Show auf dem Bildschirm die Spieler an der Reihe (in diesem Fall 1)
= 'PLAYER ' + __player ; . turno_txt text = 'player' + __player;
/ / Diese Variable wird benutzt, um setzen das Spiel angehalten, wenn wahr
/ / Start-Spiel-
__stop = false;
}

Diese Methode initCell() übernimmt die Initialisierung aller Variablen und erstellen alle Objekte im Spiel.

Tricks Hinweise: fast alle Video-Spiele-Programmierer sind bestens vertraut mit der Technik der Kartierung der Spielfläche in ein Array mit einem oder mehreren Dimensionen. Diese Technik, die in sogenannten verwendet Tile Spiel ermöglicht es Ihnen, eine Reihe von Kontrollen in einem logischen von Grafiken in Video veröffentlicht laufen. Im konkreten Fall habe ich eine einfache eindimensionale Array besteht aus 9 Elementen welche die 9 Felder des Spiels. Die Tatsache, dass die Array-Elemente sequenziell sind, im Vergleich zu 3 x 3 Gitter, ist kein Problem, da sich zeigen wird, sondern nur eine Frage der Sicht!
Für diejenigen, die das interessante Thema vertiefen wollen, empfehle ich das Lesen Tile Based Games

Alle Variablen für den internen Gebrauch, auf globaler Ebene, bezeichnen Verwendung des doppelten Unterstrich vor. indicano rispettivamente il giocatore attivo e lo stato del gioco. Diese in der Tat, können in den ersten Entwurf einer Klasse öffentlichen Eigentums später geworden, mit der Verkapselung von seiner OO-Programmierung (siehe schreiben gute OO-Code in Adobe Flash ). __player und __stop bezeichnen die aktiven Spieler und das Spiel Zustand.

Für jetzt will ich hier aufhören! Das nächste Mal werden wir analysieren die Methode createGrid() und der Rest des Spiels, wenn Sie Fragen haben oder Kommentar zu diesem Teil.

4 Kommentare zu "Actionscript 3.0 für Anfänger: Lektion # 2"

  1. 28. September 2008 Actionscript 3.0 für Anfänger: Lektion # 3 | Undolog.com :

    [...] Analyse am Beispiel des Spiels Tic Tac Toe, in Actionscript 3.0 für Anfänger vorgestellt: Lektion # 2. Wir kamen auf die Funktion, dass das Spiel Raster erstellt: PLAIN TEXT [...]

  2. 4. November 2008 Billigflüge :

    Auch wenn ich nicht mag tic tac toe, da der erste Spieler gewinnt immer, wenn er seine Noten Macht über an den richtigen Stellen, wird Ihr tut großartig! Es gibt einige Punkte unklar für mich, aber ich hoffe, dass Sie die Website fastly übersetzen. Herzliche Grüße

  3. 11. November 2008 Actionscript 3.0 für Anfänger: Lektion # 4 | Undolog.com :

    [...] Unser Beispiel-Code für das TicTacToe (gefunden in voller Länge auf Google Code) und beginnen, sie in zu analysieren [...]

  4. 28. November 2008 dosa85:

    ontinuo nicht verstehen, wie man den Code einfügen .... ich kopieren und einfügen Fehler aber in der Regel in der AS-Datei ... .... Bha!

Hinterlasse einen Kommentar

XHTML TAG PERMIT: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERTION CODE:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Stoppen SOPA