1 00:00:00,000 --> 00:00:00,260 2 00:00:00,260 --> 00:00:03,010 >> DAVID Malan: Olgem kirjutada programm kaasates aken ja ring 3 00:00:03,010 --> 00:00:05,820 ringi kopsakas edasi-tagasi väljas vasakul ja paremal 4 00:00:05,820 --> 00:00:07,120 servad, et aken. 5 00:00:07,120 --> 00:00:09,960 Selleks kasutagem Stanford Portable raamatukogu ja olgem esimene 6 00:00:09,960 --> 00:00:14,830 sisaldavad gevents.h et saaksime kuulake hiire liikumist. 7 00:00:14,830 --> 00:00:20,970 Olgem siis lisada gobjects.h et saame kuulutada asjad ovaali või 8 00:00:20,970 --> 00:00:22,110 ringid, tõesti. 9 00:00:22,110 --> 00:00:26,090 Ja siis lähme hulka gwindow.h et meil graafiline aken 10 00:00:26,090 --> 00:00:27,020 kõike. 11 00:00:27,020 --> 00:00:30,390 >> Olgem kuulutada peamine tavapärasel viisil. 12 00:00:30,390 --> 00:00:35,095 Ja olgem nüüd deklareerima ja algväärtustan või luua, et akna GWindow - 13 00:00:35,095 --> 00:00:37,090 ja me kutsume muutuja aken - 14 00:00:37,090 --> 00:00:39,790 saab newGWindow. 15 00:00:39,790 --> 00:00:44,450 Ja me suvaliselt teha 320 pikslit poolt 240 pikslit. 16 00:00:44,450 --> 00:00:46,190 >> Teeme järgmise algväärtustan ringi. 17 00:00:46,190 --> 00:00:48,740 Aga instantiate Ringi meil on vaja teha natuke rohkem tööd. 18 00:00:48,740 --> 00:00:51,340 Eelkõige olgem täita ringi nii et kogu asi on 19 00:00:51,340 --> 00:00:53,910 must ja mitte ainult ülevaate sellest. 20 00:00:53,910 --> 00:00:54,850 GOval - 21 00:00:54,850 --> 00:00:56,450 me nimetame seda ringi - 22 00:00:56,450 --> 00:00:58,310 saab newGOval. 23 00:00:58,310 --> 00:01:04,810 Me paneme selle ovaalne 0, 110, ja me teha ovaalne 20 pikslit lai 24 00:01:04,810 --> 00:01:09,070 20 pikslit kõrge - teisisõnu diameeter 20 või raadiusega 10. 25 00:01:09,070 --> 00:01:14,120 >> Olgem nüüd seatud selle värvi ring olema tsitaat, lõppeb, "must". Olgem 26 00:01:14,120 --> 00:01:19,030 nüüd pani täidetakse määrates õige. 27 00:01:19,030 --> 00:01:24,100 Ja nüüd lõpuks lisame ringi akna järgmiselt, kusjuures 28 00:01:24,100 --> 00:01:26,390 Viimasel lisatakse eelnevale. 29 00:01:26,390 --> 00:01:27,910 >> Olgem nüüd deklareerima topelt. 30 00:01:27,910 --> 00:01:29,200 Me nimetame seda kiirust. 31 00:01:29,200 --> 00:01:32,380 Ja mõnevõrra meelevaldselt, ütleme kiirus ringi saab 32 00:01:32,380 --> 00:01:36,290 2,0, teisisõnu, 2 pikslit iga ajaühiku. 33 00:01:36,290 --> 00:01:39,380 Ja nüüd lähme tahtlikult indutseerida lõputu silmuse. 34 00:01:39,380 --> 00:01:42,060 >> Niisiis, kuidas teha see ring põrge edasi-tagasi? 35 00:01:42,060 --> 00:01:45,190 Noh oletame sellises ringluses iga ajaühiku, me oleme 36 00:01:45,190 --> 00:01:48,890 kavatse minna ringi natuke bitine põhineb selle kiirus 2 pikslit 37 00:01:48,890 --> 00:01:50,070 ajaühikus. 38 00:01:50,070 --> 00:01:52,900 Kuid pidevalt, me peame kontrollida, kas ring on liigutav 39 00:01:52,900 --> 00:01:56,480 paremale ekraani serval või vasakule servas, sest kui on, siis me 40 00:01:56,480 --> 00:01:58,530 vaja seda põrgatama, nii rääkida. 41 00:01:58,530 --> 00:02:00,380 >> Kuidas rakendada mõiste kopsakas? 42 00:02:00,380 --> 00:02:04,400 Noh, kui me kell 2 pikslit õige ajaühikus, põrgatama off 43 00:02:04,400 --> 00:02:08,259 paremal äärel, me lihtsalt tagurpidi et negatiivne 2 pikslit ühiku 44 00:02:08,259 --> 00:02:10,400 aega, mistõttu muutus kiirus. 45 00:02:10,400 --> 00:02:13,160 Nii et tegelikult, kopsakas on suhteliselt arusaadav. 46 00:02:13,160 --> 00:02:19,260 >> Vaatame kõigepealt liikuda ringi nii palju pikslit mööda x-telge, mida see 47 00:02:19,260 --> 00:02:21,040 palju piksleid piki y-telge. 48 00:02:21,040 --> 00:02:23,600 Teisisõnu, me ei taha, et see liikuda piki y-telge üldse. 49 00:02:23,600 --> 00:02:25,950 Me tahame ainult see põrge tagasi edasi vasakule ja paremale. 50 00:02:25,950 --> 00:02:31,910 >> Ja olgem nüüd vaadata selles loop kui x-koordinaadi ringi pluss 51 00:02:31,910 --> 00:02:36,515 laius ring on suurem kui või võrdne 52 00:02:36,515 --> 00:02:38,520 laius aken - 53 00:02:38,520 --> 00:02:42,180 Teisisõnu, kui ringi asukohta pluss laius ringi 54 00:02:42,180 --> 00:02:44,840 ise on nüüd minevik serva Akna olime 55 00:02:44,840 --> 00:02:46,090 parem vastupidine meie kiirus - 56 00:02:46,090 --> 00:02:49,080 57 00:02:49,080 --> 00:02:53,680 kiirus muutub negatiivne kiirus, millega flipping positiivne 58 00:02:53,680 --> 00:02:56,090 negatiivne või negatiivsest positiivseks. 59 00:02:56,090 --> 00:02:59,740 Aga mis siis, kui ringi liigub paremalt vasakule ja seetõttu tabab 60 00:02:59,740 --> 00:03:00,670 vasakust servast? 61 00:03:00,670 --> 00:03:06,490 Teisisõnu, kui x-koordinaat Ringi nüüd väiksem või võrdne 62 00:03:06,490 --> 00:03:12,530 0, lähme edasi ja jälle Pöörake oma kiiruse. 63 00:03:12,530 --> 00:03:14,980 >> Miks ei ole ma mitte lisada ringi laiuse see 64 00:03:14,980 --> 00:03:16,410 aeg, kui ma tegin enne? 65 00:03:16,410 --> 00:03:19,050 Noh, pea meeles, et kasutaja tegevused ning objekti määratletakse 66 00:03:19,050 --> 00:03:22,200 selle ülemisse vasakusse nurka, mitte selle keskel. 67 00:03:22,200 --> 00:03:25,810 Ja nii kui ringi liigub vasakult paremale, peame kontrollima 68 00:03:25,810 --> 00:03:28,910 kas parem serv ring on läbinud 69 00:03:28,910 --> 00:03:30,200 paremas servas akna. 70 00:03:30,200 --> 00:03:34,100 Nii, et aru saada, mis see on, on meil saada x-koordinaadi ringi 71 00:03:34,100 --> 00:03:38,080 pluss laius ringi liikuda end ülevalt vasakul 72 00:03:38,080 --> 00:03:40,650 nurgas, tõhusalt, et üleval paremas nurgas. 73 00:03:40,650 --> 00:03:43,700 Kui ringi liigub paremalt vasakule, vahepeal me ei pea 74 00:03:43,700 --> 00:03:47,550 segaks nagu Lisaks, kuna ülemises vasakus nurgas ring on 75 00:03:47,550 --> 00:03:50,700 juba väärtus meiepoolsete saada get x. 76 00:03:50,700 --> 00:03:54,140 >> Olgem nüüd liikuda palli. 77 00:03:54,140 --> 00:04:00,900 Olgem nüüd salvestada, koostada ja käivitada programmi muuta põrge. / põrge. 78 00:04:00,900 --> 00:04:02,230 Ja seal on meil programm. 79 00:04:02,230 --> 00:04:05,760 >> Aga ringi liigub nii kuradi kiire, see on peaaegu võimatu, et näha, mis on 80 00:04:05,760 --> 00:04:07,060 tegelikult toimub. 81 00:04:07,060 --> 00:04:10,620 Teeme hoopis programmi sunniviisiliselt klikkides X ülemises parempoolses 82 00:04:10,620 --> 00:04:11,720 siin nurgas. 83 00:04:11,720 --> 00:04:15,300 Lähme nüüd tagasi minna lähtekoodi ja aeglane asjad maha natuke. 84 00:04:15,300 --> 00:04:19,240 >> Teisisõnu, sellel lõpmatu loop, mitte lihtsalt ja liikuda ja 85 00:04:19,240 --> 00:04:22,850 liikuda ja uuesti, ad nauseum, lähme jõlkuma vaid paar millisekundit 86 00:04:22,850 --> 00:04:24,910 Enne jätkamist liikuda uuesti. 87 00:04:24,910 --> 00:04:28,480 Eelkõige lähme põhja lõpmatu silmus siin ja lihtsalt 88 00:04:28,480 --> 00:04:32,820 pausi, ütleme, 10 millisekundit iga iteratsiooni. 89 00:04:32,820 --> 00:04:36,690 Olgem nüüd kompileerida ja re-run põrge. 90 00:04:36,690 --> 00:04:40,190 Ja nüüd me näeme palju rohkem põhjendatud rakendamine, kus me näeme 91 00:04:40,190 --> 00:04:43,310 ring tõeliselt kopsakas vasak ja parem serv. 92 00:04:43,310 --> 00:04:45,395