Controlar la camara con el raton

Started by JMP, July 10, 2010, 09:48:53 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JMP

Pues nada no se si ya lo había hecho alguien, de todas formas hay muchas maneras de mover la camara con el raton.
Esta la tenía pensada para controlar la mira de una pistola con el raton y apuntar como en muchos juegos.

Para usarla hay que llamarla desde el personaje al que va a seguir
PROCESS camara ( )
private
float mouse_x;
float mouse_y;
float sensibilidad = 0.1;
float sensibilidad_x = 0.05;
int window_width , window_height;
int res_x , res_y;
end
BEGIN
// Cogemos las dimensiones de la ventana
get_window_size ( &window_width , &window_height , &res_x , &res_y );
LOOP
M8E_ADDCAMFOLLOW_A ( father.model , -200 , mouse_y , 0 , 20 );

mouse_y = mouse_y - (mouse.y - (res_y / 2))*sensibilidad;
mouse_x = mouse_x + (mouse.x - (res_x / 2))*sensibilidad_x;

IF ( mouse_y < 1 )
mouse_y = 1;
END
IF ( mouse_y > 150 )
mouse_y = 150;
END
father.rotation.y = mouse_x;
mouse.x = res_x / 2;
mouse.y = res_y / 2;
FRAME;
END
END

SplinterGU

no lo he probado, pero gracias, seguro a mas de uno le es util.

ya te di el karma merecido.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

gracias, karma++
también me gustaría comentar que existe la cámara en primera persona que ya incluye moviminto tipo fps con ratón. y cuando no se necesite el movimiento se puede desactivar.

también creo que obtendrías mejores resultados si la cámara la haces de tipo normal m8e_addcam  (o algo así), y esa la mueves con  las funciones, así obtienes una fps a tu gusto y sin los problemas que pueda presentarte a futuro usar M8E_ADDCAMFOLLOW_A, que no recuerdo si permite movimiento del horizonte y esas cosas que son tan comunes en los juegos de disparos

:)

saludos
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Windgate

¿A qué te refieres con lo del movimiento del horizonte Prg?
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Prg

bueno, no se si así se le llame


en esta imagen se puede apreciar, me refiero a la posibilidad de hacer que la cámara cambie su ángulo y que de esta forma se pueda observar más el cielo (para mí es mover el horizonte, je je je)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Windgate

El M8E_ADDCAMFOLLOW ( ) actualmente recibe como parámetros desplazamientos relativos respecto del objetivo a seguir. Si lo que se busca es mayor o menor pendiente para "apuntar" subiendo o bajadno en el eje Y, bastaría con modificar el valor de seguimiento en Y. Normalmente lo pongo a 0 para que la cámara siga en recto "desde atrás", pero si se quiere que siga desde un poco más abajo o más arriba (Desde atrás) bastaría con asignar valores positivos o negativos en la componente Y.

Eso funciona bien y está probado, lo que causa mayor problema es un seguimiento de cámara con el ratón, que según el movimiento del ratón modifique bien los desplazamientos relativos en todos los ejes. Eso es un desplazamiento de cámara en plan WoW y en ese caso hay algunas cosas programadas, pero no terminan de convencerme del todo en cuanto a rendimiento y fluidez.

Todo esto lo digo sin haber terminado de probar el programa de JMP, a ver si saco un rato y le echo un vistazo a ver si finalmente me convece... ;)
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Prg

entiendo, :)
¿y ese valor se modifica en tiempo real con alguna función, o sólo se asigna al agregar la cámara  y ya no se puede modificar en esa cámara?
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Windgate

Lo que suelo hacer es reinvocar el M8E_ADDCAMFOLLOW una y otra vez pasando variables como parámetro, eso hace que la nueva cámara añadida pase a ser la activa y la ejecución no se resiente.

La verdad, no he probado a eliminar la cámara anterior antes de añadir la nueva... Cuando saque un tiempo lo pruebo a ver si el rendimiento mejora.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Prg

mmm!

creo que es mejor hacerla desde el principio con una cámara primitiva.

bueno, gracias por la info, saludos windgate :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)