1 00:00:00,000 --> 00:00:00,320 2 00:00:00,320 --> 00:00:02,520 >> 揚聲器1:現在,讓我們寫一個程序 這涉及到一個窗口,一個 3 00:00:02,520 --> 00:00:04,070 圓,和我的光標。 4 00:00:04,070 --> 00:00:07,890 尤其是,讓我們實例化一個黑色 圓圈在屏幕上,然後 5 00:00:07,890 --> 00:00:10,180 讓我們來訓練它跟著我的光標。 6 00:00:10,180 --> 00:00:14,650 所以,如果我移動我的鼠標向上,向下,向左 或右,圓圈所示沿。 7 00:00:14,650 --> 00:00:20,630 >> 讓我們首先包括gevents.h,使 我們可以使用圖形化的事件。 8 00:00:20,630 --> 00:00:25,060 讓我們接下來包括gobjects, 讓我們有機會獲得 9 00:00:25,060 --> 00:00:26,480 如圓的物體 - 10 00:00:26,480 --> 00:00:28,890 或者更確切地說,橢圓形, 正如我們將看到的。 11 00:00:28,890 --> 00:00:32,560 然後讓我們有gwindow.h, 讓我們有機會 12 00:00:32,560 --> 00:00:34,090 到圖形窗口。 13 00:00:34,090 --> 00:00:36,860 接下來,讓我們來宣告主 在通常的方式。 14 00:00:36,860 --> 00:00:39,460 詮釋主要作廢。 15 00:00:39,460 --> 00:00:43,090 現在讓我們來實例化,或創建, 與GWindow一個窗口。 16 00:00:43,090 --> 00:00:45,390 我們會打電話給變量窗口。 17 00:00:45,390 --> 00:00:47,890 獲取newGWindow。 18 00:00:47,890 --> 00:00:53,380 我會有點隨意使 窗口320像素×240像素。 19 00:00:53,380 --> 00:00:55,280 >> 現在,我們需要實例化 那個圈子。 20 00:00:55,280 --> 00:00:58,160 嗯,事實證明,一個圓 是橢圓形的一種特殊情況。 21 00:00:58,160 --> 00:01:01,780 它只是恰巧,寬度和 一個圓圈的高度是相等的。 22 00:01:01,780 --> 00:01:04,599 因此,讓我們實例化 一個橢圓形的,如下所示。 23 00:01:04,599 --> 00:01:05,770 GOval。 24 00:01:05,770 --> 00:01:07,950 我們叫它圈,雖然。 25 00:01:07,950 --> 00:01:11,160 而且會得到newGOval。 26 00:01:11,160 --> 00:01:14,340 而我們要指定它 將開始在左上角 27 00:01:14,340 --> 00:01:17,050 角落裡,其坐標 有0逗號0。 28 00:01:17,050 --> 00:01:21,360 而這一全球性的寬度 將是50 50 - 29 00:01:21,360 --> 00:01:23,700 換句話說,一個圓。 30 00:01:23,700 --> 00:01:26,090 >> 現在我們有一個窗口, 我們有一個圓。 31 00:01:26,090 --> 00:01:28,950 但我們還沒有說, 圓形窗口。 32 00:01:28,950 --> 00:01:32,000 因此,我們需要明確做到這一點。 33 00:01:32,000 --> 00:01:34,760 添加窗口,圓。 34 00:01:34,760 --> 00:01:37,540 從而增加後者 前者。 35 00:01:37,540 --> 00:01:39,080 >> 現在,讓我們做一些事情,直到永遠。 36 00:01:39,080 --> 00:01:42,520 讓我們坐在一個無限循環, 監聽鼠標事件。 37 00:01:42,520 --> 00:01:45,270 具體來說不是點擊,而是 鼠標的移動。 38 00:01:45,270 --> 00:01:48,450 而對於那些動作回應 通過移動圓。 39 00:01:48,450 --> 00:01:49,630 在這裡,我們走了。 40 00:01:49,630 --> 00:01:52,820 而真實的。 41 00:01:52,820 --> 00:01:56,710 讓我們為一個事件與查詢 GEVENT,稱這事件。 42 00:01:56,710 --> 00:01:59,580 獲取getNextEvent。 43 00:01:59,580 --> 00:02:03,460 而且,我們特別嘗試獲得 某種類型的鼠標事件。 44 00:02:03,460 --> 00:02:07,250 讓我們接下來請確保事件不會 不等於空值,以便有 45 00:02:07,250 --> 00:02:08,650 其實東西回應。 46 00:02:08,650 --> 00:02:11,890 47 00:02:11,890 --> 00:02:19,990 >> 並讓我們下一個檢查,如果getEventType, 傳遞事件,等於MOUSE_MOVED, 48 00:02:19,990 --> 00:02:23,180 這是一個特殊的常量,在宣布 斯坦福便攜圖書館,那 49 00:02:23,180 --> 00:02:25,540 標誌著鼠標 確實被感動了。 50 00:02:25,540 --> 00:02:28,830 >> 那麼,讓我們進入 做到以下幾點。 51 00:02:28,830 --> 00:02:29,580 聲明一個雙。 52 00:02:29,580 --> 00:02:31,050 我會打電話給它按x。 53 00:02:31,050 --> 00:02:35,470 具體地存儲在該返回 事件的getX的價值。 54 00:02:35,470 --> 00:02:37,710 換句話說,讓我的 的,其中x坐標 55 00:02:37,710 --> 00:02:39,320 鼠標被移動到。 56 00:02:39,320 --> 00:02:44,480 但只是為了圓排隊 正是頂上我的光標,讓我現在 57 00:02:44,480 --> 00:02:49,600 減去關閉的寬度 圈本身除以2。 58 00:02:49,600 --> 00:02:52,160 換句話說,讓我們減去 關閉它的半徑。 59 00:02:52,160 --> 00:02:54,180 >> 讓我們做類似的事情現在年。 60 00:02:54,180 --> 00:02:57,840 Y獲取得到的y坐標 該事 - 61 00:02:57,840 --> 00:02:59,930 即,移動鼠標 - 62 00:02:59,930 --> 00:03:03,320 減去圓的getWidth。 63 00:03:03,320 --> 00:03:06,810 而這個時候,我們會做的全部 徑,而不是半徑。 64 00:03:06,810 --> 00:03:13,650 最後,讓我們設置的位置 圓圈是,新的x逗號年。 65 00:03:13,650 --> 00:03:17,670 現在,讓我們保存,編譯, 並運行此程序。 66 00:03:17,670 --> 00:03:19,710 >> 使光標。 67 00:03:19,710 --> 00:03:22,550 /光標。 68 00:03:22,550 --> 00:03:25,410 有一個在圓 頂部左手角落。 69 00:03:25,410 --> 00:03:29,530 現在,讓我移動我的鼠標移到該 窗口,看看鎖圈 70 00:03:29,530 --> 00:03:32,200 到它如預期。 71 00:03:32,200 --> 00:03:33,490 而事實上確實如此。 72 00:03:33,490 --> 00:03:38,380 注意,具體而言,該圓 是我的光標的最頂端, 73 00:03:38,380 --> 00:03:42,580 完全集中,因為數學, 我們沒有涉及其直徑和 74 00:03:42,580 --> 00:03:43,830 它的半徑。 75 00:03:43,830 --> 00:03:45,395