Tip:
Highlight text to annotate it
X
>> DAVID MALAN: Lassen Sie uns ein Programm schreiben denen ein Fenster und einen Kreis mit
der Kreis hin-und hergeworfen aus den linken und rechten
Kanten des Fensters.
Dazu verwenden wir die Stanford Tragbare Bibliothek, und lassen Sie uns zuerst
gehören gevents.h so dass wir hören Sie auf Mausbewegungen.
Lassen Sie uns dann gehören gobjects.h, so dass wir können Dinge wie Ovale erklären oder
Kreise, wirklich.
Und dann lassen Sie uns gehören, so dass gwindow.h wir haben ein Grafikfenster für
alles.
>> Lassen Sie uns erklären, Haupt in der üblichen Weise.
Und lassen Sie uns jetzt erklären und instanziieren oder erstellen Sie das Fenster, GWindow -
und wir werden die Variablenfenster nennen -
newGWindow bekommt.
Und wir machen es beliebig 320 x 240 Pixel.
>> Lassen nächsten instanziieren einen Kreis.
Aber diesen Kreis zu instanziieren, wir brauchen, um ein bisschen mehr Arbeit zu tun.
Insbesondere wollen wir in diesem Kreis zu füllen so daß die ganze Sache ist
schwarz und nicht nur die skizzieren davon.
Goval -
wir nennen es Kreis -
newGOval bekommt.
Wir werden diese ovale bei 0, 110 setzen, und wir werden machen die ovalen 20 Pixel breit
20 Pixel hoch - in anderen Worten, ein Durchmesser von 20 bzw. Radius 10.
>> Lassen Sie uns nun die Farbe des Kreises festgelegt zu zitieren, unquote sein ", schwarz." Lassen Sie uns
Jetzt legen Sie es ausgefüllt werden durch die Angabe stimmt.
Und jetzt endlich, lasst uns den Kreis in den das Fenster wie folgt, wobei die
Letztere ist an der ehemaligen aufgenommen.
>> Lassen Sie uns nun ein Doppel erklären.
Wir nennen Geschwindigkeit.
Und etwas willkürlich, sagen wir, die Geschwindigkeit dieses Kreises werden
2,0, in anderen Worten, 2 Pixel für jede Zeiteinheit.
Und jetzt lasst uns bewusst induzieren eine Endlosschleife.
>> So, wie man diesen Kreis zu machen hüpfen hin und her?
Nun lassen Sie uns innerhalb dieser Schleife davon ausgehen, dass für jede Zeiteinheit, wir sind
gehen, um den Kreis nur ein wenig bewegen Bit basierend auf seiner Geschwindigkeit von 2 Pixel
pro Zeiteinheit.
Aber immer, wir gehen zu müssen überprüfen, ob der Kreis berührt die
rechten Rand des Bildschirms oder links Bildschirmrand, denn wenn dem so ist, man
müssen sie auf die Beine, so zu sprechen.
>> Wie zur Umsetzung der Begriff der springenden?
Nun, wenn wir um 2 Pixel nach gehen Recht pro Zeiteinheit, abprallen
der rechte Rand, können wir einfach umkehren dass negative 2 Pixel pro Einheit
Zeit, damit negiert die Geschwindigkeit.
Also in der Tat ist Prellen relativ unkompliziert.
>> Lassen Sie uns zunächst den Kreis bewegen, dieses viele Pixel entlang der x-Achse von diesem
viele Pixel entlang der Y-Achse.
In anderen Worten, wir nicht, dass es bewegen sich entlang der y-Achse überhaupt.
Wir wollen nur, um wieder auf die Beine und nach links und rechts.
>> Und lassen Sie uns jetzt innerhalb dieser Schleife zu überprüfen, ob die x-Koordinate des Kreises sowie
die Breite des Kreises größer ist als oder gleich der
Breite des Fensters -
in anderen Worten, wenn der Standort des Kreises plus der Breite des Kreises
selbst ist nun über den Rand des Fensters, würden wir
besser umkehren unsere Geschwindigkeit -
Geschwindigkeit bekommt negative Geschwindigkeit, wodurch Spiegeln positiv ein
negativ oder negativ zu einem positiven.
Aber was, wenn der Kreis bewegt von rechts nach links und daher trifft
der linke Rand?
In anderen Worten, wenn die x-Koordinate Der Kreis ist jetzt kleiner als oder gleich
auf 0, lassen Sie vor und gehen wieder invertieren unsere Geschwindigkeit.
>> Also, warum habe ich nicht in der Mehr Breite der Kreis dieser
Zeit, wie ich vor?
Nun, denken Sie daran, dass die Koordinaten eines Objekts definiert sind
an den oberen linken Ecke, nicht durch seine Mitte.
Und so, wenn der Kreis bewegt links nach rechts, müssen wir überprüfen
ob der rechte Rand der Kreis vergangen ist die
rechten Rand des Fensters.
Also, um herauszufinden, was das ist, haben wir die x-Koordinate des Kreises zu erhalten
und der Breite des Kreises zu bewegen uns von der linken oberen
Ecke, effektiv, um die rechten oberen Ecke.
Wenn der Kreis von rechts nach links, mittlerweile, wir brauchen nicht zu
Mühe mit solchen hinaus, weil die obere linke Ecke des Kreises
bereits der Wert wir werden erhalten Sie von get-x.
>> Lassen Sie uns nun den Ball zu bewegen.
Lassen Sie uns jetzt noch retten, kompilieren und laufen diese Programm, stellen bounce,. / Sprungkraft.
Und da haben wir ein Programm.
>> Aber der Kreis ist so verdammt schnell bewegt, es ist fast unmöglich zu sehen, was
eigentlich vor sich geht.
Lassen Sie uns also ganz das Programm zwangsweise durch Klicken auf das X in der rechten oberen
Ecke hier.
Lassen Sie uns nun zurück in den Quellcode und die Dinge verlangsamen ein wenig.
>> Mit anderen Worten, in dieser unendlichen Schleife, anstatt nur und Bewegung und
bewegen und immer wieder, bis zum Überdruss, lassen Sie verweilen nur für ein paar Millisekunden
bevor Sie sich wieder zu bewegen.
Insbesondere wollen wir auf den Grund gehen der Endlosschleife hier und einfach
Pause für etwa 10 Millisekunden bei jeder Iteration.
Lassen Sie uns nun neu kompilieren und re-run Sprungkraft.
Und jetzt sehen wir eine viel vernünftiger Implementierung, wo wir das sehen,
Kreis wirklich Prellen auf die linken und rechten Rand.