>> SPEAKER 1: Vediamo ora scriviamo un programma che interagisce in qualche modo con il mio mouse.
In particolare, cerchiamo di Instantiate, o creare una finestra.
E poi ascoltiamo, per così dire, all'interno di tale finestra per clic del mouse.
E non appena si rileva un clic del mouse, cerchiamo di stampare con printf l'
coordinate x comma y di quel mouse scegliere, rispetto a quella finestra.
>> Qui andiamo.
Facciamo prima includono gevents.h, che è un altro file di intestazione nella Stanford
biblioteca portatile che si riferisce agli eventi grafiche.
Facciamo includono inoltre gwindow.h, che contiene le funzioni relative a Windows.
Vediamo ora dichiariamo principale nel solito modo.
>> E andiamo ora un'istanza di quella finestra.
Gwindow -
che chiameremo finestra -
uguale newGwindow.
E io specificare un po 'arbitrariamente un larghezza di 320 pixel e un'altezza di
240 pixel.
>> Ora dobbiamo continuare ad ascoltare per eventi del mouse, così
dire, all'interno di tale finestra.
Ora eventi possono includere click o trascina o movimenti.
Ma per ora ci concentreremo solo su scatti.
Io vado a indurre intenzionalmente un ciclo infinito con un costrutto mentre,
semplicemente in modo che questo programma viene eseguito per sempre, o almeno fino a quando clicco sul
X nell'angolo in alto a destra.
>> Per farlo, facciamolo while true.
Quindi all'interno di tale ciclo, lascia primo assegno per l'
evento mouse come segue.
Ci dichiariamo una GEvent, per così dire.
>> Chiameremo l'evento variabile.
E noi andremo a memorizzare in quanto il valore di getNextEvent ritorno, passando
in una costante speciale, che da convenzione è scritto in tutte le protezioni,
chiamato MOUSE_EVENT.
In altre parole, da qualche parte in questa Libreria portabile Stanford, c'è un
costante chiamata MOUSE_CLICED.
E c'è una funzione definita che è chiamato getNextEvent, il cui scopo
la vita è di fare esattamente questo.
Ascoltate, e poi quando si sente uno, restituisce l'evento successivo che è
stato innescato dal mouse dell'utente.
>> Ora controlliamo se tale evento è nullo.
Perché non è nullo, e che siamo noi qualcosa di realmente sentito dal
il mouse dell'utente, stiamo andando a procedere per verificare ora che tipo
di evento che è stato.
Se getEventType, superando un evento come argomento, uguale uguale
MOUSE_CLICKED, che sembra essere un specifico tipo di eventi, che è solo
un'altra costante dichiarata nel Libreria portabile Stanford.
Ora, come promesso, andiamo ora stampare il coordinate di quel clic del mouse.
Printf "% .0 f.
>> In altre parole, ho intenzione di stampare un valore in virgola mobile.
Ma io non voglio vedere niente dopo il punto decimale.
Quindi io specificare .0.
Comma,% .0 f per la coordinata y pure.
Backslash n vicino preventivo.
>> E ora veniamo alla coordinata x di tale evento.
Questa è la coordinata x del clic del mouse.
E poi andiamo y della manifestazione, che è la coordinata y
del clic del mouse.
>> Vediamo ora salvare, compilare, ed eseguire questo programma.
E quando lo faccio, che dovrebbe essere il caso che non importa dove clicco all'interno
i confini di questo 320 per 240 pixel finestra, dovrei poi vedere sul mio
finestra della console x virgola coordinate y dove ho cliccato.
Fai click.
. / Click.
E c'è quella finestra avevamo previsto.
>> Ora vorrei fare clic all'incirca in cima nell'angolo sinistro della finestra.
Nel mio schermo della console, vedo che capita di cliccare su coordinata x sette
e coordinata y sette.
Vediamo ora cliccate all'incirca nel fondo alto a destra della finestra.
E mi sembra di aver cliccato su coordinate pixel 314, 229.
>> Passiamo ora fare nell'angolino in basso a sinistra.
E vedo 6, 233.
E nell'angolo in alto a destra, 305, 4.
>> In altre parole, sembra essere il caso che l'angolo superiore sinistro della
nostra finestra è 0, 0.
E l'angolo in basso a destra della mia finestra è di 320, 240.
In altre parole, avrei visto Proprio quei valori, avevo appena
perfettamente allineate il cursore del mouse in ciascuna di tali angoli.
Questo è vero in generale in grafica programmazione, sia che si utilizzi l'
Libreria portabile Stanford o la maggior parte qualsiasi altri, per cui noi rappresentiamo la parte superiore
angolo come 0, 0, e la parte inferiore nell'angolo destro come la virgola larghezza
altezza, utilizzando numeri positivi, anche se è basso a destra.