Actionscript 3,0 για αρχάριους: μάθημα # 2
Τετάρτη, 3 Σεπτεμβρίου 2008Όπως είχε υποσχεθεί εδώ είναι το δεύτερο μάθημα ActionScript 3,0! Σήμερα θα ξεκινήσω την ανάλυση ενός απλού σχεδίου που παίζει το παιχνίδι της Tic TAC Tic TAC ή Toe Toe. Προσπάθησα να το τοποθετήσετε σε αυτό το παράδειγμα, ορισμένα χαρακτηριστικά των ActionScript 3.0, προσπαθώντας να δώσει χώρο για την κατανόηση, δεν στυλ. Συνεπώς, αν είχα να γράψω το "παιχνίδι" στην πραγματικότητα, κατά πάσα πιθανότητα θα έχουν τόσο πολύ διαφορετικά δομημένη, αλλά στην προκειμένη περίπτωση, έχω προσπαθήσει να μεσολαβήσει ανάμεσα σε ένα συμπαγές και κλασικής προγραμματισμού με πιο ερμητικού κατανοητό για αρχάριους. Έκανα μια ενιαία κατηγορία αρχείων, μια διαδικασία που δεν είναι απαραίτητες, αλλά χρήσιμο να διατηρηθεί σύμφωνα με το προηγούμενο μάθημα.
TAC Tic Toe
Πηγές
Εκτός από την ActionScript (αρχείο. Όσον) της κατηγορίας έγγραφα, τα οποία θα αρχίσουν να αναλύουν λεπτομερώς εδώ, το έργο είναι εξοπλισμένο με μια κλασική ταινία Flash (. Φλάνδρα) που προβλέπει τη διασύνδεση του παιχνιδιού. Όλα τα αρχεία που είναι απαραίτητα για να ακολουθήσει το σχόλιο του κωδικού είναι διαθέσιμες εδώ.
Περιγραφή του παιχνιδιού
Σε αυτή την εκδοχή του παιχνιδιού δεν έχω εγγραφεί υπολογιστή ως αντίπαλο, μπορείτε να εκτελούν δραστηριότητες που οι αναγνώστες σας αν θέλετε. Το παιχνίδι στη συνέχεια τους διακόπτες οι δύο παίκτες, όπως και αν παίζουν σε πίνακα ή σε φύλλο χαρτιού. Το πρόγραμμα θα ακολουθήσει τη λογική που έχει ως εξής:

Global Vision
Πριν την έναρξη της πραγματικής ανάλυσης του κώδικα είναι καλά δείτε την περιγραφή της γενικής κατηγορίας, που αποτελείται από τη package class και το εσωτερικό:

