DAVID MALAN: Kirjoitetaan ohjelma johon ikkuna ja ympyrän ympyrä pomppii edestakaisin pois vasen ja oikea reunat tuosta ikkunasta. Voit tehdä nyt käyttää Stanford Kannettava kirjasto, ja anna ensimmäinen kuuluu gevents.h jotta voimme kuuntele hiiren liikkeet. Katsotaan sitten sisältää gobjects.h niin, että voimme julistaa asioita, kuten suorakaide tai piireissä, todella. Ja sitten katsotaanpa kuuluvat gwindow.h jotta meillä on graafinen ikkuna kaiken. Katsotaanpa julistaa tärkein tavalliseen tapaan. Ja katsotaanpa nyt julistaa ja instanssia tai luoda tuosta ikkunasta, GWindow - ja soitamme muuttuja ikkuna - saa newGWindow. Ja me mielivaltaisesti tehdä 320 pikseliä 240 pikseliä. Katsotaanpa seuraavaksi instanssia ympyrä. Mutta instanssia tämän ympyrän, meidän täytyy tehdä hieman enemmän työtä. Erityisesti nyt täyttää tämän ympyrän siten, että koko asia on musta eikä vain luonnos niistä. Goval - me kutsumme sitä ympyrä - saa newGOval. Laitamme tämän soikea 0, 110, ja me tehdä soikea 20 pikseliä leveä 20 pikseliä korkea - toisin sanoen, halkaisija 20 tai säteeltään 10. Katsotaanpa nyt asetettu väri tämän ympyrän olla lainaus, lainaus, "musta". Katsotaanpa nyt asettaa se täytetään määrittämällä totta. Ja nyt lopuksi, älkäämme lisätä ympyrän ikkunan seuraavasti, jolloin Jälkimmäinen lisättiin edelliseen. Katsotaanpa nyt julistaa kaksinkertainen. Soitamme sen nopeus. Ja hieman mielivaltaisesti, sanotaanko nopeus tämän ympyrän on 2,0, toisin sanoen, 2 pikseliä jokaista aikayksikköä. Ja nyt Katsotaanpa tarkoituksella aiheuttaa päättymättömään silmukkaan. Joten miten tämä ympyrä pomppia edestakaisin? No Oletetaan tämän silmukka, joka jokaista aikayksikköä, olemme siirrymme ympyrä vain vähän bittinen perustuu sen nopeuden 2 pikseliä aikayksikköä kohti. Mutta jatkuvasti, aiomme pitää tarkista ympyrä koskettaa oikeassa reunassa näytöllä tai vasemmalle näytön reunaan, koska jos näin on, täytyy se pomppia, niin sanoakseni. Miten toteuttaa käsite terhakka? No jos aiomme 2 pikseleitä oikeus aikayksikössä, kimpoavat oikeassa reunassa, voimme yksinkertaisesti kääntää että negatiivinen 2 pikseliä kohden aikaa, jolloin tyhjäksi nopeus. Joten itse asiassa, terhakka on suhteellisen suoraviivainen. Katsotaanpa ensin siirtää ympyrän näin monta pikselit pitkin x-akselia, tämän monta pikseliä pitkin y-akselia. Toisin sanoen, emme halua sitä liikkua pitkin y-akselia lainkaan. Me vain haluamme sen toipua ja edelleen vasemmalle ja oikealle. Ja katsotaanpa nyt tarkistaa tämän silmukan, jos x-koordinaatti ympyrän plus leveys ympyrä on suurempi tai yhtä suuri kuin ikkunan leveys - Toisin sanoen, jos ympyrän sijainti plus leveys ympyrän itse on nyt ohi reunan ikkunan, olisimme parempi kääntää meidän nopeus - nopeus saa negatiivista nopeutta, mikä flipping positiivinen negatiivinen tai negatiivisesta positiiviseen. Mutta entä jos ympyrä on siirtymässä oikealta vasemmalle ja näin ollen se osuu vasen reuna? Toisin sanoen, jos x-koordinaatti ympyrä on nyt pienempi kuin tai yhtä suuri kuin 0, mennään eteenpäin ja taas Kääntele meidän nopeus. Joten miksi en ole lisätty leveys ympyrän tämän aikaa, kuten tein ennen? No, pitää mielessä, että koordinaatit objektin määritellään sen top vasempaan nurkkaan, ei sen keskiosasta. Ja niin kun ympyrä on siirtymässä vasemmalta oikealle, meidän täytyy tarkistaa onko oikea reuna ympyrä on läpäissyt oikean reunan ikkunasta. Joten selvittää, mitä se on, meillä on saada x-koordinaatti ympyrän plus leveys ympyrän liikkumaan itsemme ylhäällä vasen nurkkaan, tehokkaasti, jotta sivun oikeassa yläkulmassa. Kun ympyrä liikkuu oikealta vasen puolestaan ​​meidän ei tarvitse vaivautua tällainen lisäys, koska vasemmassa yläkulmassa ympyrän on jo arvo näytämme saada get x. Katsotaanpa nyt siirtää pallo. Katsotaanpa nyt tallentaa, kääntää ja ajaa tämän ohjelma, tehdä pomppia,. / pomppia. Ja siellä meillä on ohjelma. Mutta ympyrä liikkuu niin hiton nopeasti, se on lähes mahdotonta nähdä, mitä todella tapahtuu. Joten aivan ohjelman painokkaasti klikkaamalla X oikeassa yläkulmassa corner täällä. Katsotaanpa nyt mennä takaisin lähdekoodi ja hidas asioita alas hieman. Toisin sanoen, tämän ääretön silmukka, eikä vain ja liikkua ja liikkua ja uudestaan, loputtomiin, katsotaanpa viipyä vain muutaman millisekunnin ennen kuin jatkat taas liikkeelle. Erityisesti mennään pohjaan ja päättymättömään silmukkaan täällä ja yksinkertaisesti pysähtyä vaikkapa 10 millisekuntia kunkin iteraation. Katsotaanpa nyt kääntää ja uusinnassa pomppia. Ja nyt näemme paljon järkevämpää täytäntöönpanoa, jossa voimme nähdä ympyrä todella terhakka vasen ja oikea reuna.