Tip:
Highlight text to annotate it
X
>> 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.