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!