Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: emov2k4 on July 18, 2012, 03:59:16 PM

Title: arrastar grafico con el mouse !
Post by: emov2k4 on July 18, 2012, 03:59:16 PM
Hola,
Tengo un gráfico en pantalla y quiero arrastrarlo con el mouse... el problema es que al hacer click y darle las coordenadas del mouse, este se mueve a su punto de control dando un movimiento que no me gusta... intente asignar el punto de control del mouse  pero tampoco me resulta y pega un salto extraño.

alguien ha hecho algo parecido ?

Saludos
Title: Re:arrastar grafico con el mouse !
Post by: SplinterGU on July 18, 2012, 04:34:57 PM
al hacer el click tenes que calcular el delta inicial de x e y del mouse con respecto al grafico... y usar ese delta en cada movimiento hasta soltar el boton.
Title: Re:arrastar grafico con el mouse !
Post by: emov2k4 on July 18, 2012, 05:15:35 PM
algun ejemplo simple ?
Title: Re:arrastar grafico con el mouse !
Post by: SplinterGU on July 18, 2012, 05:43:13 PM
no tengo ejemplos... lo hice alguna vez, pero no tengo ahora ejemplos.
Title: Re:arrastar grafico con el mouse !
Post by: emov2k4 on July 18, 2012, 06:11:03 PM
ahh ya se cual era mi error, lo acabo de lograr, a ver si en un rato más subo un ejemplo , en que parte del foro lo dejo?
Title: Re:arrastar grafico con el mouse !
Post by: Kloppix on July 18, 2012, 07:30:08 PM
Pues no seria mala idea una sección del foro para ejemplos de programación. Tenía varios y los perdí :(
Title: Re:arrastar grafico con el mouse !
Post by: emov2k4 on July 18, 2012, 08:16:47 PM
Quote from: Kloppix on July 18, 2012, 07:30:08 PM
Pues no seria mala idea una sección del foro para ejemplos de programación. Tenía varios y los perdí :(

excelente idea !!
Title: Re:arrastar grafico con el mouse !
Post by: La momia que fuma on July 20, 2012, 01:22:40 PM
Hombre, para estas cosas, ya sirve el subforo de recursos (http://forum.bennugd.org/index.php?board=21.0), no?
Title: Re:arrastar grafico con el mouse !
Post by: Mr Matsusaka on July 21, 2012, 12:59:57 PM
Yo lo hagos asi, aunque no recuerdo bien las funciones de Bennu para deteccion del raton.


El primer frame cuando pulsamos el raton, cojo la diferencia en x e y entre el raton y el personaje


int iAnclaX = prota.x - mouse.x;
int iAnclaY = prota.y - mouse.y;


y a partir de ahi y mientras tengamos el boton del raton pulsado:


prota.x = mouse.x + iAnclaX;
prota.y = mouse.y + iAnclaY;


y ya
Title: Re:arrastar grafico con el mouse !
Post by: FreeYourMind on July 21, 2012, 01:15:39 PM
Aprovecho el hilo para preguntar, actualmente muevo un muñeco prota con el raton por pantalla usando esto:

if(fget_dist(mouse.x, mouse.y, x, y) > 5)
  xadvance(fget_angle(x, y, mouse.x, mouse.y), fget_dist(mouse.x, mouse.y, x, y) / 4);
  graph++;
end

esto hace qu si pincho en un punto afastado del muñeco, este corre rapidamente hacia estar sobre ese punto.


Lo que necesito es que el muñeco tenga un gráfico o animación distinta (o cambiar la flag del gráfico) segun la direccion donde lo muevo, o sea, un gráfico distinto para cada una de las 8 direcciones genéricas de movimiento, por ejemplo que si va hacia la derecha este miré hacia la derecha.

Title: Re:arrastar grafico con el mouse !
Post by: Mr Matsusaka on July 21, 2012, 02:45:07 PM
Quote from: FreeYourMind on July 21, 2012, 01:15:39 PM
Aprovecho el hilo para preguntar, actualmente muevo un muñeco prota con el raton por pantalla usando esto:

if(fget_dist(mouse.x, mouse.y, x, y) > 5)
  xadvance(fget_angle(x, y, mouse.x, mouse.y), fget_dist(mouse.x, mouse.y, x, y) / 4);
  graph++;
end

esto hace qu si pincho en un punto afastado del muñeco, este corre rapidamente hacia estar sobre ese punto.


Lo que necesito es que el muñeco tenga un gráfico o animación distinta (o cambiar la flag del gráfico) segun la direccion donde lo muevo, o sea, un gráfico distinto para cada una de las 8 direcciones genéricas de movimiento, por ejemplo que si va hacia la derecha este miré hacia la derecha.


no estoy seguro pero creo que seria asi:


int iAnimacionIndex = xadvance(fget_angle(x, y, mouse.x, mouse.y), fget_dist(mouse.x, mouse.y, x, y) / 4) / 45000;

Esto te daria un valor de 0 a 7, que podrias usar para determinar que animacion usar;
Title: Re:arrastar grafico con el mouse !
Post by: FreeYourMind on July 21, 2012, 03:48:54 PM
Muchas gracias lo probare en casa
Title: Re:arrastar grafico con el mouse !
Post by: BlySntK on July 21, 2012, 09:10:37 PM
Quote from: Mr Matsusaka on July 21, 2012, 02:45:07 PM
Quote from: FreeYourMind on July 21, 2012, 01:15:39 PM
Aprovecho el hilo para preguntar, actualmente muevo un muñeco prota con el raton por pantalla usando esto:

if(fget_dist(mouse.x, mouse.y, x, y) > 5)
  xadvance(fget_angle(x, y, mouse.x, mouse.y), fget_dist(mouse.x, mouse.y, x, y) / 4);
  graph++;
end

esto hace qu si pincho en un punto afastado del muñeco, este corre rapidamente hacia estar sobre ese punto.


Lo que necesito es que el muñeco tenga un gráfico o animación distinta (o cambiar la flag del gráfico) segun la direccion donde lo muevo, o sea, un gráfico distinto para cada una de las 8 direcciones genéricas de movimiento, por ejemplo que si va hacia la derecha este miré hacia la derecha.


no estoy seguro pero creo que seria asi:


int iAnimacionIndex = xadvance(fget_angle(x, y, mouse.x, mouse.y), fget_dist(mouse.x, mouse.y, x, y) / 4) / 45000;

Esto te daria un valor de 0 a 7, que podrias usar para determinar que animacion usar;

Este código también serviría para un juego tipo point & click? Es decir, tengo al personaje, le doy a la opción de andar, selecciono en el mapa el lugar y surge el movimiento con la animación pertinente hasta llegar al lugar?
Title: Re:arrastar grafico con el mouse !
Post by: FreeYourMind on July 21, 2012, 11:23:51 PM
exactamente el proposito es ese, ya la velocidad de movimiento que quieras la ajustas despúes.
Title: Re:arrastar grafico con el mouse !
Post by: FreeYourMind on July 22, 2012, 06:29:54 PM
Quote from: Mr Matsusaka on July 21, 2012, 02:45:07 PM
Quote from: FreeYourMind on July 21, 2012, 01:15:39 PM
Aprovecho el hilo para preguntar, actualmente muevo un muñeco prota con el raton por pantalla usando esto:

if(fget_dist(mouse.x, mouse.y, x, y) > 5)
  xadvance(fget_angle(x, y, mouse.x, mouse.y), fget_dist(mouse.x, mouse.y, x, y) / 4);
  graph++;
end

esto hace qu si pincho en un punto afastado del muñeco, este corre rapidamente hacia estar sobre ese punto.


Lo que necesito es que el muñeco tenga un gráfico o animación distinta (o cambiar la flag del gráfico) segun la direccion donde lo muevo, o sea, un gráfico distinto para cada una de las 8 direcciones genéricas de movimiento, por ejemplo que si va hacia la derecha este miré hacia la derecha.


no estoy seguro pero creo que seria asi:


int iAnimacionIndex = xadvance(fget_angle(x, y, mouse.x, mouse.y), fget_dist(mouse.x, mouse.y, x, y) / 4) / 45000;

Esto te daria un valor de 0 a 7, que podrias usar para determinar que animacion usar;

No funciona:


if(fget_dist(mouse.x, mouse.y, x, y) > 5)
  valor_adv = xadvance(fget_angle(x, y, mouse.x, mouse.y), fget_dist(mouse.x, mouse.y, x, y) / 4);
  graph++;
  //play_wav(Snd_Left, 0);
end

valor_anim = valor_adv / 45000;

say(valor_adv);

valor_adv es siempre = 1, y valor_anim es siempre 0
Title: Re:arrastar grafico con el mouse !
Post by: Mr Matsusaka on July 23, 2012, 07:15:50 PM
Creo que me equivoque, quería poner esto:  ;D


int iAnimacionIndex = fget_angle(x, y, mouse.x, mouse.y) / 45000;
Title: Re:arrastar grafico con el mouse !
Post by: FreeYourMind on July 23, 2012, 08:07:08 PM
gracias, ahora si!