1 00:00:00,000 --> 00:00:00,260 2 00:00:00,260 --> 00:00:02,980 >> ZVUČNIK 1: Idemo sad napisati program koje na neki način komunicira sa svojim miša. 3 00:00:02,980 --> 00:00:06,150 Konkretno, neka je instancu, ili stvoriti prozor. 4 00:00:06,150 --> 00:00:09,700 A onda neka je slušaju, da se tako izrazim, unutar tog prozora za klikova mišem. 5 00:00:09,700 --> 00:00:12,940 I čim smo otkriti miša, neka je ispisati s printf 6 00:00:12,940 --> 00:00:17,830 koordinate x zarez y tog miša klik, u odnosu na taj prozor. 7 00:00:17,830 --> 00:00:18,880 >> Ovdje ćemo ići. 8 00:00:18,880 --> 00:00:24,670 Neka prvi su gevents.h, što je još jedna datoteka zaglavlja u Stanfordu 9 00:00:24,670 --> 00:00:27,670 prijenosni knjižnica koja se odnosi na grafičkim događaja. 10 00:00:27,670 --> 00:00:33,480 Idemo također uključuju gwindow.h, koji sadrži funkcije vezane uz Windows. 11 00:00:33,480 --> 00:00:37,390 Idemo sad proglasiti glavna na uobičajeni način. 12 00:00:37,390 --> 00:00:39,680 >> I neka je sad instancu taj prozor. 13 00:00:39,680 --> 00:00:40,830 Gwindow - 14 00:00:40,830 --> 00:00:42,180 ćemo ga zvati prozor - 15 00:00:42,180 --> 00:00:44,710 jednako newGwindow. 16 00:00:44,710 --> 00:00:49,150 I ja ću navesti nešto proizvoljno širine 320 piksela, a visina 17 00:00:49,150 --> 00:00:51,460 240 piksela. 18 00:00:51,460 --> 00:00:54,380 >> Sada moramo nastaviti slušati za miša događaja, tako da se 19 00:00:54,380 --> 00:00:56,020 govoriti, unutar tog prozora. 20 00:00:56,020 --> 00:00:59,450 Sada događanja uključuju klikove ili vuče ili pokreti. 21 00:00:59,450 --> 00:01:01,400 No, za sada ćemo se usredotočiti samo na klikova. 22 00:01:01,400 --> 00:01:05,740 Idem namjerno izazivati beskonačna petlja s while konstrukt, 23 00:01:05,740 --> 00:01:08,770 jednostavno, tako da je ovaj program radi zauvijek, ili barem dok sam kliknite 24 00:01:08,770 --> 00:01:10,450 X u gornjem desnom kutu. 25 00:01:10,450 --> 00:01:13,670 >> Da biste to učinili, idemo raditi dok istina. 26 00:01:13,670 --> 00:01:16,900 I onda unutar tog kruga, omogućuje prvi ček 27 00:01:16,900 --> 00:01:18,430 miš događaja kako slijedi. 28 00:01:18,430 --> 00:01:21,200 Mi ćemo proglasiti GEvent, da se tako izrazim. 29 00:01:21,200 --> 00:01:22,920 >> Nazvat ćemo varijablu događaj. 30 00:01:22,920 --> 00:01:27,740 I mi ćemo se spremiti u tome vratiti vrijednost getNextEvent, prolazi 31 00:01:27,740 --> 00:01:31,970 u posebnom konstante, koja po Konvencija je zapisano u svim kape, 32 00:01:31,970 --> 00:01:34,060 zove MOUSE_EVENT. 33 00:01:34,060 --> 00:01:36,800 Drugim riječima, negdje u ovo Stanford prijenosni knjižnica, postoji 34 00:01:36,800 --> 00:01:39,120 konstantna zove MOUSE_CLICED. 35 00:01:39,120 --> 00:01:43,040 A tu je funkciju definirano da je zove getNextEvent, čija je svrha u 36 00:01:43,040 --> 00:01:44,360 život je učiniti upravo to. 37 00:01:44,360 --> 00:01:48,330 Slušajte, a onda kad se čuje jedan, vraća sljedeći događaj koji je 38 00:01:48,330 --> 00:01:50,500 potaknuta korisnika miša. 39 00:01:50,500 --> 00:01:53,710 >> Sada ćemo provjeriti je li taj događaj je ništavan. 40 00:01:53,710 --> 00:01:57,400 Budući da to nije null, a to je da smo zapravo čuo nešto od 41 00:01:57,400 --> 00:02:00,450 Korisnički miš, idemo nastaviti provjeriti što sada tipa 42 00:02:00,450 --> 00:02:03,001 u slučaju da je. 43 00:02:03,001 --> 00:02:09,050 Ako getEventType, prolazi događaj kao argument, jednako dosegne 44 00:02:09,050 --> 00:02:14,070 MOUSE_CLICKED, koja bi trebala iznositi specifična vrsta događaja, što je samo 45 00:02:14,070 --> 00:02:17,110 još jedna konstanta proglašen u Stanford prijenosni knjižnica. 46 00:02:17,110 --> 00:02:21,400 Sada kao što je obećao, neka je sad isprintati koordinate tog klikom miša. 47 00:02:21,400 --> 00:02:26,000 Printf "% .0 f. 48 00:02:26,000 --> 00:02:28,340 >> Drugim riječima, ja idem za ispis iz Krajnja vrijednost. 49 00:02:28,340 --> 00:02:30,240 Ali ja ne želim vidjeti ništa nakon decimalne točke. 50 00:02:30,240 --> 00:02:32,260 Zato ću navesti 0,0. 51 00:02:32,260 --> 00:02:36,380 Zarez, 0,0% f za y-koordinata te. 52 00:02:36,380 --> 00:02:38,000 Backslash n blizu citat. 53 00:02:38,000 --> 00:02:41,260 >> A sada idemo x-koordinata tog događaja. 54 00:02:41,260 --> 00:02:43,530 To je x-koordinata od miša. 55 00:02:43,530 --> 00:02:46,990 A onda idemo y događaja, što je y-koordinata 56 00:02:46,990 --> 00:02:48,170 od miša. 57 00:02:48,170 --> 00:02:50,920 >> Idemo sada spasiti, sastaviti, i pokrenuti ovaj program. 58 00:02:50,920 --> 00:02:54,160 A kad radim, to bi trebao biti slučaj da bez obzira na to gdje sam kliknite roku 59 00:02:54,160 --> 00:02:58,850 granica ovog 320 do 240 piksela prozor, a zatim sam se trebao vidjeti na mom 60 00:02:58,850 --> 00:03:03,570 Konzola prozor x zarez y-koordinate gdje sam kliknuo. 61 00:03:03,570 --> 00:03:05,430 Učinite klik. 62 00:03:05,430 --> 00:03:07,890 . / Klik. 63 00:03:07,890 --> 00:03:09,630 I tu je taj prozor smo i predvidjeli. 64 00:03:09,630 --> 00:03:14,300 >> Sad neka mi kliknite otprilike u vrhu lijevom kutu prozora. 65 00:03:14,300 --> 00:03:18,150 U mom zaslona konzole, vidim da sam dogoditi da kliknete na x-koordinata sedam 66 00:03:18,150 --> 00:03:19,700 i y-koordinata sedam. 67 00:03:19,700 --> 00:03:22,840 Idemo sada kliknite otprilike na dnu desnom kutu prozora. 68 00:03:22,840 --> 00:03:27,890 I čini mi se da su kliknuli na pixel koordinirati 314, 229. 69 00:03:27,890 --> 00:03:30,330 >> Idemo sada napraviti donji lijevi kut. 70 00:03:30,330 --> 00:03:32,430 I vidim 6, 233. 71 00:03:32,430 --> 00:03:35,680 I gornji desni kut, 305, 4. 72 00:03:35,680 --> 00:03:38,810 >> Drugim riječima, čini se da se u slučaju da u gornjem lijevom kutu 73 00:03:38,810 --> 00:03:40,655 naš prozor je 0, 0. 74 00:03:40,655 --> 00:03:46,080 I donji desni kut mog prozora je 320, 240. 75 00:03:46,080 --> 00:03:48,990 Drugim riječima, vidio bih upravo te vrijednosti, imala sam samo 76 00:03:48,990 --> 00:03:52,180 savršeno usklađen moj pokazivač miša u svakoj od tih krajeva. 77 00:03:52,180 --> 00:03:54,960 To je istina u cjelini u grafičkom programiranje, bilo pomoću 78 00:03:54,960 --> 00:03:58,860 Stanford prijenosni knjižnica ili većina bilo drugo, pri čemu mi predstavljaju vrh 79 00:03:58,860 --> 00:04:03,050 kutak kao 0, 0, a na dnu desni kut kao širina zarezom 80 00:04:03,050 --> 00:04:06,810 Visina, koristeći pozitivne brojeve, pa čak i iako je dolje i na desnoj strani. 81 00:04:06,810 --> 00:04:08,615