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.
el mouse seria un proceso con un grafico de mouse que moverias con el ratón, y las coordenadas su x,y respectivo.
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.
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
Muchas gracias, es lo que tenia q saber, cualquier duda q me surja les digo por aca. =)
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é.
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.
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
.............
si, pero si tenes mas de 1 personaje, deberias capturar el retorno de collison, para saber cual de los personajes clickeo
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
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.
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.
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.
collision(type mouse), y esto lo hace sobre el punto de control 0.
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?
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).
jo, nunca hizo falta! :D y yo recien me entero! voy a tener que recodificar un monton!! TT _ TT
creo que no hace falta grafico, deberia chequear, no me acuerdo.