>> ALTAVEU 1: Ara anem a escriure un programa que implica una finestra, una
cercle, i la meva cursor.
En particular, anem a crear instàncies d'un negre cercle a la pantalla i, a continuació,
anem a entrenar seguir el meu cursor.
Així que si moc el ratolí cap amunt, avall, esquerra o cap a la dreta, el cercle segueix al llarg.
>> Primer anem a incloure gevents.h, de manera que tenim accés als esdeveniments gràfics.
Anem proper inclouen GObjects, perquè tinguem accés a
objectes com cercles -
o més precisament, ovals, com ja veurem.
I després anem a incloure gwindow.h, pel que tenim accés
a una finestra gràfica.
A continuació, anem a declarar principal en la forma habitual.
Void main int.
Ara anem a crear instàncies o crear, una finestra amb GWindow.
I anem a trucar a la finestra variable.
Obté newGWindow.
I vaig a fer alguna cosa arbitràriament la finestra de 320 píxels per 240 píxels.
>> Ara hem de crear una instància aquest cercle.
Bé, resulta que un cercle és un cas especial d'un oval.
El que passa és que l'amplada i l'alçada d'un cercle són iguals.
Així que anem a instanciar un oval com segueix.
GOVAL.
L'anomenarem cercle, però.
I això aconseguirà newGOval.
I anem a especificar que s'iniciarà a la part superior esquerra
cantonada, les coordenades són 0 0 coma.
I l'amplada d'aquest mundial seran de 50 per 50 -
En altres paraules, un cercle.
>> Ara tenim una finestra, tenim un cercle.
Però encara no hem agregat que cercle a la finestra.
Així que hem de fer-ho de manera explícita.
Afegir finestra, cercle.
D'aquesta manera l'addició d'aquest últim a la primera.
>> Ara farem alguna cosa per sempre.
Anem a seure en un bucle infinit, l'escolta d'esdeveniments de ratolí.
Específicament no fa clic, però moviments del ratolí.
I respondre a aquests moviments movent el cercle.
Aquí anem.
Mentre que és cert.
Anem a veure un esdeveniment amb GEvent, cridant esdeveniment.
Obté GetNextEvent.
I anem a tractar específicament per obtenir un esdeveniment de ratolí d'algun tipus.
Anem a continuació, assegureu-vos que l'esdeveniment no és igual a null, pel que hi ha
en realitat una cosa que respondre.
>> I anem a la propera verificació si getEventType, que passa en l'esdeveniment, és igual MOUSE_MOVED,
que és una constant especial, declarat en la Biblioteca portàtil de Stanford, que
significa que el ratolí de fet s'ha mogut.
>> A continuació procedirem a feu el següent.
Declarar una doble.
I ho diré x.
Emmagatzemar Específicament en què el retorn valor getX l'esdeveniment.
En altres paraules, em aconseguir l' coordenada x on el
ratolí es va traslladar a.
Però només per fer la línia del cercle fins exactament part de dalt del cursor, deixa ara
restar de l'amplada de la propi cercle dividit per 2.
En altres paraules, anem a restar fora del seu radi.
>> Anem a fer alguna cosa semblant ara per i.
I aconsegueix obtenir la coordenada d'aquest esdeveniment -
és a dir, el ratolí mogut -
menys getWidth del cercle.
I aquesta vegada ho farem el ple de diàmetre, no el radi.
Finalment, anem a establir la ubicació de la cercle per ser la nova x coma i.
Ara anem a guardar, compilar, i executar aquest programa.
>> Fer cursor.
. / Cursor.
Aquí hi ha el cercle en el part superior esquerra cantonada.
Ara, anem a moure el ratolí sobre aquesta finestra i veure si els pestells cercle
en ell com s'esperava.
I de fet ho fa.
Observi que específicament, el cercle que està a la part superior del meu cursor,
perfectament centrat, a causa de l'matemàtiques vam tenir la participació del seu diàmetre i
el seu radi.