>> ZVUČNIK 1: Idemo sad napisati program koje na neki način komunicira sa svojim miša.
Konkretno, neka je instancu, ili stvoriti prozor.
A onda neka je slušaju, da se tako izrazim, unutar tog prozora za klikova mišem.
I čim smo otkriti miša, neka je ispisati s printf
koordinate x zarez y tog miša klik, u odnosu na taj prozor.
>> Ovdje ćemo ići.
Neka prvi su gevents.h, što je još jedna datoteka zaglavlja u Stanfordu
prijenosni knjižnica koja se odnosi na grafičkim događaja.
Idemo također uključuju gwindow.h, koji sadrži funkcije vezane uz Windows.
Idemo sad proglasiti glavna na uobičajeni način.
>> I neka je sad instancu taj prozor.
Gwindow -
ćemo ga zvati prozor -
jednako newGwindow.
I ja ću navesti nešto proizvoljno širine 320 piksela, a visina
240 piksela.
>> Sada moramo nastaviti slušati za miša događaja, tako da se
govoriti, unutar tog prozora.
Sada događanja uključuju klikove ili vuče ili pokreti.
No, za sada ćemo se usredotočiti samo na klikova.
Idem namjerno izazivati beskonačna petlja s while konstrukt,
jednostavno, tako da je ovaj program radi zauvijek, ili barem dok sam kliknite
X u gornjem desnom kutu.
>> Da biste to učinili, idemo raditi dok istina.
I onda unutar tog kruga, omogućuje prvi ček
miš događaja kako slijedi.
Mi ćemo proglasiti GEvent, da se tako izrazim.
>> Nazvat ćemo varijablu događaj.
I mi ćemo se spremiti u tome vratiti vrijednost getNextEvent, prolazi
u posebnom konstante, koja po Konvencija je zapisano u svim kape,
zove MOUSE_EVENT.
Drugim riječima, negdje u ovo Stanford prijenosni knjižnica, postoji
konstantna zove MOUSE_CLICED.
A tu je funkciju definirano da je zove getNextEvent, čija je svrha u
život je učiniti upravo to.
Slušajte, a onda kad se čuje jedan, vraća sljedeći događaj koji je
potaknuta korisnika miša.
>> Sada ćemo provjeriti je li taj događaj je ništavan.
Budući da to nije null, a to je da smo zapravo čuo nešto od
Korisnički miš, idemo nastaviti provjeriti što sada tipa
u slučaju da je.
Ako getEventType, prolazi događaj kao argument, jednako dosegne
MOUSE_CLICKED, koja bi trebala iznositi specifična vrsta događaja, što je samo
još jedna konstanta proglašen u Stanford prijenosni knjižnica.
Sada kao što je obećao, neka je sad isprintati koordinate tog klikom miša.
Printf "% .0 f.
>> Drugim riječima, ja idem za ispis iz Krajnja vrijednost.
Ali ja ne želim vidjeti ništa nakon decimalne točke.
Zato ću navesti 0,0.
Zarez, 0,0% f za y-koordinata te.
Backslash n blizu citat.
>> A sada idemo x-koordinata tog događaja.
To je x-koordinata od miša.
A onda idemo y događaja, što je y-koordinata
od miša.
>> Idemo sada spasiti, sastaviti, i pokrenuti ovaj program.
A kad radim, to bi trebao biti slučaj da bez obzira na to gdje sam kliknite roku
granica ovog 320 do 240 piksela prozor, a zatim sam se trebao vidjeti na mom
Konzola prozor x zarez y-koordinate gdje sam kliknuo.
Učinite klik.
. / Klik.
I tu je taj prozor smo i predvidjeli.
>> Sad neka mi kliknite otprilike u vrhu lijevom kutu prozora.
U mom zaslona konzole, vidim da sam dogoditi da kliknete na x-koordinata sedam
i y-koordinata sedam.
Idemo sada kliknite otprilike na dnu desnom kutu prozora.
I čini mi se da su kliknuli na pixel koordinirati 314, 229.
>> Idemo sada napraviti donji lijevi kut.
I vidim 6, 233.
I gornji desni kut, 305, 4.
>> Drugim riječima, čini se da se u slučaju da u gornjem lijevom kutu
naš prozor je 0, 0.
I donji desni kut mog prozora je 320, 240.
Drugim riječima, vidio bih upravo te vrijednosti, imala sam samo
savršeno usklađen moj pokazivač miša u svakoj od tih krajeva.
To je istina u cjelini u grafičkom programiranje, bilo pomoću
Stanford prijenosni knjižnica ili većina bilo drugo, pri čemu mi predstavljaju vrh
kutak kao 0, 0, a na dnu desni kut kao širina zarezom
Visina, koristeći pozitivne brojeve, pa čak i iako je dolje i na desnoj strani.