>> INTERLOCUTEUR 1: Écrivons maintenant un programme qui implique une fenêtre, d'une
cercle, et mon curseur.
En particulier, nous allons instancier un noir cercle sur l'écran, puis
nous allons former à suivre mon curseur.
Donc, si je bouge ma souris vers le haut, bas, gauche ou à droite, le cercle suit le long.
>> Incluons premier gevents.h, de sorte que nous avons accès à des événements graphiques.
Incluons prochaine GObjects, de sorte que nous avons accès à
objets comme des cercles -
ou, plus précisément, d'ovale, comme nous le verrons.
Et puis nous allons inclure gwindow.h, de sorte que nous avons accès
à une fenêtre graphique.
Ensuite, nous allons déclarer principale de la manière habituelle.
Void main Int.
Voyons maintenant instancier, ou créer, une fenêtre avec GWindow.
Et nous appelons la fenêtre variable.
Obtient newGWindow.
Et je vais un peu arbitrairement fais l' fenêtre 320 pixels par 240 pixels.
>> Maintenant, nous devons instancier ce cercle.
Eh bien, il s'avère que le cercle est un cas particulier d'un ovale.
Il se trouve que la largeur et la la hauteur d'un cercle sont égaux.
Donc, nous allons instancier un ovale comme suit.
Goval.
Nous l'appellerons cercle, cependant.
Et cela va obtenir newGOval.
Et nous allons préciser qu'il débutera dans le haut à gauche
coin, dont les coordonnées valent 0 0 virgule.
Et la largeur de ce global vont être 50 par 50 -
en d'autres termes, un cercle.
>> Maintenant, nous avons une fenêtre, nous avons un cercle.
Mais nous n'avons pas encore ajouté que cercle de la fenêtre.
Nous devons donc le faire explicitement.
Ajouter fenêtre, cercle.
Ajoutant ainsi à cette dernière à l'ex.
>> Maintenant, nous allons faire quelque chose pour toujours.
Asseyons-nous dans une boucle infinie, écoute pour les événements de souris.
Spécifiquement pas clique, mais les mouvements de la souris.
Et répondre à ces mouvements en déplaçant le cercle.
Ici nous allons.
Bien vrai.
Voyons maintenant pour un événement avec GEvent, qualifiant l'événement.
Obtient GetNextEvent.
De et laisser spécifiquement essayer d'obtenir un événement de souris d'un certain type.
Disons prochaine assurez-vous que l'événement ne pas égal nulle, de sorte qu'il n'y a
effectivement quelque chose à répondre.
>> Et laisser de côté cocher si getEventType, passant événement, égaux MOUSE_MOVED,
qui est une constante spéciale, déclaré en la Bibliothèque Portable Stanford, qui
signifie que la souris a en effet été déplacé.
>> Ensuite, nous allons procéder à procédez comme suit.
Déclarer un double.
Et je vais l'appeler x.
Stocker précisément en ce que le retour valeur de getX de l'événement.
En d'autres termes, vous méprenez l' coordonnée x de l'endroit où le
souris a été déplacé.
Mais juste pour faire la ligne de cercle jusqu'à exactement au sommet de mon curseur, permettez-moi maintenant
soustraire au large de la largeur de l' cercle lui-même divisé par 2.
En d'autres termes, nous allons soustraire hors de son rayon.
>> Faisons quelque chose de semblable aujourd'hui pour y.
Y obtient obtenir la coordonnée y de cet événement -
c'est-à-déplacer la souris -
moins getWidth du cercle.
Et cette fois, nous ferons le plein de diamètre, le rayon de pas.
Enfin, nous allons définir l'emplacement de la cercle pour être ce nouveau x virgule y.
Voyons maintenant enregistrer, compiler, et exécuter ce programme.
>> Assurez-curseur.
. / Curseur.
Il ya du cercle dans le coin supérieur gauche de la main.
Maintenant, permettez-moi de passer ma souris sur cette fenêtre et de voir si les verrous de cercle
sur celui-ci comme prévu.
Et c'est effectivement le cas.
Notez que précisément, le cercle est au sommet de mon curseur,
parfaitement centré, du fait de la mathématiques nous n'avons impliquant son diamètre et
son rayon.