Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Milton884 on May 13, 2011, 12:40:59 PM

Title: Ver puntero del mouse
Post by: Milton884 on May 13, 2011, 12:40:59 PM
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.
Title: Re: Ver puntero del mouse
Post by: FreeYourMind on May 13, 2011, 02:59:02 PM
el mouse seria un proceso con un grafico de mouse que moverias con el ratón, y las coordenadas su x,y respectivo.
Title: Re: Ver puntero del mouse
Post by: SplinterGU on May 13, 2011, 03:25:41 PM
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.
Title: Re: Ver puntero del mouse
Post by: Hokutoy on May 13, 2011, 03:36:10 PM
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
Title: Re: Ver puntero del mouse
Post by: Milton884 on May 13, 2011, 04:36:52 PM
Muchas gracias, es lo que tenia q saber, cualquier duda q me surja les digo por aca. =)
Title: Re: Ver puntero del mouse
Post by: Milton884 on May 13, 2011, 06:00:41 PM
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é.
Title: Re: Ver puntero del mouse
Post by: SplinterGU on May 13, 2011, 06:05:07 PM
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.
Title: Re: Ver puntero del mouse
Post by: Milton884 on May 13, 2011, 06:22:10 PM
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
.............
Title: Re: Ver puntero del mouse
Post by: SplinterGU on May 13, 2011, 06:55:58 PM
si, pero si tenes mas de 1 personaje, deberias capturar el retorno de collison, para saber cual de los personajes clickeo
Title: Re: Ver puntero del mouse
Post by: 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
Title: Re: Ver puntero del mouse
Post by: 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.
Title: Re: Ver puntero del mouse
Post by: Milton884 on May 16, 2011, 12:00:36 AM
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.
Title: Re: Ver puntero del mouse
Post by: Milton884 on May 16, 2011, 08:32:58 AM
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.
Title: Re: Ver puntero del mouse
Post by: SplinterGU on May 16, 2011, 02:21:50 PM
collision(type mouse), y esto lo hace sobre el punto de control 0.
Title: Re: Ver puntero del mouse
Post by: JaViS on May 16, 2011, 03:47:30 PM
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?
Title: Re: Ver puntero del mouse
Post by: Drumpi on May 16, 2011, 07:45:54 PM
Quote from: JaViS on May 16, 2011, 03:47:30 PM
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?

Nunca ha hecho falta. Es más, siempre se ha recomendado hacer la colisión con type mouse porque:
-Comprueba la colisión con un único pixel.
-No le afecta la posición de los procesos en scroll (aunque es necesaria una conversión de coordenadas para saber la posición relativa del ratón en el scroll).
-No necesita gráfico para colisionar (no estoy 100% seguro, pero creo haber hecho más de una vez una detección de colisiones y movimientos sin usar gráfico para el ratón).
Title: Re: Ver puntero del mouse
Post by: JaViS on May 16, 2011, 07:54:57 PM
jo, nunca hizo falta! :D y yo recien me entero! voy a tener que recodificar un monton!! TT _ TT
Title: Re: Ver puntero del mouse
Post by: SplinterGU on May 17, 2011, 01:05:34 AM
creo que no hace falta grafico, deberia chequear, no me acuerdo.