1 00:00:00,000 --> 00:00:00,260 2 00:00:00,260 --> 00:00:03,010 >> DAVID MALAN: Kirjoitetaan ohjelma johon ikkuna ja ympyrän 3 00:00:03,010 --> 00:00:05,820 ympyrä pomppii edestakaisin pois vasen ja oikea 4 00:00:05,820 --> 00:00:07,120 reunat tuosta ikkunasta. 5 00:00:07,120 --> 00:00:09,960 Voit tehdä nyt käyttää Stanford Kannettava kirjasto, ja anna ensimmäinen 6 00:00:09,960 --> 00:00:14,830 kuuluu gevents.h jotta voimme kuuntele hiiren liikkeet. 7 00:00:14,830 --> 00:00:20,970 Katsotaan sitten sisältää gobjects.h niin, että voimme julistaa asioita, kuten suorakaide tai 8 00:00:20,970 --> 00:00:22,110 piireissä, todella. 9 00:00:22,110 --> 00:00:26,090 Ja sitten katsotaanpa kuuluvat gwindow.h jotta meillä on graafinen ikkuna 10 00:00:26,090 --> 00:00:27,020 kaiken. 11 00:00:27,020 --> 00:00:30,390 >> Katsotaanpa julistaa tärkein tavalliseen tapaan. 12 00:00:30,390 --> 00:00:35,095 Ja katsotaanpa nyt julistaa ja instanssia tai luoda tuosta ikkunasta, GWindow - 13 00:00:35,095 --> 00:00:37,090 ja soitamme muuttuja ikkuna - 14 00:00:37,090 --> 00:00:39,790 saa newGWindow. 15 00:00:39,790 --> 00:00:44,450 Ja me mielivaltaisesti tehdä 320 pikseliä 240 pikseliä. 16 00:00:44,450 --> 00:00:46,190 >> Katsotaanpa seuraavaksi instanssia ympyrä. 17 00:00:46,190 --> 00:00:48,740 Mutta instanssia tämän ympyrän, meidän täytyy tehdä hieman enemmän työtä. 18 00:00:48,740 --> 00:00:51,340 Erityisesti nyt täyttää tämän ympyrän siten, että koko asia on 19 00:00:51,340 --> 00:00:53,910 musta eikä vain luonnos niistä. 20 00:00:53,910 --> 00:00:54,850 Goval - 21 00:00:54,850 --> 00:00:56,450 me kutsumme sitä ympyrä - 22 00:00:56,450 --> 00:00:58,310 saa newGOval. 23 00:00:58,310 --> 00:01:04,810 Laitamme tämän soikea 0, 110, ja me tehdä soikea 20 pikseliä leveä 24 00:01:04,810 --> 00:01:09,070 20 pikseliä korkea - toisin sanoen, halkaisija 20 tai säteeltään 10. 25 00:01:09,070 --> 00:01:14,120 >> Katsotaanpa nyt asetettu väri tämän ympyrän olla lainaus, lainaus, "musta". Katsotaanpa 26 00:01:14,120 --> 00:01:19,030 nyt asettaa se täytetään määrittämällä totta. 27 00:01:19,030 --> 00:01:24,100 Ja nyt lopuksi, älkäämme lisätä ympyrän ikkunan seuraavasti, jolloin 28 00:01:24,100 --> 00:01:26,390 Jälkimmäinen lisättiin edelliseen. 29 00:01:26,390 --> 00:01:27,910 >> Katsotaanpa nyt julistaa kaksinkertainen. 30 00:01:27,910 --> 00:01:29,200 Soitamme sen nopeus. 31 00:01:29,200 --> 00:01:32,380 Ja hieman mielivaltaisesti, sanotaanko nopeus tämän ympyrän on 32 00:01:32,380 --> 00:01:36,290 2,0, toisin sanoen, 2 pikseliä jokaista aikayksikköä. 33 00:01:36,290 --> 00:01:39,380 Ja nyt Katsotaanpa tarkoituksella aiheuttaa päättymättömään silmukkaan. 34 00:01:39,380 --> 00:01:42,060 >> Joten miten tämä ympyrä pomppia edestakaisin? 35 00:01:42,060 --> 00:01:45,190 No Oletetaan tämän silmukka, joka jokaista aikayksikköä, olemme 36 00:01:45,190 --> 00:01:48,890 siirrymme ympyrä vain vähän bittinen perustuu sen nopeuden 2 pikseliä 37 00:01:48,890 --> 00:01:50,070 aikayksikköä kohti. 38 00:01:50,070 --> 00:01:52,900 Mutta jatkuvasti, aiomme pitää tarkista ympyrä koskettaa 39 00:01:52,900 --> 00:01:56,480 oikeassa reunassa näytöllä tai vasemmalle näytön reunaan, koska jos näin on, 40 00:01:56,480 --> 00:01:58,530 täytyy se pomppia, niin sanoakseni. 41 00:01:58,530 --> 00:02:00,380 >> Miten toteuttaa käsite terhakka? 42 00:02:00,380 --> 00:02:04,400 No jos aiomme 2 pikseleitä oikeus aikayksikössä, kimpoavat 43 00:02:04,400 --> 00:02:08,259 oikeassa reunassa, voimme yksinkertaisesti kääntää että negatiivinen 2 pikseliä kohden 44 00:02:08,259 --> 00:02:10,400 aikaa, jolloin tyhjäksi nopeus. 45 00:02:10,400 --> 00:02:13,160 Joten itse asiassa, terhakka on suhteellisen suoraviivainen. 46 00:02:13,160 --> 00:02:19,260 >> Katsotaanpa ensin siirtää ympyrän näin monta pikselit pitkin x-akselia, tämän 47 00:02:19,260 --> 00:02:21,040 monta pikseliä pitkin y-akselia. 48 00:02:21,040 --> 00:02:23,600 Toisin sanoen, emme halua sitä liikkua pitkin y-akselia lainkaan. 49 00:02:23,600 --> 00:02:25,950 Me vain haluamme sen toipua ja edelleen vasemmalle ja oikealle. 50 00:02:25,950 --> 00:02:31,910 >> Ja katsotaanpa nyt tarkistaa tämän silmukan, jos x-koordinaatti ympyrän plus 51 00:02:31,910 --> 00:02:36,515 leveys ympyrä on suurempi tai yhtä suuri kuin 52 00:02:36,515 --> 00:02:38,520 ikkunan leveys - 53 00:02:38,520 --> 00:02:42,180 Toisin sanoen, jos ympyrän sijainti plus leveys ympyrän 54 00:02:42,180 --> 00:02:44,840 itse on nyt ohi reunan ikkunan, olisimme 55 00:02:44,840 --> 00:02:46,090 parempi kääntää meidän nopeus - 56 00:02:46,090 --> 00:02:49,080 57 00:02:49,080 --> 00:02:53,680 nopeus saa negatiivista nopeutta, mikä flipping positiivinen 58 00:02:53,680 --> 00:02:56,090 negatiivinen tai negatiivisesta positiiviseen. 59 00:02:56,090 --> 00:02:59,740 Mutta entä jos ympyrä on siirtymässä oikealta vasemmalle ja näin ollen se osuu 60 00:02:59,740 --> 00:03:00,670 vasen reuna? 61 00:03:00,670 --> 00:03:06,490 Toisin sanoen, jos x-koordinaatti ympyrä on nyt pienempi kuin tai yhtä suuri kuin 62 00:03:06,490 --> 00:03:12,530 0, mennään eteenpäin ja taas Kääntele meidän nopeus. 63 00:03:12,530 --> 00:03:14,980 >> Joten miksi en ole lisätty leveys ympyrän tämän 64 00:03:14,980 --> 00:03:16,410 aikaa, kuten tein ennen? 65 00:03:16,410 --> 00:03:19,050 No, pitää mielessä, että koordinaatit objektin määritellään 66 00:03:19,050 --> 00:03:22,200 sen top vasempaan nurkkaan, ei sen keskiosasta. 67 00:03:22,200 --> 00:03:25,810 Ja niin kun ympyrä on siirtymässä vasemmalta oikealle, meidän täytyy tarkistaa 68 00:03:25,810 --> 00:03:28,910 onko oikea reuna ympyrä on läpäissyt 69 00:03:28,910 --> 00:03:30,200 oikean reunan ikkunasta. 70 00:03:30,200 --> 00:03:34,100 Joten selvittää, mitä se on, meillä on saada x-koordinaatti ympyrän 71 00:03:34,100 --> 00:03:38,080 plus leveys ympyrän liikkumaan itsemme ylhäällä vasen 72 00:03:38,080 --> 00:03:40,650 nurkkaan, tehokkaasti, jotta sivun oikeassa yläkulmassa. 73 00:03:40,650 --> 00:03:43,700 Kun ympyrä liikkuu oikealta vasen puolestaan ​​meidän ei tarvitse 74 00:03:43,700 --> 00:03:47,550 vaivautua tällainen lisäys, koska vasemmassa yläkulmassa ympyrän on 75 00:03:47,550 --> 00:03:50,700 jo arvo näytämme saada get x. 76 00:03:50,700 --> 00:03:54,140 >> Katsotaanpa nyt siirtää pallo. 77 00:03:54,140 --> 00:04:00,900 Katsotaanpa nyt tallentaa, kääntää ja ajaa tämän ohjelma, tehdä pomppia,. / pomppia. 78 00:04:00,900 --> 00:04:02,230 Ja siellä meillä on ohjelma. 79 00:04:02,230 --> 00:04:05,760 >> Mutta ympyrä liikkuu niin hiton nopeasti, se on lähes mahdotonta nähdä, mitä 80 00:04:05,760 --> 00:04:07,060 todella tapahtuu. 81 00:04:07,060 --> 00:04:10,620 Joten aivan ohjelman painokkaasti klikkaamalla X oikeassa yläkulmassa 82 00:04:10,620 --> 00:04:11,720 corner täällä. 83 00:04:11,720 --> 00:04:15,300 Katsotaanpa nyt mennä takaisin lähdekoodi ja hidas asioita alas hieman. 84 00:04:15,300 --> 00:04:19,240 >> Toisin sanoen, tämän ääretön silmukka, eikä vain ja liikkua ja 85 00:04:19,240 --> 00:04:22,850 liikkua ja uudestaan, loputtomiin, katsotaanpa viipyä vain muutaman millisekunnin 86 00:04:22,850 --> 00:04:24,910 ennen kuin jatkat taas liikkeelle. 87 00:04:24,910 --> 00:04:28,480 Erityisesti mennään pohjaan ja päättymättömään silmukkaan täällä ja yksinkertaisesti 88 00:04:28,480 --> 00:04:32,820 pysähtyä vaikkapa 10 millisekuntia kunkin iteraation. 89 00:04:32,820 --> 00:04:36,690 Katsotaanpa nyt kääntää ja uusinnassa pomppia. 90 00:04:36,690 --> 00:04:40,190 Ja nyt näemme paljon järkevämpää täytäntöönpanoa, jossa voimme nähdä 91 00:04:40,190 --> 00:04:43,310 ympyrä todella terhakka vasen ja oikea reuna. 92 00:04:43,310 --> 00:04:45,395