>> ROB BOWDEN: Hallo.
Ich bin Rob.
Sie fragen sich, wie man dieses Spiel zu implementieren?
Nun, lassen Sie brechen aus das Personal Lösung.
>> Also, lassen Sie uns zuerst dem Kopf nach unten in die init Funktionen, die wir Ihnen, erzählte
ersten implementieren.
Erste, das wir nehme einen Blick es ist bei init Paddel.
Alles klar, so denken Sie daran, dass wir wollen, dass die paddeln, um genau zentriert werden
die x-Achse.
Also müssen wir herausfinden, wo das sollte gehen.
>> Angesichts der Breite der Platte - die wird auch Hash-up definiert top -
müssen wir subtrahieren das Paddel Breite und durch 2 teilen, so dass die
Mitte der Paddel ist in der Mitte der Platine.
Beachten Sie, dass bezieht sich die x-Koordinate zu die obere linke Ecke des Paddels,
und so ist dies genau dort, wo wir es haben wollen.
Die y-Koordinate ist egal so viel, weil wir platzieren können
es, wo immer wir wollen.
Also haben wir Instanziieren der Paddel, setzen wir die Farbe schwarz, Set füllen wir auf True
so ist es ein Rechteck gefüllt, und wir dann zum Fenster und fügen Sie es Rück
das Paddel.
Und das ist es für die Initialisierung das Paddel.
>> Es wird ähnlich sein init Anzeigetafel.
So werden wir, um das Label zu initialisieren, wir gehen, um die Farbe zu setzen
lichtgrau - können Sie wählen, was auch immer Sie wollen - werden wir die Schriftart eingestellt
Grotesk 48 -
könnte auch holen, was Sie wollen -
wir werden es in das Fenster einfügen.
Nun, das den Hintergrund ist nicht wirklich notwendig, es ist nur für den Fall etwas
anderes passiert, um das Label zu überlappen.
Dann, wenn wir erkennen Collision, Collision Detect wird die anderen erkennen
Sache, bevor es erkennt das Etikett.
Aber das ist wirklich nicht zu beeinträchtigen, sollten uns in diesem Programm.
>> Schließlich haben wir dieses Update-Anzeiger Funktion, die wir geschrieben haben.
Werfen wir also einen Blick auf die.
Nun, hier sehen wir etwas, das ist fast identisch, was
wir sahen in der label.c.
Also haben wir ein Etikett -
ein Zeichenpuffer von 12 Zeichen, die gerade genug zu einem handhaben ist
Integer, negativ oder positiv.
Dann benutzen wir sprintf zu kopieren weist in diesem Puffer.
So s diese eine Zeichenfolge enthält die Anzahl von Punkten.
>> Schließlich haben wir das Label zu dieser Zeichenfolge.
Und dann brauchen wir, um das Label zu zentrieren bei haben wir von neun auf 10 gegangen
Punkte, und wir haben es verschoben.
So berechnen wir die x-und y-Koordinaten des Etiketts wird die
erhalten Breite und die Höhe dem Fenster.
Obwohl wir auch einfach könnte die Konstanten Breite und Höhe Hash
bis oben definiert.
Wir bekommen auch die Breite und Höhe des Etiketts und teilen
dass um 2 bis Zentrum.
Und dann verwenden wir Ort einstellen, um tatsächlich es in diesem Ort.
Das ist es also für die init Anzeigetafel.
>> OK.
So init Ball wird sehr ähnlich zu sein zum Paddeln sowie init.
Wir sehen hier, dass wir mit newgoval , um einen neuen Ball zu instanziieren.
Und hier sind wir mit 2 mal der Radius als die Breite der Kugel und 2
fachen des Radius wie die Höhe der Kugel.
Nun auch newgoval, die x-und y-Koordinate, dass wir in wird passieren
an die Spitze der linken beziehen Ball, das ist eigentlich
außerhalb der Kugel sich.
Also, um den Ball genau bekommen in der Platte zentriert, müssen wir weitergeben
Breite von 2 zur Mitte geteilt, und subtrahieren Sie dann aus den Radius zu drücken
das eigentliche Zentrum der Kugel in der Mitte der Platine.
Und wir tun genau dasselbe für die y-Achse, mit der Ausnahme,
Höhe statt Breite.
>> Damit legt sich den Ball in der Mitte.
Und diese instanziiert den Ball, setzen Sie das Farbe auf Schwarz, füllen in der Kugel,
dann schließlich an die ADD Fenster und gibt es zurück.
Und das ist es für die Initialisierung die Kugel.
>> So, jetzt wir einen Blick auf init lassen Ziegel, die etwas mehr ist
kompliziert, aber es ist ziemlich ähnlich init Paddel.
Nun, zuerst müssen wir herausfinden, die Breite jeder Ziegel.
Denken Sie daran, dass wir eine konstante genannt haben Anrufe, die gibt die
Anzahl der Spalten der Steine dass wir haben.
Also, wir gehen, um die Breite zu bestimmen eines einzelnen Ziegel, indem sie die Breite
der gesamte Vorstand, Subtraktion aus der Größe unserer Lücke -
die Hash ist bis oben definiert und bezieht sich der Anzahl der Pixel,
sollte zwischen zwei Backstein sein -
und so werden wir insgesamt haben Lücke mal ruft leere Pixel in ein
einzelne Zeile.
Und das wird auch zu einem gewissen Leer beziehen Pixel nach links und rechts von der
linken und rechten Spalte Ziegel.
>> So subtrahieren diese leere Pixel lässt uns mit einer Anzahl von Pixeln,
Ziegelsteine ​​sind tatsächlich mit.
Und dann teilen wir durch Anrufe zu bekommen, die Anzahl der Pixel pro Ziegel.
Also hier ein Array definieren wir, dass nur gibt die Farben, die wir wollen für jeden
Ziegelreihe.
Wenn wir mehr Reihen von Ziegelsteinen als Farben, die wir festgelegt, wir werden sehen
dass wir einfach wieder um und Schleife verwenden wieder rot und dann orange und
gelb und so weiter.
>> So, wie die p-spec gesetzt Hinweise sind wir gehen, um eine Schleife über alle Zeilen und
Spalten der Steine.
Aber bevor wir eine Schleife über die Spalten, die wir hier sehen, dass wir die Angabe der
y-Position jedes Ziegel in der jeweiligen Zeile.
Wir könnten auch bewegen diese in die zweite for-Schleife, aber dann würden wir nur sein,
tun, die Berechnung über und über wieder, wenn wir nicht brauchen, um.
>> So dass die y-Position der Ziegel wird zu Marge, die Hash ist sein
bis oben definiert und bezieht sich auf die gerade Raum zwischen der Spitze des Vorstandes und
der Anfang aller Steine.
Und wir werden noch hinzufügen, dass die Zeile dass wir auf Fache der Höhe ein
einzelnen Ziegel plus die Lücke ist, dass zwischen den einzelnen Backstein.
So ist dies auch eine vertikale Lücke zwischen jedem Backstein.
Damit gibt uns die y-Koordinate der Backstein.
>> Also hier werden wir berechnen die x-Koordinate der Ziegel.
Jetzt haben wir seit Lücke geteilt durch 2, vor sich erinnern, sagte ich, dass bei der
linken Seite des Brettes, wir gehen um ein wenig Platz zu verlassen.
So Lücke geteilt durch 2 ist, dass Raum.
Und dann wir hinzufügen, dass die Spalte dass wir mal auf Breite plus
Spalt, wo Breite der Platz dass eine einzelne Ziegel nimmt und
Lücke dann ist der Raum zwischen den einzelnen Backstein.
So berechnet, dass die X-Koordinate der Backstein.
>> Jetzt müssen wir nur noch die instanziieren Ziegel da die x-und y-Koordinaten
mit Breite, die wir für jeden berechnet Backstein, und das ist Pause Höhe
Hash-up definiert Spitze.
Wir setzen die Farbe der Ziegel.
Beachten Sie, wir sind mit unseren Farben-Array und wir sind in der Zeile, waren vorbei
auf mod num Farben, die gehen, dass wickeln uns wieder um auf rot, wenn wir
haben mehr Zeilen als Farben.
Schließlich werden wir in der Ziegel füllen Farbe und es in das Fenster einfügen.
>> Und das ist es.
Also, das ist, dass es für alle unsere Initialisierung Methoden.
Jetzt müssen wir schauen, während in diesem Schleife, die Sie hatten zu füllen in.
So, hier sehen wir, dass dies unser während Schleife, die gehen, bis weiter
Spiel vorbei ist, die entweder mittels wir von Leben laufen oder
wir laufen aus Stein.
>> Also erste, was wir haben ist ein Warten Klicken Sie auf.
Also das Spiel auf uns wartet, um tatsächlich klicken Sie auf, bevor der Ball in Bewegung setzt.
Und dann werden wir um Leben zu verringern.
Also, wenn wir hatten drei Leben, jetzt sind wir bis auf zwei Leben, sind wir mit unserer
drittes Leben.
Wir werden den Ball zu zentrieren.
So, jetzt, das ist nicht wirklich zu helfen uns am ersten Leben, das wir spielen
da der Ball geht schon auf wurde aus wenn wir zentriert haben
instanziiert es.
Aber wir sehen, wenn wir am Ende verlieren die Leben und Schleife wieder um, dann sind wir
gehen, um den Ball aus rieren zu wollen die Unterseite der Platine wieder auf
das Zentrum.
>> So, jetzt müssen wir hier erzeugen die x Geschwindigkeit des Balls.
Und nach der Spezifikation verwenden wir d rand 48 einige Zufallszahl
um die Geschwindigkeit angeben.
Wir fügen ein, um, da wir nur wollen, dass die Geschwindigkeit im Bereich von einem
zwei anstelle von Null auf Eins.
Schließlich sind wir mit d rand 48 wieder in Um festzustellen, ob die Kugel
wird sich nach links zu bewegen oder das Recht zu starten.
>> So d rand 48 liefert eine Zufallszahl zwischen null und eins, und so, indem er
wenn es das ist weniger als 0,5, haben wir eine 50 50 Möglichkeit der Umschaltung der Geschwindigkeit
Der Ball negativ.
Schließlich setzen wir die Vertikalgeschwindigkeit der Ball nur einige konstant.
Wir haben drei.
Und jetzt haben wir eine weitere Schleife.
>> Also das innere Schleife ist gehen, um fortzufahren.
Beachten Sie hier, während Ziegel größer als Null ist -
also, wenn wir aus Stein laufen, haben wir gewann das Spiel, und wir können
brechen aus dieser Schleife -
Holen Sie sich und alle y-Ball weniger als die Höhe minus 2 mal der Radius.
Also, was ist dies zu erkennen ist, wenn die Ball passiert, vorbei an der Paddel zu gehen, in
welcher Fall Sie ein Leben verloren.
>> Blick ins Innere dieser for-Schleife haben wir die Prüfung für ein Maus-Ereignis.
Und so, wenn ein Maus-Ereignis, dass bedeutet, dass wir zu überprüfen möchten
ob die Maus bewegt wurde, und wenn die Maus wurde bewegt, wir haben wollen, die
Paddel halten mit der Maus.
Also, um das zu tun, berechnen wir die neue Position der Paddel, die gehen
, um die Position der Maus zu greifen - was packt die Position mit den
Fall, dass wir uns übergeben wurden -
und dann werden wir subtrahieren Schaufelbreite geteilt durch 2, so dass die
Paddel Aufenthalte auf der Maus zentriert anstatt der linken Seite des Paddels
bleiben zentriert.
>> So, jetzt wollen wir auch sicher sein, dass wir nicht über die linke Seite oder rechts gehen
Seite der Platine.
Und hier sind wir nur überprüfen, ob die Paddel würde von der linken Seite sein
der Vorstand, nur kleben es an der linken Seite.
Und hier werden wir prüfen, ob die Paddel würde über die rechte Seite der sein
Pension, kleben Sie es einfach auf der rechten Seite.
Und schließlich, wir tatsächlich eingestellt die Lage der Paddel.
>> Nun, wenn es nicht eine Mausbewegung, das bedeutet, dass wir zu gehen
wollen, den Ball zu bewegen.
Und so haben wir bereits die x und y Geschwindigkeit des Balls
und so haben wir es verschieben.
Aber jetzt ist zu erkennen, wollen wir ein paar Dinge.
So, hier sind wir, wenn wir getroffen Erfassung entweder Die linke oder rechte Seite des
Bord, wir wollen den Ball zu hüpfen.
Und so, in diesem Fall setzen wir x Geschwindigkeit negative x Geschwindigkeit.
>> Wenn der Ball die Spitze des Vorstandes, dann wollen wir auch den Ball in der Luft.
Aber nun zu ändern, wollen wir die Y-Geschwindigkeit.
Beachten wir nicht eine Bedingung für haben Der Ball trifft den Boden des
Vorstand seit, dass bereits erfasst hier in dieser while-Schleife.
>> Schließlich, um einige erkennen wollen wir Kollisionen, wo, wenn der Ball
entweder das Paddel oder Backstein, wollen wir einige Sonderfall Dinge zu tun.
So dass, wenn es zu einer Kollision, bei dem Bei Objekten wird nicht Null sein, dann
wenn das Objekt traf die Paddel, würden wir will nur den Ball abprallen.
Und hier auch, setzen wir die Lage der der Ball knapp über dem Paddel.
Beachten Sie, wir nehmen die x-Position und der Ball nur, dass die Wiederverwendung von.
Aber hier bekommen wir die y-Position der Schaufel und der Bewegung der Kugel
über dem Paddel.
>> Dies ist ein spezieller Fall, dass die Kugel trifft nicht das Paddel und dann,
bevor es in der Lage sich zu bewegen Sie die Paddel, eine weitere Schleife um und geht
es denkt, es ist immer noch auf der Platte und so die y-Geschwindigkeit wird wieder eingestellt
Minus und dann den Ball nur irgendwie von Stöcken Prellen auf dem Paddel.
Also, wenn wir das Paddel nicht getroffen, dann wollen wir auch prüfen
wenn wir uns auf den Backstein.
Und dies ist, wie können wir überprüfen, zu sehen, ob wir einen Ziegelstein getroffen.
>> Wir müssen uns auf das zu überprüfen, denn wir können haben tatsächlich das Etikett und wir
wollen nicht, um das Etikett zu entfernen.
Also, wenn wir einen Stein getroffen, können wir, dass entfernen Backstein aus dem Fenster, ein Abnahme
unserer Zählung der Steine, erhöhen unsere Anzahl der Punkte, und jetzt müssen wir
Aktualisierung der Anzeigetafel, die genau ist das gleiche wie wir vor, wenn wir sahen, sahen
init Anzeigetafel.
Aber jetzt sind wir nur die Aktualisierung der Anzeigetafel, da wir das geändert haben
Anzahl der Punkte.
Und es sollte nun, dass treffen wir eine weitere Pause.
>> Und schließlich, wenn wir einen Stein getroffen wir wollen auch hüpfen.
So endlich, Pause nur so, dass wir die Ball bewegt sich nicht super schnell und wir
tatsächlich traf es mit unseren Paddel.
Und das ist so ziemlich alles.
So, jetzt würden wir Schleife zurück an die Spitze der Diese while-Schleife und weiter bis
Entweder wir verlieren ein Leben oder wir laufen aus Stein.
>> Was passiert, wenn wir verlieren ein Leben?
Dann werden wir diesen verlassen, während Schleife, und wir werden sehen Willen Schleife sichern
auf der Oberseite der äußeren Schleife während.
In diesem Fall werden wir Führen Sie diese wieder aufzubauen.
Und diese Einrichtung ist zu haben, uns zu warten für einen Klick, verringern unsere Nummer
von Leben, zentrieren den Ball, berechnen eine x-und y-Geschwindigkeit und
dann wieder das Spiel.
>> Und so, dass wird fortgesetzt, bis entweder Ziegel endet als weniger als
oder gleich Null ist -
in dem Fall, dass wir das Spiel gewonnen -
Lebens oder kleiner als Null ist, in der Fall, dass wir das Spiel verloren haben.
Also, wenn das der Fall ist, brechen wir aus dieser while-Schleife, und wir hier erreichen
wohin wir gehen, um für Klick warten bevor Sie das Spiel verlassen, so dass die
Spiel nicht nur sofort schließen, auf uns.
Und schließlich werden wir die schließen Fenster und das ist es.
Mein Name ist Rob, und das war Breakout.