>> COLUNA 1: Vamos agora escrever um programa que de alguma forma interage com o meu mouse.
Em particular, vamos instanciar, ou criar uma janela.
E, em seguida, vamos ouvir, por assim dizer, dentro dessa janela para cliques do mouse.
E assim que detectar um clique do mouse, vamos imprimir com printf o
coordena x vírgula y desse rato clique, em relação a essa janela.
>> Aqui vamos nós.
Vamos incluir gevents.h primeiro, o que é outro arquivo de cabeçalho no Stanford
biblioteca portátil que relaciona para eventos gráficas.
Vamos também incluir gwindow.h, que contém funções relacionadas ao Windows.
Vamos agora declarar principal da maneira usual.
>> E vamos agora instanciar essa janela.
Gwindow -
vamos chamá-lo janela -
é igual newGwindow.
E eu vou especificar arbitrariamente um largura de 320 pixels e uma altura de
240 pixels.
>> Agora precisamos continuar a ouvir para eventos do mouse, por assim
falar, dentro dessa janela.
Agora eventos podem incluir cliques ou arrasta ou movimentos.
Mas, por agora vamos nos concentrar apenas em cliques.
Eu estou indo para induzir intencionalmente um ciclo infinito com uma construção de tempo,
simplesmente para que este programa é executado para sempre, ou pelo menos até que eu clique no
X no canto superior direito.
>> Para isso, vamos fazer enquanto verdade.
E, em seguida, no interior do referido circuito, vamos primeiro cheque para a
evento de mouse como se segue.
Vamos declarar uma GEvent, por assim dizer.
>> Vamos chamar o evento variável.
E nós estamos indo para armazenar em que o valor de GetNextEvent retornar, passando
em especial uma constante, a qual por convenção está escrito em letras maiúsculas,
chamado mouse_event.
Em outras palavras, algures nesta Stanford biblioteca portátil, há um
constante chamada MOUSE_CLICED.
E não é uma função definida que é chamado GetNextEvent, cuja finalidade em
a vida é para fazer exatamente isso.
Atentem para, em seguida, quando se ouve um, retorna o próximo evento que é
foi acionado pelo mouse do usuário.
>> Agora vamos verificar se esse evento é nulo.
Porque não é nulo, e isso é que realmente ouviu algo do
o mouse do usuário, vamos prosseguir verificar agora que tipo
do evento que foi.
Se getEventType, passando um evento como um argumento, é igual a iguais
MOUSE_CLICKED, que passa a ser um tipo específico de eventos, que é apenas
outra constante declarada no Stanford biblioteca portátil.
Agora, como prometido, vamos agora imprimir o coordenadas que clique do mouse.
Printf "% .0 f.
>> Em outras palavras, eu estou indo para imprimir um valor de ponto flutuante.
Mas eu não quero ver nada depois do ponto decimal.
Então, eu vou especificar 0,0.
Vírgula,% .0 f para a coordenada y bem.
Barra invertida n quote perto.
>> E agora vamos coordenada x do desse evento.
Essa é a coordenada x do clique do mouse.
E então vamos y do evento, que é a coordenada y
do clique do mouse.
>> Vamos agora salvar, compilar e executar este programa.
E quando eu fizer isso, ele deve ser o caso que não importa onde eu clico dentro
dos limites deste pixel de 320 por 240 janela, eu deveria então ver em minha
janela do console x vírgula coordenadas y de onde eu cliquei.
Faça clique.
. / Clique.
E há essa janela previmos.
>> Agora deixe-me clique aproximadamente no topo canto esquerdo da janela.
Na minha tela do console, eu vejo que eu acontecer a clicar no coordenada x sete
e coordenada y sete.
Vamos clicar agora aproximadamente no fundo canto direito da janela.
E parece-me ter clicado coordenar pixel de 314, 229.
>> Vamos agora fazer o canto inferior esquerdo.
E eu vejo 6, 233.
E canto superior direito, 305, 4.
>> Por outras palavras, parece ser o caso que o canto superior esquerdo da
a janela é 0, 0.
E o canto inferior direito da minha janela é de 320, 240.
Em outras palavras, eu teria visto precisamente esses valores, se eu tivesse apenas
perfeitamente alinhados meu cursor do mouse em cada um dos cantos.
Isto é verdade, em geral, em gráfica de programação, se utilizar o
Stanford biblioteca portátil ou mais qualquer outro, pelo qual representam o topo
canto como 0, 0, e a parte inferior canto direito, como a vírgula largura
altura, usando números positivos, mesmo mas é para baixo e para a direita.