COLUMNA 1: Imos agora escribir un programa que implica un diálogo, unha círculo, e meu cursor. En particular, imos instanciar un negro círculo na pantalla, e logo imos adestramento-lo para seguir o meu cursor. Entón, se eu mover o rato para arriba, abaixo, esquerda ou dereita, o círculo segue xunto. Imos incluír gevents.h primeiro, de xeito que temos acceso a eventos gráficas. Imos próximo inclúen GObjects, para que poidamos ter acceso a obxectos como círculos - ou, máis precisamente, ovais, como veremos. E entón imos incluír gwindow.h, para que teñamos acceso para unha xanela de vídeo. A continuación, imos declarar principal do xeito habitual. Void main Int Imos agora instanciar, ou crear, un diálogo con GWindow. E nós imos chamar a xanela variable. Obtén newGWindow. E eu vou facer un pouco arbitrariamente o ventá de 320 píxeles por 240 píxeles. Agora necesitamos instanciar dese círculo. Ben, acontece que un círculo é un caso especial dun oval. Acontece que o ancho e a altura dun círculo son iguais. Entón, imos instanciar unha forma oval, como segue. Goval. Imos chamalo de círculo, con todo. E iso vai estar newGOval. E imos para especificar que comezará na parte superior da man esquerda canto, cuxas coordenadas son 0 0 coma. E o ancho deste mundo van ser 50 por 50 - noutras palabras, un círculo. Agora temos unha xanela, temos un círculo. Pero aínda non engadido que círculo para a xanela. Entón, necesitamos facelo de forma explícita. Agregar ventá, círculo. Así, a suma do último para o primeiro. Agora imos facer algo para sempre. Imos sentir nun loop infinito, escoita de eventos de rato. En concreto non fai clic, pero movementos do rato. E responder a estes movementos movendo o círculo. Aquí imos nós. Mentres verdade. Imos comprobar a un evento con GEvent, chamándoo de eventos. Obtén GetNextEvent. E imos especialmente tentar obter un evento de rato de calquera tipo. Imos preto asegúrese de que o evento fai non igual nulo, de xeito que non hai realmente algo para responder. E imos próxima selección se getEventType, pasando en evento, coincide MOUSE_MOVED, que é unha constante especial, declarou en Biblioteca portátil de Stanford, que significa que o rato en realidade foi movido. Entón imos continuar faga o seguinte. Declare unha parella. E eu vou chamalo de x. Especificamente almacenar no que o retorno valor de getX do evento. Noutras palabras, dáme a coordenada x, onde o rato movida. Pero só para facer a liña do círculo up exactamente encima meu cursor, deixe-me agora restar a fóra do ancho da propio círculo dividido por 2. Noutras palabras, imos restar fóra do seu raio. Imos facer algo semellante agora para y. Y recibe obter a coordenada y dese evento - é dicir, o rato movido - menos getWidth do círculo. E esta vez imos facer o pleno diámetro, non o raio. Por último, imos definir o lugar do círculo para ser o novo x coma y. Imos agora gardar, compilar e executar este programa. Fai cursor. . / Cursor. Hai o círculo no esquina superior esquerda da man. Agora, deixe-me pasar o rato sobre que fiestra para ver se as trabas círculo nel como se esperaba. E de feito fai. Nótese que, en concreto, o círculo está na parte superior da miña cursor, perfectamente centrado, debido á matemática fixemos inclúen o seu diámetro e o raio.