Ver puntero del mouse

Started by Milton884, May 13, 2011, 12:40:59 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Milton884

Hola, estoy haciendo un juego de rol, mi duda es la siguiente.
Quiero que se pueda utilizar el mouse, que se vean el puntero dentro del juego, y si hay alguna forma de obtener las coordenadas donde clickeas o pasas el mouse. Hay documentacion de eso? asi les ahorro que me lo digan. Si hay, donde hay?.

Gracias.

FreeYourMind

el mouse seria un proceso con un grafico de mouse que moverias con el ratón, y las coordenadas su x,y respectivo.

SplinterGU

no necesitas tener un proceso para tener un mouse.

mouse.x y mouse.y son las coordenadas del mouse, mouse.left es el boton izquierdo, mouse.right = derecho y mouse.middle es el del medio.

mouse.graph es el grafico del mouse.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Hokutoy

#3
Para complementar las respuestas:

Ejemplo Pseudocodigo de un proceso que "representa" al mouse y hace algo si pulsas algun boton del mouse.

PROCESS CURSOR( ); // PROCESO QUE CONTROLA EL MOUSE-TACTIL

BEGIN
FILE=GFX_GRAFICOS;
GRAPH=1;

LOOP
X=MOUSE.X;
Y=MOUSE.Y;
IF(MOUSE.LEFT==TRUE) ACCION 1 LA QUE SEA.... ;END
                IF(MOUSE.RIGHT==TRUE) ACCION 2 LA QUE SEA.... ;END
                FRAME;
END // OF LOOP


Aunque como dice Splinter puedes asignar directamente un graph al mouse con mouse.graph y controlar su movimiento con mouse.x mouse.y etc...
Aunque personalmente prefiero unar un proceso "sombra" porque asi me es mas facil de manipular.

Saludos

Milton884

Muchas gracias, es lo que tenia q saber, cualquier duda q me surja les digo por aca. =)

Milton884

Me sugio un problema. Entendi bien esto de hacer un proceso que controle el puntero del Mouse, su movimiento, sus pulsaciones..
Pero les doy un ejemplo: Si yo tengo un proceso "Personaje", el cual tiene su grafico (es un humano), al cual cuando le haga click quiero comprobar si se hizo click dentro del area del personaje... como verifico eso? trate de buscarle la vuelta pero me atoré.

SplinterGU

collision...

si usas mouse.graph, etc, puedes hacer collision(type mouse);

sino collision contra el proceso que emula el mouse

o puedes tambien hacerlo mas complejo con un get_pixel y unos cuantos calculos de coordenadas.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Milton884

Listo, o sea dentro del codigo que controla el mouse, puedo poner:

............
//resto de codigo

       IF(MOUSE.LEFT==TRUE)
                                 IF(collision(type personaje))
                                       say("Se hizo click en el personaje");
                                 END
                            END
//resto de codigo
.............

SplinterGU

si, pero si tenes mas de 1 personaje, deberias capturar el retorno de collison, para saber cual de los personajes clickeo
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Y ojo, que si usas un "proceso sombra de ratón" colisionará con todo su gráfico (salvo los pixels transparentes). Sin embargo, el collision(type mouse) sólo comprueba la colisión con el "centro" del gráfico del ratón.

Recomiendo leer:
http://wiki.bennugd.org/index.php?title=Mouse
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)

SplinterGU

Quote from: Drumpi on May 13, 2011, 07:46:26 PM
Y ojo, que si usas un "proceso sombra de ratón" colisionará con todo su gráfico (salvo los pixels transparentes). Sin embargo, el collision(type mouse) sólo comprueba la colisión con el "centro" del gráfico del ratón.

Recomiendo leer:
http://wiki.bennugd.org/index.php?title=Mouse

exacto, muy buena observacion.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Milton884

Quote from: SplinterGU on May 13, 2011, 07:59:15 PM
Quote from: Drumpi on May 13, 2011, 07:46:26 PM
Y ojo, que si usas un "proceso sombra de ratón" colisionará con todo su gráfico (salvo los pixels transparentes). Sin embargo, el collision(type mouse) sólo comprueba la colisión con el "centro" del gráfico del ratón.

Recomiendo leer:
http://wiki.bennugd.org/index.php?title=Mouse

exacto, muy buena observacion.

Si ese es el problema, como pueo hacer q tome tal punto del grafico del puntero del mouse en vez del centro?¿
Agradeceria sus ayudas. Estube leyendo igual en wiki.

Milton884

Perdon, me referia, como se podria hacer para que compruebe la colision con la punta del mouse digamos? Hay alguna forma de hacer q la colision no sea siempre con el Centro del mouse (collision(type Mouse) , o con todo el grafico (el proceso sombra), si no con una parte, en este caso la punta?
gracias desde ya comunidad.

SplinterGU

collision(type mouse), y esto lo hace sobre el punto de control 0.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

JaViS

Quote from: SplinterGU on May 16, 2011, 02:21:50 PM
collision(type mouse), y esto lo hace sobre el punto de control 0.

o sea que no hace falta hacer un proceso para comprobar la colision con el mouse?
Working on Anarkade. A couch multiplayer 2D shooter.