>> Gjuha 1: Le tani shkruaj një program që përfshin një dritare, a
rrethi, dhe kursori im.
Në veçanti, le të ilustroj me shembull konkret një zi rrethi ne ekran, dhe pastaj
le të trajnuar që ajo të ndjekë kursorin tim.
Pra, nëse unë të lëvizur miun tim lart, poshtë, majtas apo të djathtë, rrethi ndjek së bashku.
>> Le të parë të përfshijë gevents.h, në mënyrë që ne kemi qasje në ngjarjet grafike.
Le të ardhshëm përfshijnë gobjects, kështu që ne kemi qasje në
objekte si qarqet -
ose më saktë, ovale, si ne do të shohim.
Dhe pastaj le të përfshijnë gwindow.h, kështu që ne kemi qasje të
në një dritare grafike.
Tjetër, le të deklarojë kryesore në mënyrë të zakonshme.
Void kryesore int.
Le tani ilustroj me shembull konkret, ose të krijojnë, një dritare me GWindow.
Dhe ne do të thërrasë dritaren ndryshueshme.
Merr newGWindow.
Dhe unë do të bëjë disi në mënyrë arbitrare dritare 320 piksele nga 240 pixels.
>> Tani ne kemi nevojë për të ilustroj me shembull konkret se rrethi.
E pra, ajo rezulton se një rreth është një rast i veçantë i një oval.
Kjo ndodh vetëm në mënyrë që gjerësia dhe lartësia e një rrethi janë të barabartë.
Pra, le të ilustroj me shembull konkret një oval si më poshtë.
GOval.
Ne do të thërrasë atë rrethi, edhe pse.
Dhe kjo do të marrë newGOval.
Dhe ne jemi duke shkuar për të specifikuar se ajo do të fillojë në top-majtë
qoshe, koordinatat e të cilit janë 0 presje 0.
Dhe gjerësia e kësaj globale do të jetë 50 me 50 -
me fjalë të tjera, një rreth.
>> Tani ne kemi një dritare, ne kemi një rreth.
Por ne ende nuk e kanë shtuar se rrethi në dritare.
Pra, ne kemi nevojë për të bërë këtë në mënyrë eksplicite.
Shto dritare, rreth.
Në këtë mënyrë duke shtuar këtë të fundit të ish.
>> Tani le të bëjë diçka përgjithmonë.
Le të ulen në një lak të pafund, dëgjuar për ngjarje të miut.
Në mënyrë të veçantë nuk klikimeve, por lëvizjet e miut.
Dhe për t'iu përgjigjur këtyre lëvizjeve duke lëvizur rreth.
Këtu ne do të shkojmë.
Ndërsa e vërtetë.
Le të kontrolloni për një ngjarje me GEvent, duke e quajtur atë ngjarje.
Merr getNextEvent.
Dhe le të përpiqen për të marrë në mënyrë specifike një ngjarje e miut e disa lloj.
Le të ardhshëm të sigurt se ngjarja ka jo të barabartë null, kështu që nuk ka
në të vërtetë diçka për t'iu përgjigjur.
>> Dhe le të kontrolloni nëse të ardhshëm getEventType, duke kaluar në rast, është e barabartë me MOUSE_MOVED,
cila është një konstante e veçantë, shpallet ne Biblioteka Portable Stanford, që
të thotë se miu është me të vërtetë lëvizur.
>> Pastaj le të vazhdojë të të bëjë të mëposhtme.
Shpallë të dyfishtë.
Dhe unë do të thërrasë atë x.
Specifikisht në ruajtjen se kthimit Vlera e getx të ngjarjes.
Me fjalë të tjera, të merrni mua x-koordinuar e ku
miut u zhvendos në.
Por vetëm për të bërë përzgjedhjen rrethi deri pikërisht në majë kursorit tim, më lejoni tani
zbres off gjerësia e Rrethi vetë e ndarë me 2.
Me fjalë të tjera, le të zbres off rreze e tij.
>> Le të bëjmë diçka të ngjashme tani për y.
Y merr të marrë koordinatën y e kësaj ngjarje -
që është, miut lëvizur -
minus getWidth e rrethit.
Dhe këtë herë ne do të bëjmë të plotë diametër, jo rrezja.
Së fundi, le të përcaktuar vendndodhjen e rrethi të jetë se re y x presje.
Le tani të shpëtuar, përpilojnë, dhe të drejtuar këtë program.
>> Bëni kursorin.
. / Kursorit.
Ka rreth në të të lartë të majtë qoshe dore.
Tani, më lejoni të lëvizur miun e mia mbi atë dritare dhe të shohim nëse shulat rrethi
mbi atë siç pritet.
Dhe në të vërtetë ajo bën.
Vini re se në mënyrë specifike, rrethi është në krye të kursorit tim,
në qendër të përkryer, për shkak të matematikës ne e ka përfshirë diametër saj dhe
rrezja e tij.