>> Виступаючий 1: Давайте тепер написати програму який включає в себе вікна,
коло, і мій курсор.
Зокрема, давайте примірник чорний коло на екрані, а потім
давайте навчати це слідувати моїм курсор.
Так що якщо я рухаю миша вгору, вниз, вліво або вправо, коло слід уздовж.
>> Давайте спочатку включають gevents.h, так що ми маємо доступ до графічних подій.
Давайте наступне включають GObjects, так що ми маємо доступ до
об'єкти, такі як колах -
або, точніше, овали, як ми побачимо.
А потім давайте включимо gwindow.h, так що у нас є доступ
в графічному вікні.
Далі, давайте оголосити головним звичайним способом.
Int основний недійсними.
Давайте тепер примірник, або зареєструватися, вікно з GWindow.
І ми будемо називати змінну вікно.
Отримує newGWindow.
І я буду кілька довільно зробити віконні 320 пікселів на 240 пікселів.
>> Тепер нам потрібно створити екземпляр що коло.
Ну, виходить, що окружність є окремим випадком овалу.
Просто так сталося, що ширина і висота окружності рівні.
Так що давайте примірник овальний таким чином.
GOval.
Ми будемо називати його коло, однако.
І, що збирається отримати newGOval.
І ми збираємося вказати, що це почнеться у верхньому лівому
кут, координати якого від 0 кома 0.
І ширина цієї глобальної будуть 50 на 50 -
іншими словами, коло.
>> Тепер у нас є вікно, у нас є коло.
Але ми ще не додав, що коло до вікна.
Так що ми повинні зробити це явно.
Додати вікна, коло.
Таким чином, додавши останню до першого.
>> Тепер давайте зробимо що-небудь назавжди.
Давайте сядемо в нескінченний цикл, прослуховування подій миші.
Зокрема, не натискає, але руху миші.
І реагувати на ці рухи переміщенням коло.
Тут ми йдемо.
У той час як вірно.
Давайте перевіримо для події з GEvent, назвавши його подією.
Отримує getNextEvent.
І давайте конкретно спробувати отримати подія миші чи іншого типу.
Давайте наступне переконайтеся, що подія робить НЕ дорівнює NULL, так що є
насправді щось реагувати.
>> І давайте чергова перевірка, якщо getEventType, переходячи в разі, дорівнює MOUSE_MOVED,
який є спеціальним постійним, заявив в Портативний Бібліотека Стенфорд, що
означає, що миша дійсно був переміщений.
>> Тоді давайте перейдемо до виконайте наступні дії.
Оголосіть дубль.
І я буду називати це х.
Зокрема зберігання в тому, що повернення Значення GetX заходи.
Іншими словами, зрозумійте мене х-координату, де
миші був переміщений в.
Але тільки, щоб зробити коло складі точно на вершині мого курсора, дозвольте мені тепер
відняти від ширини Сам коло, розділене на 2.
Іншими словами, давайте віднімемо від її радіуса.
>> Давайте зробимо щось подібне і отримаєте у.
Y отримує отримати координати у про цю подію -
тобто, переїхав миші -
мінус GetWidth кола.
І на цей раз ми зробимо повний діаметр, що не радіус.
Нарешті, давайте встановити місце розташування Коло бути, що нова х кома у.
Давайте тепер зберегти, скомпілювати, і запустити цю програму.
>> Зробити курсор.
. / Курсор.
Там в коло в верхньому лівому кутку.
Тепер, дозвольте мені поворухнути курсор, що вікно і подивитися, якщо засувки коло
на нього, як очікувалося.
І дійсно це робить.
Зверніть увагу, що конкретно, коло є на самому верху мого курсора,
строго по центру, у зв'язку з математикою ми з участю його діаметр і
його радіус.