Tip:
Highlight text to annotate it
X
>> DAVID Malan: Poďme napísať program, zahŕňajúce okná a kruh sa
kruh poskakovanie tam a späť off vľavo a vpravo
Hrany tohto okna.
Ak chcete tak urobiť, poďme používať Stanford Prenosný knižnica, a prvý poďme
patrí gevents.h takže môžeme počúvať pohyby myšou.
Poďme teda patrí gobjects.h tak, aby môžeme prehlásiť veci ako ovály alebo
kruhy, naozaj.
A potom sa poďme patrí gwindow.h tak, aby máme grafické okno pre
všetko.
>> Poďme vyhlásiť hlavné obvyklým spôsobom.
A poďme sa teraz priznať a inštancie alebo vytvoriť to okno, GWindow -
a zavoláme na premenné okno -
dostane newGWindow.
A my ľubovoľne, aby bolo 320 pixelov na 240 pixelov.
>> Poďme ďalšiu inštanciu kruh.
Ale inštanciu tento kruh, musíme urobiť trochu viac práce.
Najmä, poďme vyplniť v tomto kruhu tak, aby sa celá vec
čierna a nie len načrtnúť ich.
Goval -
budeme nazývať kruh -
dostane newGOval.
Dáme tento ovál na 0, 110, a budeme vykonať oválne 20 pixelov široký
20 pixelov vysoký - inými slovami, priemer 20 alebo polomer 10.
>> Poďme si teraz nastaviť farbu tohto kruhu byť citát, koniec citátu, "čierna". Poďme
Teraz nastavte ju byť vyplnené zadaním pravda.
A teraz konečne, poďme pridať kruh okná nasledovne, pričom
Ten sa pridá k prvému.
>> Poďme sa teraz vyhlásiť dvojnásobok.
Nazveme to rýchlosť.
A trochu ľubovoľne, povedzme, rýchlosť tohto kruhu bude
2,0, inými slovami, 2 bodov pre každú jednotku času.
A teraz poďme úmyselne vyvolať nekonečnú slučku.
>> Tak, ako sa robí tento kruh odrazí tam a späť?
No dajme tomu, že v rámci tejto slučky, ktoré pre každú jednotku času, sme
bude pohybovať kruhu len málo bit na základe jeho rýchlosti 2 pixelov
za jednotku času.
Ale neustále, budeme musieť skontrolujte, či je kruh sa dotýka
pravý okraj obrazovky alebo vľavo okraj obrazovky, pretože ak áno, tak
potrebovať odskočiť, aby som tak povedal.
>> Ako implementovať Pojem poskakovanie?
No, ak ideme na 2 bodov do priamo za jednotku času, odraziť
pravý okraj, môžeme jednoducho zvrátiť že sa negatívny 2 pixelov na jednotku
času, tak negovať rýchlosť.
Takže v skutočnosti, odrážanie je relatívne jednoduché.
>> Poďme si najprv presuňte kruh by to veľa pixelov pozdĺž osi x, od tohto
počet pixelov pozdĺž osi y.
Inými slovami, nechceme, aby to pohybovať pozdĺž osi y vôbec.
My len chceme, aby to odraziť späť a tam vľavo a vpravo.
>> A poďme teraz kontrolovať v rámci tejto slučky, ak x-ovú súradnicu kruhu a
šírka kruhu je väčšia alebo rovné
šírka okna -
inými slovami, ak miesto sa hodnota kruhu a šírka kruhu
samo o sebe je teraz cez okraj okná, mali by sme
lepšie obrátiť našu rýchlosť -
rýchlosť dostane zá***ú rýchlosť, čím sa obracející pozitívny
negatívne alebo z negatívnej na pozitívnu.
Ale čo v prípade, že kruh sa pohybuje od sprava doľava, a to preto zasiahne
ľavý okraj?
Inými slovami, v prípade, že x-ovú súradnicu kruh je teraz menej alebo rovné
0, poďme do toho a znovu obráťte našu rýchlosť.
>> Tak prečo som sa pridal v roku šírka kruhu tejto
čas, ako som to urobil predtým?
No, majte na pamäti, že súradnice objektu sú definované
jeho ľavom hornom rohu, nie je jeho stredu.
A tak, keď kruh sa pohybuje od zľava doprava, je potrebné skontrolovať
či je pravý okraj kruh prešiel
pravý okraj okna.
Takže prísť na to, čo to je, máme získať x-súradnicu kruhu
a šírka kruhu pohybovať sami od hornej ľavej ruky
kút, efektívne, aby pravom hornom rohu.
Keď kruh sa pohybuje sprava vľavo, medzitým, nepotrebujeme, aby
obťažovať sa tak toho, pretože v ľavom hornom rohu kruhu je
už hodnota, ktorú budeme dostať z get x.
>> Poďme sa presunúť loptu.
Poďme teraz uložiť, skompilovať a spustiť tento programu, aby odskočiť,. / odraziť.
A tu máme program.
>> Ale kruh sa pohybuje tak sakramentsky rýchlo, je to takmer nemožné, aby videli, čo je
v skutočnosti deje.
Takže je celkom program násilne Kliknite na X v pravom hornom
rohová tu.
Poďme sa teraz vrátiť do zdrojového kódu a celý proces spomaliť trochu.
>> Inými slovami, v tomto nekonečný slučky, skôr než len a pohyb a
pohybovať a znovu, reklama Nauseum, poďme prodleva len na pár milisekúnd
Pred pokračovaním sa znova pohybovať.
Najmä, poďme na dno nekonečnej slučky tu a jednoducho
pauza, povedzme, 10 milisekúnd na každej iterácii.
Poďme sa teraz prekompilovať a znovu spustiť bounce.
A teraz vidíme oveľa rozumnejšie realizácie, kde môžeme vidieť
kruh skutočne odrazí na ľavý a pravý okraj.