SPEAKER 1: Vediamo ora scriviamo un programma che coinvolge una finestra, un cerchio, e il mio cursore. In particolare, cerchiamo di creare un'istanza di un nero cerchio sullo schermo, e quindi cerchiamo di addestrarlo a seguire il mio cursore. Quindi, se io sposto il mio mouse su, giù, sinistra o destra, il cerchio segue lungo. Facciamo prima includono gevents.h, in modo che abbiamo accesso agli eventi grafiche. Facciamo il prossimo includono gobjects, in modo da avere accesso alle oggetti come cerchi - o più precisamente, ovali, come vedremo. E poi cerchiamo di includere gwindow.h, così che noi abbiamo accesso ad una finestra grafica. Quindi, cerchiamo di dichiarare principale nel solito modo. Int. void main. Vediamo ora istanziare, o creare, una finestra con GWindow. E chiameremo la finestra variabile. Ottiene newGWindow. E io un po 'arbitrariamente faccio l' finestra di 320 pixel per 240 pixel. Ora abbiamo bisogno di istanziare quel cerchio. Beh, si scopre che un cerchio è un caso speciale di un ovale. Si dà il caso che la larghezza e l'altezza di un cerchio sono uguali. Quindi cerchiamo di Instantiate un ovale come segue. Goval. Lo chiameremo cerchio, però. E che sta per arrivare newGOval. E stiamo andando a specificare che esso inizierà in alto a sinistra angolo, le cui coordinate sono 0 virgola 0. E la larghezza di questa globale stanno per essere 50 di 50 - in altre parole, un cerchio. Ora abbiamo una finestra, abbiamo un cerchio. Ma non abbiamo ancora aggiunto cerchio alla finestra. Quindi abbiamo bisogno di farlo in modo esplicito. Aggiungi finestra, cerchio. Quindi aggiungendo l'ultimo al primo. Ora facciamo qualcosa per sempre. Sediamoci in un loop infinito, ascolto di eventi del mouse. In particolare non scatta, ma movimenti del mouse. E rispondere a tali movimenti spostando il cerchio. Qui andiamo. Mentre vero. Diamo un'occhiata a un evento con GEvent, definendolo evento. Ottiene getNextEvent. E diamo specificamente cercare di ottenere un evento del mouse di qualche tipo. Facciamo prossimo assicurarsi che l'evento si non uguale nullo, in modo che ci sia in realtà qualcosa da rispondere. E lasciare che il prossimo controllo se getEventType, passando caso, è uguale MOUSE_MOVED, che è una costante speciale, dichiarata la Biblioteca Portable Stanford, che significa che il mouse è stato infatti spostato. Poi andiamo a effettuare le seguenti operazioni. Dichiarare un doppio. E io chiamo x. Memorizzazione in particolare che il ritorno valore GetX della manifestazione. In altre parole, mi ottenere la coordinata x dove l' il mouse è stato spostato. Ma solo per rendere la linea del cerchio up esattamente in cima il mio cursore, lasciami ora sottrarre largo della larghezza della cerchio stesso diviso per 2. In altre parole, cerchiamo di sottrarre fuori il suo raggio d'azione. Facciamo qualcosa di simile ora a. Si ottiene ottenere la coordinata y di quell'evento - cioè, il mouse spostato - meno getWidth del cerchio. E questa volta faremo la piena diametro, non il raggio. Infine, impostiamo la posizione del cerchio per essere quel nuovo x comma y. Vediamo ora salvare, compilare, ed eseguire questo programma. Fai cursore. . / Cursore. C'è il cerchio nel in alto a sinistra mano. Ora, mi permetta di spostare il mouse sopra che finestra e vedere se i fermi cerchio su di esso come previsto. E infatti lo fa. Si noti che specificamente, il cerchio è al top della mia cursore, perfettamente centrata, a causa della matematica abbiamo che coinvolge il suo diametro e il suo raggio.