Mouse en graficos!

Iniciado por Manochon, 6 Mayo 2019, 21:29 PM

0 Miembros y 1 Visitante están viendo este tema.

Manochon

Hola a todos! acabo de registrarme hace minutos y ya estoy pidiendo ayuda ja
Resulta que soy estudiante y lo primero que estamos viendo es C y quiero lucirme e ir un poco mas alla, por mas que recien estoy metiendome en el mundo de la programacion.
Quiero hacer un buscaminas en C utilizando la libreria graficos, actualmente uso Codeblocks y logre hacerla funcionar.

logre insertar las imagenes del tipo BMP y quedo hermoso, creo que el motor del juego no me va a generar gran complicacion, asi que arranque por darle vida desde la parte animada.
Ahi es donde aparecio el problema, logro obtener las cordenadas del mouse con relacion a la resolucion de la pantalla actual, pero difieren de la ventana que creo en modo grafico.
Por ejemplo si creo una ventana grafica de 640x480 en una resolucion de 1920x1080 el punto 0x0 de mi ventana puede estar ubicado donde el usuario mueva la ventana, osea si hago coincidir la ventana con el inicio de la resolucion de mi pantalla va todo de 10, pero donde la muevo pierdo la referencia.
Necesito resolver esto para que cuando el usuario haga click con el mouse pueda reconocer que parte del tablero apreto.
lo mas cercano que encontre a esto es esta funcion que me devuelve la posicion de la consola:


void GetWindowPos( int *x, int *y ) {
   RECT rect = { NULL };
   if( GetWindowRect( GetConsoleWindow(), &rect ) ) {
       *x = rect.left;
       *y = rect.top;
   }
}


Funciona de 10 porque la meto dentro de un loop y la posicion se va actualizando, si pudiera lograr esto mismo pero saber las cordenadas de la ventana estaria todo resuelto.

Bueno gracias! y espero que entiendan mis limitaciones.


EDIT: La libreria es <graphics.h>

[MOD] Usar etiquetas GeSHi para publicar código.


RayR

Necesitas especificar qué estás usando. Dices que la librería graficos, pero imagino que no se llama así, ¿cierto? Y es que hay muchas diferentes.

Manochon

Cita de: RayR en  6 Mayo 2019, 21:42 PM
Necesitas especificar qué estás usando. Dices que la librería graficos, pero imagino que no se llama así, ¿cierto? Y es que hay muchas diferentes.


Hola! si se llama <Graphics.h>

RayR

Ah, ya  :). Es la versión para Windows de la BGI de Borland. Es sencilla, aunque lenta , pero para un buscaminas puede bastar.

¿Probaste con su función getmouseclick? Debería devolverte las coordenadas correctas en su segundo y tercer parámetros.

Manochon

Cita de: RayR en  6 Mayo 2019, 22:30 PM
Ah, ya  :). Es la versión para Windows de la BGI de Borland. Es sencilla, aunque lenta , pero para un buscaminas puede bastar.

¿Probaste con su función getmouseclick? Debería devolverte las coordenadas correctas en su segundo y tercer parámetros.

Estuve todo el fin de semana buscando mil opciones, al borde de la desesperación! y me lo solucionaste tan fácil! desconocía completamente esa función!
Mil gracias de verdad! ahora a ponerme a pleno con mi primer TP de programación!