Ver la versión completa : Juntar una animación en un objeto movil
CyberPure
28/06/2006, 00:53
Hola:
No sabia como poner el titulo de esta consulta, os lo explico mas detenidamente.
Tengo un objeto que se mueve. Podria ser un personaje que tiene una capa. La capa es otra animación, separada del personaje. Asi, en teoria, podriamos tener el mismo personaje con diferentes ropas, armaduras, etc.
Mi problema es que no consigo que la animación, pegada al objeto movil se haga correctamente.
Si lo hago de una manera, se dibuja la animación y se conserva por la pantalla (llenando toda la pantalla de la animación) cada vez que se mueve el objeto movil.
Si lo hago de otra, sigue la animación al objeto movil pero la animación no se ejecuta.
Son procesos diferentes:
Proceso 1. Tiene animación y se mueve
Proceso 2. Tiene animación y debe seguir al proceso 1.
Como podria ser el código que necesito?
Me valdria solo una explicación, sin poner el código. Para hacerme una idea.
Lo que yo hago es pasarle como parametro la 'x' y la 'y' de la animación al objeto móvil.
Gracias!
Salu2!
P.D. He estado mirando paginas para ver si alguien ha hecho algo parecido y no he encontrado nada.
OscarBraindeaD
28/06/2006, 01:22
Hola,
creo que lo que podrías hacer es lo siguiente:
si tenemos un proceso "capa" y éste debe seguir a un proceso "jugador" (cuyo identificador es "idJugador"), podría servirte ésto:
process capa()
private numImagen //número de imagen de la animación
maxImagen //número máximo de imagenes de la animación
begin
maxImagen=8;
x=idjugador.x; y=idJugador.y;
numImagen=1; //Número de imagen actual
loop
x=idjugador.x; y=idJugador.y; //Esto coloca el proceso en
//las coordenadas
//de idpersonaje, súmale o
//réstale a x e y, según
//necesites
if(numImagen>maxImagen)
numImagen=1; //Reinicia la animación si ha superado
//el número de imágenes
end
graph=numImagen;
frame;
numImagen++;
end
end
Así si tu animación va del gráfico 1 al 8 del fpg, los valores
de numImagen irán de 1 a 8 y maxImagen valdrá 8. Recuerda que
si quieres usar un fpg específico para un proceso, debes ponerlo en la variable file de éste.
Esperohaberte ayudado.
Salud
Coelophysis
28/06/2006, 01:59
Por si te sirve te pongo el proceso del látigo de mi juego; está animado y siempre sigue al protagonista (que es su proceso padre). De hecho es prácticamente lo mismo que propone OscarBraindeaD; más sencillo imposible. Las x e y del objeto serán siempre igual a father.x y a father.y. Los parámetros sumax y sumay solo están por si quieres ajustar la posición del objeto hijo respecto al padre, pero puede que ni los necesites.
(¡Ojo! En mi caso no hay loop porque quiero que el proceso desaparezca una vez ejecutada la animación).
Process latigo(sumax,sumay);
Begin
ctype=c_scroll;
z=-250;
graph=151;
flags=father.flags;
From graph=151 to 166;
x=father.x+sumax;
y=father.y+sumay;
Frame;
End
End
CyberPure
28/06/2006, 02:33
Muchas Gracias a los 2.
Eso creo que es lo que necesito, en cuanto lo tenga, os dire que lo he conseguido.
Salu2!
CyberPure
29/06/2006, 03:13
Estoy un poco inutil, como asigno el identificador a proceso principal (jugador)??
Gracias!
Salu2!
Si es un proceso hijo basta con poner father para referirse a la id del proceso.
Si no, pues creas una variable global llama "id_proceso" por ejemplo para a continuación hacer una de estas dos cosas:
1.-
Llamar al proceso de la siguiente manera: id_proceso=disparo(x,y);
2.-
Añadir esta linea justo despues del begin del proceso a buscar: id_proceso=id;
¿¡a que es facil!?
CyberPure
29/06/2006, 04:03
Ok, muchas gracias, ya lo he conseguido.
Pero me hace un efecto muy raro, no se si se tratara de optimizar el codigo pero la animación que debe seguir al proceso se desplaza hacia los lados o arriba y abajo un poquito. No se mueve a la par del proceso padre. Es como si tu latigo al lanzar el latigazo mientras corre el prota se moviera un poquito a derecha o izquierda.
A que puede ser debido?
Salu2!
¿el proceso padre está en un scroll? si es asi; ¿el proceso hijo está en el scroll tambien? recuerda poner ctype=c_scroll; en ambos procesos si estan en el scroll.
CyberPure
29/06/2006, 19:03
Lo solucione despues de escribir en el foro.
Le puse al proceso hijo priority=-1;
Con eso "creo" se dibuja a la par el proceso hijo y padre al mismo tiempo.
Si, el proceso padre esta en un scroll pero no le afecta.
Probare tambien a ponerle lo que dices haber el resultado.
Muchas Gracias!
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.