1 00:00:00,000 --> 00:00:00,320 2 00:00:00,320 --> 00:00:02,520 >> SPEAKER 1: Nézzük most írni egy programot , amely magában foglalja egy ablak, egy 3 00:00:02,520 --> 00:00:04,070 kör, és a kurzor. 4 00:00:04,070 --> 00:00:07,890 Különösen, nézzük példányosítani egy fekete kör a képernyőn, majd 5 00:00:07,890 --> 00:00:10,180 nézzük a vonat, hogy kövesd a kurzort. 6 00:00:10,180 --> 00:00:14,650 Tehát, ha mozgok az egér fel, le, balra vagy jobbra, a kör mentén mozog. 7 00:00:14,650 --> 00:00:20,630 >> Nézzük először közé gevents.h, hogy a akkor férhetnek hozzá grafikus eseményeket. 8 00:00:20,630 --> 00:00:25,060 Nézzük a következő közé gobjects, , hogy mi férhet hozzá 9 00:00:25,060 --> 00:00:26,480 tárgyak, mint a kör - 10 00:00:26,480 --> 00:00:28,890 vagy pontosabban, ovális, mint látni fogjuk. 11 00:00:28,890 --> 00:00:32,560 És akkor menjünk közé gwindow.h, azért, hogy hozzáférjenek 12 00:00:32,560 --> 00:00:34,090 egy grafikus ablakot. 13 00:00:34,090 --> 00:00:36,860 Ezután nézzük kijelentem fő a szokásos módon. 14 00:00:36,860 --> 00:00:39,460 Int main semmis. 15 00:00:39,460 --> 00:00:43,090 Nézzük most példányosítani, vagy hozzon létre, egy ablakot GWindow. 16 00:00:43,090 --> 00:00:45,390 És hívjuk változó ablakot. 17 00:00:45,390 --> 00:00:47,890 Gets newGWindow. 18 00:00:47,890 --> 00:00:53,380 És én némileg önkényesen, hogy a ablak 320 x 240 pixel. 19 00:00:53,380 --> 00:00:55,280 >> Most arra van szükség, hogy példányosítani hogy a kör. 20 00:00:55,280 --> 00:00:58,160 Nos, kiderült, hogy egy kört egy speciális esete egy ovális. 21 00:00:58,160 --> 00:01:01,780 Ez csak azért történik, hogy a szélesség és a magassága egy kör egyenlő. 22 00:01:01,780 --> 00:01:04,599 Szóval példányosítani egy ovális a következők szerint. 23 00:01:04,599 --> 00:01:05,770 GOval. 24 00:01:05,770 --> 00:01:07,950 Fogjuk hívni, hogy kör, mégis. 25 00:01:07,950 --> 00:01:11,160 És ez fog kapni newGOval. 26 00:01:11,160 --> 00:01:14,340 És meg fogjuk adni, hogy a indul a bal felső 27 00:01:14,340 --> 00:01:17,050 sarok, amelynek koordinátái 0 vessző 0-ra. 28 00:01:17,050 --> 00:01:21,360 És a szélessége e globális lesz 50 50 - 29 00:01:21,360 --> 00:01:23,700 más szóval, egy kör. 30 00:01:23,700 --> 00:01:26,090 >> Most van egy ablak, van egy kör. 31 00:01:26,090 --> 00:01:28,950 De még nem adott hozzá, hogy kör az ablakhoz. 32 00:01:28,950 --> 00:01:32,000 Így kell tennünk, amelyek kifejezetten. 33 00:01:32,000 --> 00:01:34,760 Add ablakban kör. 34 00:01:34,760 --> 00:01:37,540 Ezáltal hozzá az utóbbi a korábbi. 35 00:01:37,540 --> 00:01:39,080 >> Most valami örökre. 36 00:01:39,080 --> 00:01:42,520 Üljünk egy végtelen ciklusba, hallgatta egér eseményeket. 37 00:01:42,520 --> 00:01:45,270 Pontosabban nem kattan, de mozgását az egér. 38 00:01:45,270 --> 00:01:48,450 És reagálni ezekre a mozgások azáltal, hogy a kör. 39 00:01:48,450 --> 00:01:49,630 Itt vagyunk. 40 00:01:49,630 --> 00:01:52,820 Miközben igaz. 41 00:01:52,820 --> 00:01:56,710 Nézzük meg egy esemény GEvent, amelyben az esemény. 42 00:01:56,710 --> 00:01:59,580 Gets getNextEvent. 43 00:01:59,580 --> 00:02:03,460 És nézzük konkrétan meg kell kérni egér esetén bizonyos típusú. 44 00:02:03,460 --> 00:02:07,250 Nézzük a következő győződjön meg arról, hogy az esemény nem nem egyenlő nulla, így van 45 00:02:07,250 --> 00:02:08,650 valóban valami, hogy válaszoljon. 46 00:02:08,650 --> 00:02:11,890 47 00:02:11,890 --> 00:02:19,990 >> És nézzük következő ellenőrzés esetén getEventType, halad esetben, egyenlő MOUSE_MOVED, 48 00:02:19,990 --> 00:02:23,180 amely egy speciális állandó, bejelentett A Stanford hordozható könyvtár, hogy 49 00:02:23,180 --> 00:02:25,540 azt jelenti, hogy az egér valóban átkerült. 50 00:02:25,540 --> 00:02:28,830 >> Akkor hát folytassa a tegye a következőket. 51 00:02:28,830 --> 00:02:29,580 Állapítsa kettős. 52 00:02:29,580 --> 00:02:31,050 És én hívom x. 53 00:02:31,050 --> 00:02:35,470 Konkrétan tárolja, hogy a visszatérő értéke getX az esemény. 54 00:02:35,470 --> 00:02:37,710 Más szóval, hogy nekem a x-koordinátája, ahol a 55 00:02:37,710 --> 00:02:39,320 egér költözött. 56 00:02:39,320 --> 00:02:44,480 De csak azért, hogy a kör line up Pontosan tetején a kurzor, hadd már 57 00:02:44,480 --> 00:02:49,600 vonjuk ki a szélessége a kör maga osztva 2. 58 00:02:49,600 --> 00:02:52,160 Más szóval, nézzük kivonás off sugara. 59 00:02:52,160 --> 00:02:54,180 >> Csináljunk valami hasonlót most y. 60 00:02:54,180 --> 00:02:57,840 Y kapja, hogy az y-koordináta Az, hogy az esemény - 61 00:02:57,840 --> 00:02:59,930 azaz, a mozgatott egér - 62 00:02:59,930 --> 00:03:03,320 mínusz getwidth a kör. 63 00:03:03,320 --> 00:03:06,810 És ezúttal megteszem a teljes átmérőjű, nem a sugár. 64 00:03:06,810 --> 00:03:13,650 Végül nézzük meg a helyét a kör is, hogy az új x vessző y. 65 00:03:13,650 --> 00:03:17,670 Nézzük most menteni, fordítani, és futtassa ezt a programot. 66 00:03:17,670 --> 00:03:19,710 >> Legyen kurzor. 67 00:03:19,710 --> 00:03:22,550 . / Kurzor. 68 00:03:22,550 --> 00:03:25,410 Ott van a kör bal felső sarkában. 69 00:03:25,410 --> 00:03:29,530 Nos, hadd mozgatni a kurzort, hogy ablakot, és nézd meg a kör reteszeket 70 00:03:29,530 --> 00:03:32,200 rá, mint várták. 71 00:03:32,200 --> 00:03:33,490 És valóban így van. 72 00:03:33,490 --> 00:03:38,380 Figyeljük meg, hogy konkrétan, a kör áll a legtetején a kurzor, 73 00:03:38,380 --> 00:03:42,580 tökéletesen középre, mert a matematikai tettünk bevonásával átmérője és 74 00:03:42,580 --> 00:03:43,830 sugara. 75 00:03:43,830 --> 00:03:45,395