Detectar si el ratón se está moviendo

Started by Windgate, October 31, 2009, 03:53:40 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Windgate

Sí, también es otra opción perfectamente válida, ¿Y si abres un hilo sobre ello querida momía?, es que me estás pisoteando el tema :P

No problem vaya, pero es que lo del ratón me tiene malo, estoy intentando programar los controles del WoW en un fin de semana y tomando birras, me exijo demasiado ;D
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Drumpi

#16
Wind, haz lo que te dije, crea un proceso que guarde en sendas variables globales el desplazamiento del ratón en ese frame:

desp_mouse_x=mouse.x-(resolutionx/2);
desp_mouse_y=mouse.y-(resolutiony/2);
mouse.x=resolutionx/2;
mouse.y=resolutiony/2;

y después tienes otro proceso llamado por ejemplo:
process aux_mouse ()
begin
graph=raton_graf; //o lo que sea, ya sabes como va
loop

//movemos el ratón
x+=desp_mouse_x;
y+=desp_mouse_y;
//controlamos los límites de pantalla
if (x<0) x=0; end
if (y<0) y=0; end
if (x>resolutionx) x=resolutionx; end
if (y>resolutiony) y=resolutiony; end

frame;
end

end

Y ahora, en lugar de consultar la posición de mouse.x y mouse.y consultas la x y la y del proceso aux_mouse.
Más fácil imposible.

Es más, puedes aumentar los límites para hacer que el ratón se mueva en el plano horizontal de tu entorno 3D, o sin límites.
Y si sólo necesitas saber lo que se ha desplazado, tienes desp_mouse_x y desp_mouse_y, que no hacen ni caso a que el ratón esté en el límite de la pantalla.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Windgate

Probemos Drumpi, tengo 1000 cosas pendientes pero al menos parece trabajada tu sugerencia, karma sólo por haberte molestado en tan complejo y novedoso tema :-*
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Drumpi

Es más, creo que esas cuatro primeras lineas también las puedes añadir al proceso dentro del loop, y ya tienes un proceso que controla todos los parámetros del ratón.

Hay una cosa que aprendes cuando haces videojuegos, y es que una cosa es lo que ve el PC y otra lo que sale en pantalla. En este caso el PC ve un proceso que sigue al ratón, pero el jugador verá un ratón. También se ve que el PC usa mapas de durezas reescaladas y el jugador un juego de plataformas. Y me pasó con el scroll isométrico: me obsesioné de que tenía que ser 3d, y en realidad debía ser 2D con una capa para los tiles que tapan al prota.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)