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
			
			
			
				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.
			
			
			
				algun ejemplo simple ?
			
			
			
				no tengo ejemplos... lo hice alguna vez, pero no tengo ahora ejemplos.
			
			
			
				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?
			
			
			
				Pues no seria mala idea una sección del foro para ejemplos de programación. Tenía varios y los perdí :(
			
			
			
				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 !!
			
 
			
			
				Hombre, para estas cosas, ya sirve el subforo de recursos (http://forum.bennugd.org/index.php?board=21.0), no?
			
			
			
				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
			
			
			
				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.
 
 
			
			
			
				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; 
			 
			
			
				Muchas gracias lo probare en casa
			
			
			
				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?
			
 
			
			
				exactamente el proposito es ese, ya la velocidad de movimiento que quieras la ajustas despúes.
			
			
			
				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
			
 
			
			
				Creo que me equivoque, quería poner esto:  ;D 
int iAnimacionIndex = fget_angle(x, y, mouse.x, mouse.y) / 45000; 
			
			
			
				gracias, ahora si!