Κατασκευαστής της κλάσης του εγγράφου
Όπως είναι αναμενόμενο την τελευταία φορά, όταν ένα έγγραφο που να δεσμεύει Flash - μια ταινία - ένα έγγραφο τάξη, η οποία είναι ένα πραγματικό αντικείμενο να instantiate, το σύστημα θα ξεκινήσει τον κατασκευαστή.
- / **
- * Κατασκευαστής της κλάσης
- * /
- TicTacToe ( ) : void { δημόσια λειτουργία TicTacToe (): άκυρη (
- / / Ορισμός κλίμακας στάδιο λειτουργίας και εργασίας, συντάσσονται
- = StageScaleMode. NO_SCALE στάδιο. scaleMode = StageScaleMode. NO_SCALE
- = StageAlign. TOP_LEFT ; στάδιο. ευθυγράμμιση = StageAlign. TOP_LEFT?
- , init ) ; addEventListener (Event. ADDED_TO_STAGE, init)?
- )
Ο κατασκευαστής θέτει σε αυτή την περίπτωση το αντικείμενο stage το οποίο αντιπροσωπεύει το δοχείο μέσα σε ένα πρόγραμμα περιήγησης και να προσθέτει την πρόσκληση με τη λειτουργία / μέθοδος init() όταν μας τάξη έγγραφο προστίθεται στο stage γιατί θα εμφανιστεί! Αυτή είναι μια τυπική διαδικασία που θα εγκρίνει συχνά. Σε ορισμένες περιπτώσεις, είναι εντελώς περιττή, αλλά, εφόσον η χρήση των συστατικών, δηλαδή σε εκείνα τα αντικείμενα που υπάρχουν στο οπτικό Flash (όπως textarea, TreeView κ.λπ. ...), αυτών δεν θα είναι διαθέσιμα (όπως δείκτες) μέχρι l 'event ADDED_TO_STAGE δεν έχουν κυκλοφορήσει! Έτσι, για να έχετε ασφαλή, είναι πάντα μια καλή ιδέα να ακολουθήσει αυτή την πορεία για να προβλέψει ενδεχόμενες νέες απελευθέρωση.
Για το οποίο προτίθεται να στεγνώσει αντικείμενα, τουλάχιστον την ανάγνωση κλάσεις, αντικείμενα και Περιπτώσεις!
Η λειτουργία ή μέθοδο, init() ορίστηκε ιδιωτικά (βλ. Actionscript 3,0: δημόσια, προστατευόμενη, ιδιωτικές και εσωτερική), με τη λέξη-κλειδί private
- / **
- * Μέθοδος εφόσον το movieclip προστίθεται στο στάδιο
- *
- * @ Παράμ (γεγονός) = e αυξήθηκαν από addEventListener (). Μπορεί να είναι null
- * @ Επιστροφή κενό
- * @ Ιδιωτικός Τομέας
- * /
- init ( e :Event = null ) : void { λειτουργία ιδιωτικών init (e: Event = null): άκυρη (
- initCell ()?
- )
Για τώρα, όπως μπορείτε να διαπιστώσετε, αυτή η λειτουργία δεν κάνει τίποτα περισσότερο από μια άλλη κλήση, initCell() Συχνά στη μέθοδο init() περιλαμβάνονται όλες τις λειτουργίες αρχικοποίησης, αποφεύγοντας να εισάγετε τον κώδικα ανοικτό. Αυτό μπορεί να επιστρέψει χρήσιμο εάν χρησιμοποιηθεί εκ νέου για να αρχικοποιήσετε κάθε παραμέτρους. Δεδομένου ότι αυτό είναι ένα παράδειγμα ένα σχετικά απλό παιχνίδι, μπορεί να είναι παράξενο να έχει αυτό το διπλό άλμα σχεδόν άχρηστο, αλλά σε άλλες περιπτώσεις, η μέθοδος init() μπορεί να είναι πολύ ευρύτερο, γεγονός που απαιτεί μια σειρά από init λειτουργίες, όπως:
- init ( e :Event = null ) : void { λειτουργία ιδιωτικών init (e: Event = null): άκυρη (
- initBackground ()?
- initIntro ()?
- initPlayers ()?
- initScore ()?
- initEnemy ()?
- initSound ()?
- ; έναρξη ()?
- )
Η μέθοδος init() γίνεται επίκληση (δηλαδή ονομάζεται) όταν το σύστημα απελευθερώνει την περίπτωση ADDED_TO_STAGE Ακριβώς για το λόγο αυτό έχει προστεθεί για την e:Event
Κόλπα Σημείωση: μπορεί να συμβεί συχνά μεθόδους (όπως η
init()που θα ανακτώνται από τις δύο εκδηλώσεις, τόσο στο πλαίσιο του κώδικα. Ακριβώς για το λόγο αυτό, η παράμετρος της μεθόδου αυτής ήταν ναe:Event = nullΜε τον τρόπο αυτό, αν ήταν ποτέ χρησιμοποιείται, μπορούμε να καλέσετεinit()ΧΩΡΙΣ περνώντας κάθε παράμετρο, γιατί δεν είναι ένα γεγονός και τότε δεν μπορούσε να περάσει τηνe:Event(λιγότερο από το "προσομοίωση" από μια σημαντική σπατάλη ενέργειας ). Για λεπτομέρειες σχετικά με τη διαχείριση των παραμέτρων σε Actionscript 3.0, βλέπε επίσης: Θέματα μεταβλητές και αθετήσεις σε Javascript, Actionscript και PHP Επιχειρήματα μεταβλητών σε Actionscript 3.0,
Initialization του παιχνιδιού
- / **
- * Προετοιμάζει μια γραμμική σειρά που θα μας εκπροσωπήσει στο δίκτυο παιχνίδι.
- * Αυτό το "δίκτυο" είναι προκαθορισμένο στο μηδέν (0), η οποία δηλώνει ότι δεν
- * Είσοδος (ξ / x) έγινε.
- * Την 1η παίκτη (ες) θα πρέπει να αποδίδεται η αξία ενός (1). Αν και ο παίκτης 2 (x) θα είναι
- * Συνδεδεμένο με την αξία δέκα (10). Με αυτό το τέχνασμα, όταν π.χ.
- * Άθροισμα των τιμών της σειράς 1 είναι ίσο με 3, θα γνωρίζουν ποιος κέρδισε ο παίκτης 1η
- * Αν το άθροισμα αντί της στήλης 1 είναι 30, στη συνέχεια κέρδισε το 2 player ... και ούτω καθεξής.
- *
- * 0 | 0 | 0
- * --+---+---
- * 0 | 0 | 0
- * --+---+---
- * 0 | 0 | 0
- *
- * @ Παράμ άκυρη
- * @ Επιστροφή κενό
- * @ Ιδιωτικός Τομέας
- * /
- initCell ( ) : void { λειτουργία ιδιωτικών initCell (): άκυρη (
- / / Preset τη σειρά των παιχνιδιών με το μηδέν
- , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ; __cell = [0, 0, 0, 0, 0, 0, 0, 0, 0]?
- / / Πάντα ξεκινάει τον παίκτη (player) 1
- __player = 1?
- / / Με το πλέγμα στην οθόνη
- createGrid ()?
- / / Δείτε το βίντεο του παίκτη σειρά (στην προκειμένη περίπτωση 1)
- +__player; turno_txt. κείμενο = "PLAYER" + __player?
- / / Η μεταβλητή αυτή χρησιμοποιείται για να θέσει το παιχνίδι διακοπεί, αν ισχύει
- / / Έναρξη του παιχνιδιού
- __stop = false?
- )
Η μέθοδος αυτή initCell() φροντίζει για την έναρξη όλες τις μεταβλητές και να δημιουργήσουμε όλα τα αντικείμενα του παιχνιδιού.
Κόλπα σημείωση: όλα σχεδόν τα βίντεο προγραμματιστές εξοικειωμένοι με την τεχνική για να χάρτη της περιοχής για να παίξουν σε έναν πίνακα σε μία ή περισσότερες διαστάσεις. Η τεχνική αυτή, χρησιμοποιείται το λεγόμενο Tile παιχνίδι, σας επιτρέπει να εκτελέσετε μια σειρά ελέγχων σε μια λογική που εκλύονται από τα γραφικά στο βίντεο. Στη συγκεκριμένη περίπτωση θα χρησιμοποιείται μια απλή μονοδιάστατη σειρά αποτελείται από 9 στοιχεία αντιπροσωπεύει το 9 θέσεις του παιχνιδιού. Το γεγονός ότι στοιχεία του array είναι διαδοχική, σε σύγκριση με 3 x 3 πλέγμα, δεν είναι ένα πρόβλημα όπως θα δούμε, αλλά μόνο ένα θέμα άποψης!
Για εκείνους που θέλουν να εμβαθύνουν το ενδιαφέρον θέμα, η ανάγνωση Tile Βασισμένο Αγώνες
Όλες οι μεταβλητές για εσωτερική χρήση, παγκόσμιας κλάσης, χρησιμοποιήστε το δείχνουν με διπλό μέτωπο υπογράμμισης. Αυτά, μάλιστα, κατά το πρώτο σχέδιο της κατηγορίας θα μπορούσε στη συνέχεια να γίνει δημόσια περιουσία, με την ενθυλάκωση του OO προγραμματισμού (βλέπε γράψει καλό κώδικα OO στο Adobe Flash). __player Και __stop αναφέρουν την ενεργό παίκτη και την πορεία του παιχνιδιού.
Για τώρα θα σταματήσω εδώ! Την επόμενη φορά που θα συζητήσουμε την μέθοδο createGrid() και το υπόλοιπο του παιχνιδιού, σε περίπτωση που έχετε αμφιβολίες ή ερωτήσεις σχετικά με αυτό το μέρος σχολίασε.




















Actionscript 3,0 για αρχάριους: μάθημα # 3 | Undolog.com δήλωσε:
[...] Αναλύοντας το παράδειγμα του παιχνιδιού Tic Toe TAC, σε Actionscript 3,0 για αρχάριους: μάθημα # 2. Είχαμε φτάσει σε λειτουργία που δημιουργεί το δίκτυο του παιχνιδιού: απλού κειμένου [...]
Billigflüge δήλωσε:
Ακόμη και αν δεν μου αρέσει TIC TAC toe, διότι ο πρώτος παίκτης κερδίζει πάντα, αν κάνει την σήματα σχετικά με το δικαίωμα σε τόπους, σας tut είναι ωραία! Υπάρχουν ορισμένα σημεία ασαφές για μένα ακόμα, αλλά ελπίζω ότι θα μετατρέψουν το site γρήγορα. Όμοια αφορά
Actionscript 3,0 για αρχάριους: μάθημα # 4 | Undolog.com δήλωσε:
[...] Η δική μας κωδικό TicTacToe δείγμα (το οποίο είναι εξ ολοκλήρου στο Google Κώδικα) και να αρχίσουμε να αναλύουμε σε [...]
dosa85 δήλωσε:
ontinuo δεν καταλαβαίνω πώς να εισάγετε τον κωδικό μου .... λάθη όταν αντιγράψετε και να επικολλήσετε το αρχείο ως συνήθως ... .... BHA!