ROB BOWDEN: Hi. Είμαι Rob. Αναρωτιέστε πώς να εφαρμόσουν αυτό το παιχνίδι; Λοιπόν, ας ξεσπάσει η λύση του προσωπικού. Έτσι, ας πρώτα το κεφάλι κάτω για να το init λειτουργίες που σας είπαμε να εκτελέσει το πρώτο. Πρώτος θα ρίξουμε μια ματιά σε αυτό είναι init κουπί. Εντάξει, έτσι ώστε να θυμάστε ότι θέλουμε η κουπί να επικεντρώνεται ακριβώς σε το X-άξονα. Πρέπει λοιπόν να καταλάβουμε στην περίπτωση που πρέπει να πάει. Λαμβάνοντας υπόψη το πλάτος του διοικητικού συμβουλίου - το οποίο Επίσης, hash ορίζεται επάνω στην κορυφή - θα πρέπει να αφαιρέσουμε από το πλάτος κουπί και διαιρούνται με το 2, έτσι ώστε η κέντρο του πτερυγίου είναι το κέντρο του σκάφους. Να θυμάστε ότι η x-συντεταγμένη αναφέρεται σε η επάνω αριστερή γωνία της ρακέτας, και έτσι αυτό είναι ακριβώς όπου θέλουμε να είναι. Η συντεταγμένη y δεν έχει σημασία όσο γιατί μπορούμε να τοποθετήσουμε αυτό όπου θέλουμε. Γι 'αυτό και εμφανίσεων του κουπί, θέτουμε το μαύρο χρώμα, θέτουμε συμπληρώστε στο True έτσι είναι συμπληρωμένη ορθογώνιο, και στη συνέχεια προσθέστε το παράθυρο και την επιστροφή το κουπί. Και αυτό είναι για την προετοιμασία το κουπί. Είναι πρόκειται να είναι παρόμοια για init σκορ. Έτσι θα πάμε για να προετοιμάσει την ετικέτα, θα πάμε να ορίσετε το χρώμα για να ανοιχτό γκρι - μπορείτε να διαλέξετε ό, τι σας θέλουν - θα πάμε να ορίσετε τη γραμματοσειρά για να sans serif 48 - θα μπορούσε επίσης να πάρει ό, τι θέλετε - θα το προσθέσετε στο παράθυρο. Τώρα αυτή η αποστολή στην πλάτη δεν είναι πραγματικά αναγκαίο, είναι ακριβώς σε περίπτωση που κάτι άλλο συμβαίνει να συμπίπτουν την ετικέτα. Στη συνέχεια, όταν χρησιμοποιούμε Εντοπισμός σύγκρουσης, Εντοπισμός σύγκρουσης θα ανιχνεύσουν το άλλο πράγμα πριν ανιχνεύει την ετικέτα. Αλλά αυτό πραγματικά δεν πρέπει να επηρεάζει μας σε αυτό το πρόγραμμα. Τέλος, έχουμε αυτόν τον πίνακα Ενημέρωση λειτουργία που γράψαμε. Έτσι, ας ρίξουμε μια ματιά σε αυτό. Τώρα, εδώ βλέπουμε κάτι που είναι σχεδόν πανομοιότυπο με αυτό που είδαμε στο label.c. Έτσι έχουμε μια ετικέτα - ένα ρυθμιστικό χαρακτήρα των 12 χαρακτήρων, η οποία είναι ακριβώς αρκετό για να χειριστεί οποιαδήποτε ακέραιος, αρνητική ή θετική. Στη συνέχεια, χρησιμοποιούμε sprintf να αντιγράψετε το επισημαίνει σε αυτό το buffer. Έτσι είναι αυτό περιέχει ένα string που αντιπροσωπεύει ο αριθμός των σημείων. Τέλος, θέτουμε την ετικέτα σε αυτή τη χορδή. Και τότε θα πρέπει να κεντράρει την ετικέτα σε περίπτωση που έχουμε περάσει από εννέα έως 10 επισημαίνει και το έχουμε μετατοπιστεί. Έτσι υπολογίζουμε την x και y συντεταγμένες της ετικέτας η οποία θα να πάρει το πλάτος και το ύψος του παραθύρου. Αν και, θα μπορούσαμε επίσης να χρησιμοποιήσετε μόνο το σταθερές κατά πλάτος και ύψος hash ορίζεται επάνω στην κορυφή. Μπορούμε επίσης να πάρετε το πλάτος και το ύψος της ετικέτας και του χάσματος ότι από 2 έως κέντρο. Και τότε χρησιμοποιούμε Set Location πραγματικά το βάζουμε σε αυτή τη θέση. Έτσι, αυτό είναι για init σκορ. OK. Έτσι init σφαίρα πρόκειται να είναι πολύ παρόμοια σε init κουπιά, καθώς και. Βλέπουμε εδώ ότι είμαστε χρησιμοποιώντας newgoval προκειμένου να υπόσταση μια νέα σφαίρα. Και εδώ είμαστε με 2 φορές την ακτίνα όπως το πλάτος της μπάλας, και 2 φορές την ακτίνα καθώς το το ύψος της μπάλας. Τώρα, ακόμη και για newgoval, η x και y-συντεταγμένη ότι περνάμε πρόκειται να ανατρέξει στην επάνω αριστερή γωνία της μπάλα, η οποία είναι στην πραγματικότητα έξω από την ίδια τη μπάλα. Έτσι, προκειμένου να πάρει την μπάλα ακριβώς επικεντρώνεται στο διοικητικό συμβούλιο, θα πρέπει να περάσει πλάτος διαιρούμενο με 2 για το κέντρο, και Στη συνέχεια αφαιρούμε από την ακτίνα για να ωθήσει το πραγματικό κέντρο της σφαίρας σε το κέντρο του σκάφους. Και εμείς κάνουμε ακριβώς το ίδιο πράγμα για τον άξονα y, εκτός του ότι χρησιμοποιήθηκε ύψος αντί του πλάτους. Έτσι ώστε να τοποθετεί την μπάλα στο κέντρο. Και αυτό εμφανίζει την μπάλα, που η χρώμα σε μαύρο, συμπληρώστε την μπάλα, στη συνέχεια προσθέστε τελικά η παράθυρο και να επιστρέψετε. Και αυτό είναι για την προετοιμασία η μπάλα. Έτσι, τώρα ας ρίξουμε μια ματιά στο init τούβλα που είναι ελαφρώς πιο περίπλοκη, αλλά είναι αρκετά παρόμοια με init κουπί. Τώρα, πρώτα πρέπει να καταλάβουμε το πλάτος κάθε τούβλο. Θυμηθείτε ότι έχουμε μια σταθερή ονομάζεται κλήσεις που καθορίζει η αριθμό των στηλών των τούβλων ότι έχουμε. Έτσι, θα πάμε για να καθορίσει το πλάτος ενός ενιαίου τούβλο από τη λήψη του πλάτους ολόκληρου του διοικητικού συμβουλίου, αφαιρώντας από το μέγεθος του κενού μας - η οποία ορίζεται hash επάνω στην κορυφή και παραπέμπει με τον αριθμό των εικονοστοιχείων που θα πρέπει να είναι ανάμεσα σε κάθε τούβλο - και έτσι θα πάμε να έχουν ένα σύνολο φορές χάσμα καλεί κενές pixels σε μια ενιαία γραμμή. Και αυτό θα αναφερθεί και σε κάποιο κενό εικονοστοιχεία αριστερά και δεξιά του αριστερή στήλη και δεξιά στήλη τούβλο. Έτσι, την αφαίρεση της εν λόγω κενό pixels μας αφήνει με έναν αριθμό εικονοστοιχείων που τούβλα χρησιμοποιούν στην πραγματικότητα. Και τότε χωρίζουν από τις κλήσεις για να πάρει ο αριθμός των εικονοστοιχείων ανά τούβλο. Έτσι, εδώ έχουμε καθορίσει μια σειρά που μόλις καθορίζει τα χρώματα που θέλουμε για κάθε σειρά των τούβλων. Αν είχαμε περισσότερες σειρές τούβλων από χρώματα που καθορίζεται, θα δούμε ότι απλώς θα στραφεί προς τα πίσω γύρω και χρησιμοποιούν το κόκκινο και πάλι, και στη συνέχεια, πορτοκαλί και κίτρινο και ούτω καθεξής. Έτσι, όπως τα π-set υποδείξεις spec, είμαστε πρόκειται να βρόχο σε όλες τις γραμμές και στήλες των τούβλων. Αλλά πριν βρόχο που πάνω από τους κίονες, που Βλέπουμε εδώ ότι είμαστε προσδιορίζοντας το y θέση του κάθε τούβλο στη συγκεκριμένη γραμμή. Θα μπορούσαμε επίσης να κινηθεί αυτό στο δεύτερο για βρόχο, αλλά τότε θα ήμασταν απλώς να είναι από τον υπολογισμό της ξανά και ξανά και πάλι, όταν δεν χρειάζεται να. Έτσι ώστε η θέση Υ του τούβλου πρόκειται για το περιθώριο κέρδους, το οποίο είναι hash ορίζεται επάνω στην κορυφή και μόνο αναφέρεται στην χώρο ανάμεσα στην κορυφή του διοικητικού συμβουλίου και η αρχή όλων των τούβλων. Και θα πάμε για να προσθέσει ότι η σειρά ότι είμαστε σε φορές το ύψος ενός ατομική τούβλο συν το χάσμα δηλαδή μεταξύ κάθε τούβλο. Έτσι αυτό είναι επίσης μία κατακόρυφη χάσμα μεταξύ κάθε τούβλο. Και αυτό μας δίνει την y-συντεταγμένη του τούβλου. Έτσι, εδώ θα πάμε να υπολογίσει η χ-συντεταγμένη της τούβλο. Τώρα, έχουμε χάσμα διαιρείται με 2, δεδομένου ότι, θυμάμαι πριν, είπα ότι κατά την αριστερή πλευρά του σκάφους, θα πάμε να αφήσει λίγο χώρο. Έτσι κενό διαιρούμενο δια του 2 είναι ο χώρος. Και τότε είμαστε προσθέτοντας ότι η στήλη ότι είμαστε σε φορές το πλάτος συν διακένου, όπου το πλάτος είναι η ποσότητα του χώρου ότι ένα τούβλο καταλαμβάνει και τότε χάσμα είναι ο χώρος μεταξύ κάθε τούβλο. Έτσι ώστε να υπολογίζει το x-συντεταγμένη του τούβλου. Τώρα απλά πρέπει να συγκεκριμενοποιήσει το τούβλο δεδομένου ότι χ και y-συντεταγμένη χρησιμοποιώντας πλάτος που υπολογίζεται για κάθε ύψος τούβλα, και να σπάσει το οποίο είναι hash ορίζεται επάνω στην κορυφή. Θέσαμε το χρώμα του τούβλου. Ανακοίνωση είμαστε χρησιμοποιώντας ποικιλία χρωμάτων μας και είμαστε περνώντας στη σειρά που ήταν για mod χρώματα της αναμέτρησης η οποία πρόκειται να κάνει μας γυρίσει πίσω γύρω στο κόκκινο, αν έχουν περισσότερες σειρές από χρώματα. Τέλος, θα συμπληρώσετε το τούβλο το χρώμα και να το προσθέσετε στο παράθυρο. Και αυτό είναι όλο. Έτσι, αυτό είναι για όλους μας μεθόδων προετοιμασίας. Τώρα πρέπει να δούμε ότι, ενώ βρόχο που θα έπρεπε να συμπληρώσετε in Έτσι, εδώ βλέπουμε ότι αυτό είναι, ενώ μας βρόχο που πρόκειται να συνεχιστεί έως ότου το παιχνίδι είναι πάνω, που είτε μέσα τρέξουμε έξω από τη ζωή ή έχουμε ξεμείνει από τούβλα. Έτσι, το πρώτο πράγμα που έχουμε είναι μια Περιμένετε Κάντε κλικ. Έτσι, το παιχνίδι μας περιμένει πραγματικά να κάντε κλικ πριν η μπάλα αρχίζει να κινείται. Και μετά θα πάμε για να μειώσετε τη ζωή. Έτσι, αν είχαμε τρεις ζωές, τώρα είμαστε σε δύο ζωές, είμαστε χρησιμοποιώντας μας τρίτο της ζωής. Εμείς πάμε για να κεντράρει την μπάλα. Μέχρι τώρα, αυτό δεν είναι πραγματικά πρόκειται να βοηθήσει μας από την πρώτη κιόλας ζωή παίζουμε δεδομένου ότι η μπάλα είναι ήδη πρόκειται να έχουν επικεντρωθεί από τη στιγμή που θα instantiated αυτό. Αλλά βλέπουμε όταν καταλήγουμε να χάσει το ζωή και θηλιά γύρω από πίσω, τότε είμαστε πρόκειται να θέλουν να recenter την μπάλα από το κάτω μέρος του πίνακα πίσω το κέντρο. Έτσι, τώρα εδώ θα πρέπει να δημιουργήσει η ταχύτητα χ της μπάλας. Και, σύμφωνα με την προδιαγραφή, είμαστε χρησιμοποιώντας δ ραντ 48 για να δημιουργήσει κάποιο τυχαίο αριθμό για να καθορίσετε την ταχύτητα. Είμαστε προσθέτοντας ένα με αυτό δεδομένου ότι μόνο θέλουν την ταχύτητα στην περιοχή από μία σε δύο αντί από μηδέν έως ένα. Τέλος, είμαστε χρησιμοποιώντας δ ραντ 48 και πάλι προκειμένου να διαπιστωθεί αν η μπάλα πρόκειται να κινηθεί προς τα αριστερά ή το δικαίωμα να ξεκινήσει. Έτσι δ ραντ 48 επιστρέφει έναν τυχαίο αριθμό μεταξύ μηδέν και ένα, και έτσι ζητώντας αν αυτό είναι μικρότερο από 0,5, έχουμε ένα 50 50 πιθανότητα αλλαγής της ταχύτητας του η μπάλα να είναι αρνητικό. Τέλος, θέτουμε την κάθετη ταχύτητα του η μπάλα να είναι μόνο κάποια σταθερά. Έχουμε επιλέξει τρία. Και τώρα έχουμε μια άλλη θηλιά. Έτσι, αυτό είναι εσωτερικό βρόχο πρόκειται να συνεχιστεί. Προσέξτε εδώ, ενώ τούβλα είναι μεγαλύτερο από μηδέν - οπότε αν έχουμε ξεμείνει από τούβλα, έχουμε κέρδισε το παιχνίδι και μπορούμε να ξεφύγει από αυτόν τον βρόχο - και όλα Πάρτε y μπάλα κάτω από το ύψος μείον 2 φορές την ακτίνα. Έτσι αυτό είναι η αναγνώριση είναι αν η μπάλα τυχαίνει να πάει πέρα ​​από το κουπί, σε ποια περίπτωση που έχετε χάσει μια ζωή. Ψάχνετε μέσα σε αυτό για το βρόχο που έχουμε ο έλεγχος για ένα συμβάν ποντικιού. Και έτσι, αν υπάρχει ένα συμβάν ποντικιού, ότι σημαίνει ότι θέλουμε να ελέγξετε για να δούμε αν ο ποντικός μετακινήθηκε, και εφόσον η ποντίκι κινήθηκε, θέλουμε να έχουμε το κουπί να συμβαδίσει με το ποντίκι. Έτσι, για να γίνει αυτό, θα υπολογίσετε το νέο θέση της κουτάλας, το οποίο πρόκειται για να αρπάξει τη θέση του ποντικιού - που αρπάζει τη θέση χρησιμοποιώντας το γεγονός ότι είχαμε περάσει - και στη συνέχεια θα πάμε για την αφαίρεση της κουπί πλάτος διαιρούμενο με 2, έτσι ώστε η διαμονή κουπί με επίκεντρο το ποντίκι αντί της αριστερής πλευράς του πτερυγίου διαμονή στο κέντρο. Έτσι, τώρα θέλουμε επίσης να είμαστε σίγουροι ότι δεν πάει πάνω από την αριστερή πλευρά ή προς τα δεξιά πλευρά του σκάφους. Και έτσι εδώ είμαστε απλά ελέγχοντας αν τα κουπί θα είναι μακριά από την αριστερή πλευρά του το διοικητικό συμβούλιο, απλά να κολλήσει το στην αριστερή πλευρά. Και εδώ είμαστε, ελέγχοντας αν τα κουπί θα είναι πάνω από την δεξιά πλευρά του του σκάφους, ακριβώς ραβδί στη δεξιά πλευρά. Και τέλος, είμαστε στην πραγματικότητα που Η θέση του πτερυγίου. Τώρα, αν δεν υπήρχε μια κίνηση του ποντικιού, αυτό σημαίνει ότι θα πάμε να θέλετε να μετακινήσετε την μπάλα. Και έτσι έχουμε ήδη το x και η ταχύτητα y της μπάλας και γι 'αυτό το μετακινήσετε. Αλλά τώρα θέλουμε να ανιχνεύσει ένα ζευγάρι πράγματα. Έτσι, εδώ είμαστε ανίχνευση αν χτυπήσεις η αριστερή ή τη δεξιά πλευρά του του σκάφους, θέλουμε την μπάλα να αναπηδήσει. Και έτσι, σε αυτή την περίπτωση, θέτουμε x ταχύτητα με αρνητική ταχύτητα x. Αν η μπάλα χτυπήσει την κορυφή του διοικητικού συμβουλίου, Στη συνέχεια θέλουμε και την αναπήδηση μπάλα. Αλλά τώρα θέλουμε να αλλάξουμε η ταχύτητα y. Ανακοίνωση δεν έχουμε μια κατάσταση για η μπάλα χτυπήσει το κάτω μέρος του του σκάφους, δεδομένου ότι είχε ήδη συλληφθεί εδώ σε αυτό το βρόχο while. Τέλος, θέλουμε να εντοπίσει κάποια συγκρούσεις όπου αν το χτύπημα μπάλα είτε το κουπί ή το τούβλο, θέλουμε να κάνει κάποια ειδικά πράγματα περίπτωση. Έτσι, αν υπήρχε μια σύγκρουση, στην οποία περίπτωση τα αντικείμενα δεν θα είναι μηδενική, τότε, αν το αντικείμενο χτυπήσει την μπάρα, θα θέλαμε απλά θέλουν να σπάσουμε την μπάλα. Και εδώ, επίσης, θέσαμε τη θέση του η μπάλα λίγο πάνω από το κουπί. Παρατηρήστε ότι παίρνετε την θέση x του η μπάλα και απλά την επαναχρησιμοποίηση αυτό. Αλλά εδώ είμαστε να πάρει τη θέση του y του κουπί και μεταφορά της μπάλας πάνω από το κουπί. Αυτή είναι μια ειδική περίπτωση, έτσι ώστε η μπάλα δεν χτύπησε το κουπί και στη συνέχεια, πριν να είναι σε θέση να φύγουν από το κουπί, έναν άλλο βρόχο πηγαίνει γύρω και νομίζει ότι είναι ακόμα στον πίνακα και έτσι ώστε η ταχύτητα y που παίρνει πίσω αρνητικά και στη συνέχεια η μπάλα ακριβώς το είδος μπαστούνια γερός για το κουπί. Έτσι, αν δεν είχε χτυπήσει το κουπί, Στη συνέχεια θέλουμε επίσης να ελέγξετε αν χτυπήσει το τούβλο. Και έτσι αυτό είναι το πώς μπορούμε να ελέγξουμε για να δούμε αν μπορούμε να χτυπήσει ένα τούβλο. Θα πρέπει να ελέγξετε για αυτό, γιατί μπορεί να έχουν πράγματι χτυπήσει την ετικέτα και Δεν θέλετε να καταργήσετε την ετικέτα. Έτσι, αν έχουμε χτυπήσει ένα τούβλο, μπορούμε να αφαιρέσουμε ότι τούβλο από το παράθυρο, μείωση καταμέτρηση μας των τούβλων, αυξήσετε μας ορισμένα σημεία, και τώρα πρέπει να ενημερώσετε το σκορ που είναι ακριβώς το ίδιο όπως είδαμε πριν, όταν είδαμε init σκορ. Αλλά τώρα είμαστε απλά η ενημέρωση σκορ αφού αλλάξαμε το αριθμός των σημείων. Και θα πρέπει τώρα να εμφανιστεί ότι χτυπάμε ένα ακόμη διάλειμμα. Και τέλος, αν χτυπήσει ένα τούβλο θέλουμε επίσης να αναπηδήσει. Έτσι, τελικά, εμείς παύση ακριβώς έτσι ότι η μπάλα δεν κινείται εξαιρετικά γρήγορη και εμείς μπορεί να χτυπήσει πραγματικά με το κουπί μας. Και αυτό είναι λίγο πολύ αυτό. Έτσι τώρα θα ξαναγυρίζουν πίσω στην κορυφή αυτό το βρόχο, ενώ και συνεχίζουν μέχρι είτε θα χάσετε μια ζωή ή έχουμε ξεμείνει από τούβλα. Τι θα συμβεί αν χάσετε μια ζωή; Στη συνέχεια, θα πάμε για να βγείτε από αυτό, ενώ βρόχο, και θα δούμε βούληση βρόχο αντιγράφων ασφαλείας στην κορυφή του εξωτερικού βρόχου while. Σε αυτή την περίπτωση, θα πάμε να εκτελέσιμο αυτή τη ρύθμιση ξανά. Και αυτό που έχει συσταθεί θα πρέπει να μας περιμένετε για ένα κλικ, να ελαττώσει τον αριθμό μας της ζωής, recenter την μπάλα, να υπολογίσει εκ νέου ένα Χ και Υ της ταχύτητας, και στη συνέχεια να συνεχίσετε το παιχνίδι. Και έτσι, αυτό θα συνεχιστεί έως ότου είτε τούβλα καταλήγει να είναι λιγότερο από ή ίση με το μηδέν - περίπτωση κατά την οποία κερδίσαμε το παιχνίδι - ή ζωές είναι μικρότερη του μηδενός, στο οποίο περίπτωση έχουμε χάσει το παιχνίδι. Έτσι, τη στιγμή που αυτή είναι η περίπτωση, θα ξεσπάσει του εν λόγω βρόχο, ενώ και φτάνουμε εδώ όπου θα πάμε να περιμένουμε κλικ πριν την έξοδο από το παιχνίδι, έτσι ώστε η το παιχνίδι δεν κάνει ακριβώς αμέσως κλείσει για εμάς. Και τέλος θα κλείσουμε το παράθυρο και αυτό είναι όλο. Το όνομά μου είναι Rob, και αυτό ήταν Breakout.