Tip:
Highlight text to annotate it
X
>> DAVID Malan: Recimo napisati program ki vključuje okna in krog z
Krog premetavati sem in tja off levo in desno
Robovi okno.
To storite tako, dajmo uporabiti Stanford Prenosni knjižnica, in prvo dajva
vključujejo gevents.h tako da bomo lahko poslušaj za miško gibanja.
Dajmo potem vključuje gobjects.h tako, da lahko razglasi stvari, kot ovale ali
krogi, res.
In potem pa vključuje gwindow.h tako, da imamo grafično okno za
vse.
>> Oglejmo razglasi glavni na običajen način.
In kaj je zdaj izjavljajo in sprožajo ali ustvarite to okno, GWindow -
in bomo poklicali spremenljivo okno -
dobi newGWindow.
In bomo poljubno bi bilo 320 pik po 240 slikovnih pik.
>> Poglejmo naslednji sprožajo krog.
Ampak, da se sprožajo ta krog, moramo narediti malo več dela.
Zlasti pa izpolnite v tem krogu tako da je celotna stvar
črni in ne samo njegov oris.
GOval -
imenovali jo bomo krog -
dobi newGOval.
Bomo dal ta oval na 0, 110, in se bomo narediti ovalne 20 slikovnih pik, ki jih
20 točk visoka - z drugimi besedami, premer 20 ali polmer 10.
>> Pojdimo zdaj nastaviti barvo tega kroga biti citiram, konec citata, "črno". Dajmo
Zdaj je določeno, da je treba zapolniti z določitvijo res.
In zdaj nazadnje, dodajmo še krog za okno, kot sledi, pri čemer
Slednja je dodamo k prejšnji.
>> Pojdimo zdaj razglaša dvojno.
Si bova hitrost.
In nekoliko arbitrarno, recimo, Hitrost tega kroga bo
2.0, z drugimi besedami, 2 točk za vsako časovno enoto.
In zdaj pa namerno izzivati neskončno zanko.
>> Torej, kako bi ta krog premetavati sem in tja?
Pa kaj je domnevati v to zanko, da za vsako časovno enoto, smo
dogaja, da se premaknete v krog le malo bit, ki temelji na hitrosti 2 pik
na časovno enoto.
Vendar nenehno, si bomo morali preverite, če je krog dotika
desni rob zaslona ali levo rob zaslona, ker če je tako, bomo
ga morali premetavati, če se tako izrazim.
>> Kako izvajati Pojem odbijal?
No, če gremo na 2 pik na desno na enoto časa, da se odbijajo
desni rob, smo lahko enostavno obrniti da negativna 2 pik na enoto
časa, s čimer izničen hitrost.
Torej v resnici, Odskočna razmeroma enostavna.
>> Poglejmo najprej premakniti krog s tem veliko točk vzdolž osi x, ki jih ta
Veliko točk vzdolž osi y.
Z drugimi besedami, ne želimo, da bi pomika po osi y sploh.
Mi samo želimo, da Odklonijo nazaj ter tja, levo in desno.
>> In kaj je zdaj preveriti v to zanko, če X-koordinata kroga plus
širina kroga je večja ali enako
Širina okna -
z drugimi besedami, če je lokacija kroga je plus širina kroga
Sam je zdaj mimo roba okna, bi bili
bolje obrniti našo hitrost -
Hitrost dobi negativno hitrost, s čimer lahkota pozitivna,
negativno ali negativno na pozitivno.
Toda kaj, če krog se gibljejo od od desne proti levi in se zato zadetkov
levi rob?
Z drugimi besedami, če je X-koordinata krog je sedaj manjša ali enaka
0, gremo naprej in znova obrnemo našo hitrost.
>> Torej, zakaj nisem dodal v širina kroga tega
čas, kot sem prej?
No, imejte v mislih, da koordinate predmeta so opredeljeni
po svoji zgornjem levem kotu, ne po svoji sredini.
In tako, ko je krog gibljejo od od leve proti desni, moramo preveriti
ali desnem robu Krog je opravil
desni rob okna.
Zato, da ugotovimo, kaj to pomeni, da moramo dobiti Apscisa kroga
plus širina kroga za premikanje sami od zgornjem levem
kotiček, učinkovito, da zgornjem kotu na desni strani.
Ko je krog gibljejo od desne proti levo, medtem, nam ni potrebno
sitnost s tako tega, ker zgornjem levem kotu kroga je
že vrednost se bomo dobili od get x.
>> Pojdimo zdaj premakniti žogo.
Pojdimo zdaj rešiti, pripravijo in vodijo to Program, da bounce, bounce. /.
In tam imamo program.
>> Ampak krog se premika tako presneto hitro, to je skoraj nemogoče, da vidim, kaj je
dejansko dogaja.
Torej, kaj je precej program silo z klikom na X v zgornjem desnem
corner tukaj.
Pojdimo zdaj vrniti v izvorno kodo in počasi stvari navzdol malo.
>> Z drugimi besedami, v tem neskončno zanke, ne samo, se gibljemo in
premikanje in znova, ad nauseum, kaj je ostajal za le nekaj milisekundah
Pred nadaljevanjem spet premikati.
Še posebej, greva na dno neskončne zanke tukaj in preprosto
premor za, recimo, 10 milisekund na vsaki ponovitvi.
Pojdimo zdaj prevedem in ponovitev bounce.
In zdaj smo videli veliko bolj razumno izvedba, kjer bomo lahko videli
Krog resnično odbijal na levi in desni rob.