>> DAVID Malan: Olgem kirjutada programm kaasates aken ja ring
ringi kopsakas edasi-tagasi väljas vasakul ja paremal
servad, et aken.
Selleks kasutagem Stanford Portable raamatukogu ja olgem esimene
sisaldavad gevents.h et saaksime kuulake hiire liikumist.
Olgem siis lisada gobjects.h et saame kuulutada asjad ovaali või
ringid, tõesti.
Ja siis lähme hulka gwindow.h et meil graafiline aken
kõike.
>> Olgem kuulutada peamine tavapärasel viisil.
Ja olgem nüüd deklareerima ja algväärtustan või luua, et akna GWindow -
ja me kutsume muutuja aken -
saab newGWindow.
Ja me suvaliselt teha 320 pikslit poolt 240 pikslit.
>> Teeme järgmise algväärtustan ringi.
Aga instantiate Ringi meil on vaja teha natuke rohkem tööd.
Eelkõige olgem täita ringi nii et kogu asi on
must ja mitte ainult ülevaate sellest.
GOval -
me nimetame seda ringi -
saab newGOval.
Me paneme selle ovaalne 0, 110, ja me teha ovaalne 20 pikslit lai
20 pikslit kõrge - teisisõnu diameeter 20 või raadiusega 10.
>> Olgem nüüd seatud selle värvi ring olema tsitaat, lõppeb, "must". Olgem
nüüd pani täidetakse määrates õige.
Ja nüüd lõpuks lisame ringi akna järgmiselt, kusjuures
Viimasel lisatakse eelnevale.
>> Olgem nüüd deklareerima topelt.
Me nimetame seda kiirust.
Ja mõnevõrra meelevaldselt, ütleme kiirus ringi saab
2,0, teisisõnu, 2 pikslit iga ajaühiku.
Ja nüüd lähme tahtlikult indutseerida lõputu silmuse.
>> Niisiis, kuidas teha see ring põrge edasi-tagasi?
Noh oletame sellises ringluses iga ajaühiku, me oleme
kavatse minna ringi natuke bitine põhineb selle kiirus 2 pikslit
ajaühikus.
Kuid pidevalt, me peame kontrollida, kas ring on liigutav
paremale ekraani serval või vasakule servas, sest kui on, siis me
vaja seda põrgatama, nii rääkida.
>> Kuidas rakendada mõiste kopsakas?
Noh, kui me kell 2 pikslit õige ajaühikus, põrgatama off
paremal äärel, me lihtsalt tagurpidi et negatiivne 2 pikslit ühiku
aega, mistõttu muutus kiirus.
Nii et tegelikult, kopsakas on suhteliselt arusaadav.
>> Vaatame kõigepealt liikuda ringi nii palju pikslit mööda x-telge, mida see
palju piksleid piki y-telge.
Teisisõnu, me ei taha, et see liikuda piki y-telge üldse.
Me tahame ainult see põrge tagasi edasi vasakule ja paremale.
>> Ja olgem nüüd vaadata selles loop kui x-koordinaadi ringi pluss
laius ring on suurem kui või võrdne
laius aken -
Teisisõnu, kui ringi asukohta pluss laius ringi
ise on nüüd minevik serva Akna olime
parem vastupidine meie kiirus -
kiirus muutub negatiivne kiirus, millega flipping positiivne
negatiivne või negatiivsest positiivseks.
Aga mis siis, kui ringi liigub paremalt vasakule ja seetõttu tabab
vasakust servast?
Teisisõnu, kui x-koordinaat Ringi nüüd väiksem või võrdne
0, lähme edasi ja jälle Pöörake oma kiiruse.
>> Miks ei ole ma mitte lisada ringi laiuse see
aeg, kui ma tegin enne?
Noh, pea meeles, et kasutaja tegevused ning objekti määratletakse
selle ülemisse vasakusse nurka, mitte selle keskel.
Ja nii kui ringi liigub vasakult paremale, peame kontrollima
kas parem serv ring on läbinud
paremas servas akna.
Nii, et aru saada, mis see on, on meil saada x-koordinaadi ringi
pluss laius ringi liikuda end ülevalt vasakul
nurgas, tõhusalt, et üleval paremas nurgas.
Kui ringi liigub paremalt vasakule, vahepeal me ei pea
segaks nagu Lisaks, kuna ülemises vasakus nurgas ring on
juba väärtus meiepoolsete saada get x.
>> Olgem nüüd liikuda palli.
Olgem nüüd salvestada, koostada ja käivitada programmi muuta põrge. / põrge.
Ja seal on meil programm.
>> Aga ringi liigub nii kuradi kiire, see on peaaegu võimatu, et näha, mis on
tegelikult toimub.
Teeme hoopis programmi sunniviisiliselt klikkides X ülemises parempoolses
siin nurgas.
Lähme nüüd tagasi minna lähtekoodi ja aeglane asjad maha natuke.
>> Teisisõnu, sellel lõpmatu loop, mitte lihtsalt ja liikuda ja
liikuda ja uuesti, ad nauseum, lähme jõlkuma vaid paar millisekundit
Enne jätkamist liikuda uuesti.
Eelkõige lähme põhja lõpmatu silmus siin ja lihtsalt
pausi, ütleme, 10 millisekundit iga iteratsiooni.
Olgem nüüd kompileerida ja re-run põrge.
Ja nüüd me näeme palju rohkem põhjendatud rakendamine, kus me näeme
ring tõeliselt kopsakas vasak ja parem serv.