1 00:00:00,000 --> 00:00:00,320 2 00:00:00,320 --> 00:00:02,520 >> Gjuha 1: Le tani shkruaj një program që përfshin një dritare, a 3 00:00:02,520 --> 00:00:04,070 rrethi, dhe kursori im. 4 00:00:04,070 --> 00:00:07,890 Në veçanti, le të ilustroj me shembull konkret një zi rrethi ne ekran, dhe pastaj 5 00:00:07,890 --> 00:00:10,180 le të trajnuar që ajo të ndjekë kursorin tim. 6 00:00:10,180 --> 00:00:14,650 Pra, nëse unë të lëvizur miun tim lart, poshtë, majtas apo të djathtë, rrethi ndjek së bashku. 7 00:00:14,650 --> 00:00:20,630 >> Le të parë të përfshijë gevents.h, në mënyrë që ne kemi qasje në ngjarjet grafike. 8 00:00:20,630 --> 00:00:25,060 Le të ardhshëm përfshijnë gobjects, kështu që ne kemi qasje në 9 00:00:25,060 --> 00:00:26,480 objekte si qarqet - 10 00:00:26,480 --> 00:00:28,890 ose më saktë, ovale, si ne do të shohim. 11 00:00:28,890 --> 00:00:32,560 Dhe pastaj le të përfshijnë gwindow.h, kështu që ne kemi qasje të 12 00:00:32,560 --> 00:00:34,090 në një dritare grafike. 13 00:00:34,090 --> 00:00:36,860 Tjetër, le të deklarojë kryesore në mënyrë të zakonshme. 14 00:00:36,860 --> 00:00:39,460 Void kryesore int. 15 00:00:39,460 --> 00:00:43,090 Le tani ilustroj me shembull konkret, ose të krijojnë, një dritare me GWindow. 16 00:00:43,090 --> 00:00:45,390 Dhe ne do të thërrasë dritaren ndryshueshme. 17 00:00:45,390 --> 00:00:47,890 Merr newGWindow. 18 00:00:47,890 --> 00:00:53,380 Dhe unë do të bëjë disi në mënyrë arbitrare dritare 320 piksele nga 240 pixels. 19 00:00:53,380 --> 00:00:55,280 >> Tani ne kemi nevojë për të ilustroj me shembull konkret se rrethi. 20 00:00:55,280 --> 00:00:58,160 E pra, ajo rezulton se një rreth është një rast i veçantë i një oval. 21 00:00:58,160 --> 00:01:01,780 Kjo ndodh vetëm në mënyrë që gjerësia dhe lartësia e një rrethi janë të barabartë. 22 00:01:01,780 --> 00:01:04,599 Pra, le të ilustroj me shembull konkret një oval si më poshtë. 23 00:01:04,599 --> 00:01:05,770 GOval. 24 00:01:05,770 --> 00:01:07,950 Ne do të thërrasë atë rrethi, edhe pse. 25 00:01:07,950 --> 00:01:11,160 Dhe kjo do të marrë newGOval. 26 00:01:11,160 --> 00:01:14,340 Dhe ne jemi duke shkuar për të specifikuar se ajo do të fillojë në top-majtë 27 00:01:14,340 --> 00:01:17,050 qoshe, koordinatat e të cilit janë 0 presje 0. 28 00:01:17,050 --> 00:01:21,360 Dhe gjerësia e kësaj globale do të jetë 50 me 50 - 29 00:01:21,360 --> 00:01:23,700 me fjalë të tjera, një rreth. 30 00:01:23,700 --> 00:01:26,090 >> Tani ne kemi një dritare, ne kemi një rreth. 31 00:01:26,090 --> 00:01:28,950 Por ne ende nuk e kanë shtuar se rrethi në dritare. 32 00:01:28,950 --> 00:01:32,000 Pra, ne kemi nevojë për të bërë këtë në mënyrë eksplicite. 33 00:01:32,000 --> 00:01:34,760 Shto dritare, rreth. 34 00:01:34,760 --> 00:01:37,540 Në këtë mënyrë duke shtuar këtë të fundit të ish. 35 00:01:37,540 --> 00:01:39,080 >> Tani le të bëjë diçka përgjithmonë. 36 00:01:39,080 --> 00:01:42,520 Le të ulen në një lak të pafund, dëgjuar për ngjarje të miut. 37 00:01:42,520 --> 00:01:45,270 Në mënyrë të veçantë nuk klikimeve, por lëvizjet e miut. 38 00:01:45,270 --> 00:01:48,450 Dhe për t'iu përgjigjur këtyre lëvizjeve duke lëvizur rreth. 39 00:01:48,450 --> 00:01:49,630 Këtu ne do të shkojmë. 40 00:01:49,630 --> 00:01:52,820 Ndërsa e vërtetë. 41 00:01:52,820 --> 00:01:56,710 Le të kontrolloni për një ngjarje me GEvent, duke e quajtur atë ngjarje. 42 00:01:56,710 --> 00:01:59,580 Merr getNextEvent. 43 00:01:59,580 --> 00:02:03,460 Dhe le të përpiqen për të marrë në mënyrë specifike një ngjarje e miut e disa lloj. 44 00:02:03,460 --> 00:02:07,250 Le të ardhshëm të sigurt se ngjarja ka jo të barabartë null, kështu që nuk ka 45 00:02:07,250 --> 00:02:08,650 në të vërtetë diçka për t'iu përgjigjur. 46 00:02:08,650 --> 00:02:11,890 47 00:02:11,890 --> 00:02:19,990 >> Dhe le të kontrolloni nëse të ardhshëm getEventType, duke kaluar në rast, është e barabartë me MOUSE_MOVED, 48 00:02:19,990 --> 00:02:23,180 cila është një konstante e veçantë, shpallet ne Biblioteka Portable Stanford, që 49 00:02:23,180 --> 00:02:25,540 të thotë se miu është me të vërtetë lëvizur. 50 00:02:25,540 --> 00:02:28,830 >> Pastaj le të vazhdojë të të bëjë të mëposhtme. 51 00:02:28,830 --> 00:02:29,580 Shpallë të dyfishtë. 52 00:02:29,580 --> 00:02:31,050 Dhe unë do të thërrasë atë x. 53 00:02:31,050 --> 00:02:35,470 Specifikisht në ruajtjen se kthimit Vlera e getx të ngjarjes. 54 00:02:35,470 --> 00:02:37,710 Me fjalë të tjera, të merrni mua x-koordinuar e ku 55 00:02:37,710 --> 00:02:39,320 miut u zhvendos në. 56 00:02:39,320 --> 00:02:44,480 Por vetëm për të bërë përzgjedhjen rrethi deri pikërisht në majë kursorit tim, më lejoni tani 57 00:02:44,480 --> 00:02:49,600 zbres off gjerësia e Rrethi vetë e ndarë me 2. 58 00:02:49,600 --> 00:02:52,160 Me fjalë të tjera, le të zbres off rreze e tij. 59 00:02:52,160 --> 00:02:54,180 >> Le të bëjmë diçka të ngjashme tani për y. 60 00:02:54,180 --> 00:02:57,840 Y merr të marrë koordinatën y e kësaj ngjarje - 61 00:02:57,840 --> 00:02:59,930 që është, miut lëvizur - 62 00:02:59,930 --> 00:03:03,320 minus getWidth e rrethit. 63 00:03:03,320 --> 00:03:06,810 Dhe këtë herë ne do të bëjmë të plotë diametër, jo rrezja. 64 00:03:06,810 --> 00:03:13,650 Së fundi, le të përcaktuar vendndodhjen e rrethi të jetë se re y x presje. 65 00:03:13,650 --> 00:03:17,670 Le tani të shpëtuar, përpilojnë, dhe të drejtuar këtë program. 66 00:03:17,670 --> 00:03:19,710 >> Bëni kursorin. 67 00:03:19,710 --> 00:03:22,550 . / Kursorit. 68 00:03:22,550 --> 00:03:25,410 Ka rreth në të të lartë të majtë qoshe dore. 69 00:03:25,410 --> 00:03:29,530 Tani, më lejoni të lëvizur miun e mia mbi atë dritare dhe të shohim nëse shulat rrethi 70 00:03:29,530 --> 00:03:32,200 mbi atë siç pritet. 71 00:03:32,200 --> 00:03:33,490 Dhe në të vërtetë ajo bën. 72 00:03:33,490 --> 00:03:38,380 Vini re se në mënyrë specifike, rrethi është në krye të kursorit tim, 73 00:03:38,380 --> 00:03:42,580 në qendër të përkryer, për shkak të matematikës ne e ka përfshirë diametër saj dhe 74 00:03:42,580 --> 00:03:43,830 rrezja e tij. 75 00:03:43,830 --> 00:03:45,395