Ver la versión completa : - Post oficial de Andromeda para Fenix!!!
l_draven
17/05/2006, 00:20
Hola chicos.
A falta de la web que tengo que empezar a crearla, abro este hilo para ir informando de los avances de la libreria para Fenix que estoy desarrollando "Andromeda".y asi que este post se dedique solo a ello.
Para empezar, al includir el fichero "andromeda.prg" a nuestro proyecto, tendremos accesso a nuevos tipos de variables y al set de funciones que estoy creando para su manejo.
Tipos creados hasta ahora (aun quedan por crear mas):
- cANDevice -> para controlar la pantalla (ancho, alto, modo ventana-fullscreen, fps, ...)
- cANAEntity -> Entidades animadas como personajes,...
- cANSEntity -> Entidades estaticas como objetos de adorno,...
- cANScroll -> Como se puede deducir, para crear scrolles.
Funciones creadas (aun quedan por crear muchas mas):
* cANDevice:
- cANDeviceCreate(cANDevice device,int ancho,int alto,int frames,string titulo,int modo_ventana) //Crea un device y configura la pantalla con los parametros dados
* cANAEntity:
- cANAEntityCreate(cANAENtity entidad,int fichero_fpg, string fichero_animaciones) //Crea una entidad animada y le configura las animaciones que estan contenidas en el fichero ".anm" que le pasamos como parametro. Mas adelante explicare los ficheros ".anm"
- cANAEntitySetPosition(cANAENtity entidad,int posx,int posy,int posz) //Posiciona una entidad con los parametros dados
- cANAEntityMove(cANAENtity entidad,int avancex,int avancey,int avancez) //Mueve una entidad
- cANAEntityPlay(cANAENtity entidad,string nombre_animacion,int velocidad,int loopmode,int direccion)
- cANAEntitySetOrientation(cANAENtity entidad,int orientation) //Cambia la orientacion de una entidad
* cANSEntity:
- cANEntityCreate(cANSEntity entidad,int fichero_fpg,int grafico) //Crea una entidad estatica a partir de un grafico y de un fpg
- cANSEntitySetPosition(cANSEntity entidad,int posx,int posy,int posz) //Posiciona una entidad con los parametros dados
- cANSEntityMove(cANSEntity entidad,int avancex,int avancey,int avancez) //Mueve una entidad
- cANSEntitySetOrientation(cANSEntity entidad,int orientation) //Cambia la orientacion de una entidad
*cANScroll:
- cANScrollCreate(cANScroll scroll,int fichero_fpg,int grafico) //Crea un scroll con los parametros dados
- cANScrollSetPosition(cANScroll scroll,int posx,int posy,int posz) //Posiciona un scroll en la pantalla
- cANScrollMove(cANScroll scroll,int avancex,int avancey,int avancez) //Mueve un scroll
Esto es lo que llevo pero aun quedan planeadas mogollon de cosas que ya estoy con ellas y os ire explicando.
Os pongo un ejemplo de codigo para que veais como se usa:
//************************************************** *********************************************
PROGRAM EJEMPLO_1;
include "andromeda.prg";
GLOBAL
fpg_player;
fpg_objects;
fpg_level;
cANDevice window;
cANAEntity player;
cANSEntity carro;
cANScroll scroll1;
//---------------------------------------
BEGIN
cANDeviceCreate(window,320,240,0,"Ejemplo 1",cAN_CONST_WINDOW); //Creamos el device
fpg_player=load_fpg(".\data\actors\jugador.fpg");
fpg_objects=load_fpg(".\data\levels\objects.fpg");
fpg_level=load_fpg(".\data\levels\level1.fpg");
cANScrollCreate(scroll1,fpg_level,1);
cANScrollSetPosition(scroll1,500,120,512);
cANScrollCreate(scroll2,fpg_level,2);
cANScrollSetPosition(scroll2,800,120,510);
cANAEntityCreate(player,fpg_player,".\data\actors\animacion.anm");
cANAEntitySetPosition(player,50,150,2);
cANSEntityCreate(carro,fpg_objects,1);
cANSEntitySetPosition(carro,210,190,2);
write(0,10,10,0,"Andromeda Library Testing");
write_var(0,10,20,0,fps);
REPEAT
frame;
UNTIL (key(_enter));
exit("",0);
END
//************************************************** *********************************************
Y este es un shot de lo que este codigo nos muestra en pantalla:
http://80.59.39.159/l_draven/gui/images/ejemplo1.jpg
Como veis tb uso alguna constante en el codigo como "cAN_CONST_WINDOW" que hace que ponga la pantalla en modo ventana.
Es que tambien he creado una lista de constantes que podemos usar para facilitarnos la vida, ya las explicare mas adelante.
Bueno espero no haberos aburrido mucho con este post compañeros.
Cuando vayan surgiendo mas cositas os la ire posteando por aqui para que podais estar informados de todo.
Un abrazo muy fuerte camaradas.
Puck2099
17/05/2006, 00:42
Genial, l_draven, será de gran ayuda para los "fenixeros" :)
Muchas gracias por tu curro :brindis:
Estupendo!!!! Vaya un currazo que tiene que tener eso tio!!! Animos con el proyecto y sigue palante ;)
l_draven
17/05/2006, 17:05
Hola chicos, muchisimas gracias, a ver si llega el dia que diga YA TA TERMINADO jajaja, pero como ando a la vez con el juego y la libreria va mas lento ambas cosas :-).
Un abrazo compañeros.
PARA BLEIM:
Compañero te contesto lo del otro post en este hilo que lo he creado exclusivamente para hablar del andromeda y resolver dudas que vayais teniendo.
Mira te explico asi por encima la funcionalidad de la libreria.
Cuando tu programas en fenix, por ejemplo cuando quieres configurar la pantalla los pasos que se suelen seguir son:
Set_Title("Ejemplo"); //pone el titulo a la pantalla
graph_mode=mode_16bits; //pone modo 16 bits
Set_mode(m320x240); //resolucion de la pantalla
Set_FPS(30,0); // fuerza los frames por segundo
full_screen=false; //pone modo pantalla
Sin embargo en Andromeda, creamos una variable tipo cANDevice:
cANDevice window;
y luego con hacer:
cANDeviceCreate(window,320,240,30,"Ejemplo",cAN_CONST_WINDOW);
ya tenemos configurada la pantalla con una sola llamada y tenemos los datos guardados en la variable window, por lo que si en un momento necesitamos saber que resolucion tenemos de ancho con acceder a window.width que es donde la variable window guarda la anchura de pantalla.
Esto tb es aplicable a actores o entidades o como lo queramos llamar, he credo un tipo de variable propia para distinguir entidades animadas de inanimadas y funciones propias para tratarlas y manipularlas.
por ejemplo con andromeda con hacer
cANAEntity pepe;
cANAEntitySetPosition(pepe,10,10,10);
Ya hemos posicionado la entidad animada pepe, si lo hicieramos con fenix normalmente hay que cambiar cada variable x,y,z, no es muy costoso, pero asi lo tenemos todo desde una funcion y es mas facil de entender lo que hacemos, (vamos me parece a mi jeje).
Bueno espero haberte aclarado alguna cosa sobre ANDROMEDA sino pregutname camarada.
Un abrazo.
chemaris
17/05/2006, 19:36
muy buena idea lo de la libreria, me ha costado pillarla un poco, pera ahora que lo entiendo me encanta :D
para hacer juegos tipo beat em up la cosa se puede simplificar muchisimo, sin embargo a mi me falla la parte grafica :D
No está nada mal la librería, aun así no me llama mucho, son muchos años en div y unos cuantos mas en fenix como para aprender a programar de otra manera en el mismo lenguaje XDDDDDD.
Animo con el proyecto
l_draven
17/05/2006, 23:17
Chemaris me alegro que te guste la libreria, gracias por tu post.
Chipan, te entiendo perfectamente, aunque la libreria diriamos que une sus fuerzas con las de la programacion en fenix (ya que esta programada con el propio fenix), para nada cambias tu metodo de programacion, solamente que tienes a tu disposicion funciones que te pueden simplificar en algunos aspectos determinados, es decir que es un "complemento" de ayuda para quien lo necesite.
Entiendo que los que lleven muchismos años programando tengan sus metodos, pero me parece interesante para la gente que quiere empezar a meterse a programar alguna cosa en fenix para la negrita, no se jeje, o simplemente quiera probarla.
El caso es que cuando este terminada quien quiera usarla genial y quien no pues tambien genial jeje, faltaria mas.
Gracias por tu apoyo chipan.
Un abrazo gente.
Yo os entiendo a los dos:
Lo cierto es que, así, por encima, no me llaman mucho estas funciones, mas que nada porque soy un maniatico del control: todo debo saber como funciona (y si no que se lo pregunten a los del FenixTeam, la de preguntas "chorras" que les he hecho.
Por otro lado, hace unos meses cree un motor de scroll tileado que se acopla perfectamente co un editor que hice hace tiempo, no veas lo feliz que me hace coger un plataformas o un juego de vista aerea, inicializar unas variables (tamaño de la zona de scroll, personaje a seguir..) y decir "start_tscroll(parametros)" y verlo funcionar directamente (otra cosa es ya la deteccion de durezas y eso :P) Lo malo es que nadie, salvo yo, la usa XDDD
Animo con el proyecto.
Coelophysis
19/05/2006, 14:46
Yo os entiendo a los dos:
Lo cierto es que, así, por encima, no me llaman mucho estas funciones, mas que nada porque soy un maniatico del control: todo debo saber como funciona (y si no que se lo pregunten a los del FenixTeam, la de preguntas "chorras" que les he hecho.
Por otro lado, hace unos meses cree un motor de scroll tileado que se acopla perfectamente co un editor que hice hace tiempo, no veas lo feliz que me hace coger un plataformas o un juego de vista aerea, inicializar unas variables (tamaño de la zona de scroll, personaje a seguir..) y decir "start_tscroll(parametros)" y verlo funcionar directamente (otra cosa es ya la deteccion de durezas y eso :P) Lo malo es que nadie, salvo yo, la usa XDDD
Animo con el proyecto.
Por cierto, ¿tienes por ahí algún ejemplo de juego -mejor de plataformas- hecho con tu motor de scroll por tiles? ¿O lo puedo encontrar en algún sitio, el ejemplo, aunque sea cutre, y/o el editor...?
Muchas gracias.
CyberPure
19/05/2006, 15:07
Hola, estupenda tu aportación, haber si le damos uso pronto. Yo es que lo del Fenix lo tengo un poco atrancado.
Los ficheros .anm me los podrias explicar mejor, los crea el codigo? Los creamos nosotros con algun programa? Explicalos un poco mejor.
Por cierto, todavia no he conseguido hacer funcionar mi juego hecho para gp32 en la gp2x, ya pasare el codigo a algun alma caritativa para que me lo compruebe y me digo como.
Salu2!
Chemaris me alegro que te guste la libreria, gracias por tu post.
Chipan, te entiendo perfectamente, aunque la libreria diriamos que une sus fuerzas con las de la programacion en fenix (ya que esta programada con el propio fenix), para nada cambias tu metodo de programacion, solamente que tienes a tu disposicion funciones que te pueden simplificar en algunos aspectos determinados, es decir que es un "complemento" de ayuda para quien lo necesite.
Entiendo que los que lleven muchismos años programando tengan sus metodos, pero me parece interesante para la gente que quiere empezar a meterse a programar alguna cosa en fenix para la negrita, no se jeje, o simplemente quiera probarla.
El caso es que cuando este terminada quien quiera usarla genial y quien no pues tambien genial jeje, faltaria mas.
Gracias por tu apoyo chipan.
Un abrazo gente.
Lo cierto es que a mi me gusta mucho mangonear códigos, optimizar programas y sobrepasar los límites de las cosas (por ejemplo, hacer un action rpg con el rpg maker) por lo que meter más código en mi programa para apenas darle uso no me llama mucho. Por otro lado, los programadores noveles encontrarán en Andrómeda un buen puñado de métodos para programar un juego muy rápidamente.
< - >
Yo os entiendo a los dos:
Lo cierto es que, así, por encima, no me llaman mucho estas funciones, mas que nada porque soy un maniatico del control: todo debo saber como funciona (y si no que se lo pregunten a los del FenixTeam, la de preguntas "chorras" que les he hecho.
Por otro lado, hace unos meses cree un motor de scroll tileado que se acopla perfectamente co un editor que hice hace tiempo, no veas lo feliz que me hace coger un plataformas o un juego de vista aerea, inicializar unas variables (tamaño de la zona de scroll, personaje a seguir..) y decir "start_tscroll(parametros)" y verlo funcionar directamente (otra cosa es ya la deteccion de durezas y eso :P) Lo malo es que nadie, salvo yo, la usa XDDD
Animo con el proyecto.
Yo hice tambien un motor de tiles en su día (sin editor eso si) que te creaba el mapa de durezas a la vez que el mapa del scroll; ese lo perdí, pero tengo una versión light integrado en el código fuente del ackman venturer. Si quieres te paso los links y le hechas una ojeada.
Por cierto coleophysis ¿Como va el juego? espero que mas rápido que el de los robots, que no tengo tiempo ni pa respirar XD
Coelophysis
19/05/2006, 18:37
Por cierto coleophysis ¿Como va el juego? espero que mas rápido que el de los robots, que no tengo tiempo ni pa respirar XD
Voy a buen ritmo; tengo varios niveles, es jugable y de momento no me he encallado en nada serio.
Ahora me voy a meter en el sistema de ataque; cuando lo tenga abriré un post anunciando oficialmente el juego, y espero sacar una demo en unas pocas semanas. Según la aceptación y las críticas pueden pasar dos cosas: o se quedará en ésa demo o lo terminaré, con lo que me tendré que estudiar seriamente opciones como el tema de los tiles o las librerías de l_draven. También cabe la posibilidad de que pida ayuda para terminarlo; es un proyecto demasiado ambicioso para alguien que no sabe programar...:rolleyes: .
Con esos graficazos, y una jugabilidad (supongo) mejorada desde la pre-alpha que me pasaste creo que será un exitazo. Y mas si consigues que corra a buena velocidad. En cuanto a lo de ayudarte, cuenta con ello, te lo debo.
Edit: Casi mejor que hablemos por privi, en otro hilo o por e-mail para no estropearle el hilo a l_draven ¿ok?
l_draven
19/05/2006, 22:54
Hola de nuevo a todos.
CyberPure te contesto a tu pregunta.
En cuanto a los ficheros .anm es una pijadilla, son ficheros de texto que creas tu mismo con el bloc de notas mismamente, y que contienen el nombre que quieres dar a las animaciones y los frames que comprenden (es decir los fotogramas del FPG que comprenden cada animacion),es como dividir el FPG en trozos, me explico con un ejemplo:
andar
12
50
correr
51
75
saltar
76
100
...
Bien segun este ejemplo cuando cargamos este fichero, el juego añade esas 3 animaciones al personaje al que se las asignemos, es decir que cuando llamemos a la funcion
cANAEntityPlay(player,"andar",1,cAN_CONST_LOOPMODE,cAN_CONST_FOWARD)
El juego sabe que:
- tiene que representar la animacion de la entidad "player" que hemos denominado como "andar" (el cual ya sabe entre que frames esta comprendido porque en el fichero .anm se lo hemos dicho)
- sabe que lo tiene que hacer con la velocidad 1 (3º parametro)
- sabe que lo tiene que repetir en modo LOOP (4ºparametro)
- lo tiene que reproducir hacia adelante (5ºparamentro)
Mas o menos esa es la explicacion del fichero .anm, espero que te haya ayudado a entenderlo mejor. Igual es una chorrada pero os puedo decir que toda esta libreria me esta ayudando mucho con el Legends of Idhuriel.
Un abrazo compañeros.
CyberPure
20/05/2006, 00:00
Muy buena explicación, ademas de poder acceder mejor a las animaciones, si en alguna fase del juego el personaje no puediera andar por lo que sea, no pondriamos esa linea de animación, con lo que también, ahorramos memoria en ese momento al juego, no?
Espero mñn ponerme con fenix, lo primero que quiero conseguir es que mi juego hecho para gp32 funcione el gp2x, todavia no he podido conseguirlo. Hay que hacer alguna modificación al codigo o solo con compilarlo es suficiente. En windows funciona perfectamente. La paleta de colores de gp2x tiene alguna limitación como en gp32?
Por cierto, estas trabajando en alguna libreria para el control de la gravedad, que tan dificil es de entender en programación y a la que se le puede dar mucha utilidad en infinidad de juegos?
Salu2!
l_draven
20/05/2006, 00:16
Yo toy trabajando a 16 bits,pero no he tenido problemas con la paleta de todas formas.
En cuanto a la gravedad de momento no la he tocado porque no me ha hecho falta, asi que si me meto con ella sera mucho mas adelante, primero quisiera adelantar juego y mas funciones a la libreria.
Un saludete.
Os recomiendo un libro que podeis "conseguir" por ahi, o que os lo traiga un burro, que se llama "Flash MX game design demystified" que a pesar de que trata de hacer juegos en flash, los primeros capítulos son de cosas básicas de programación, fórmulas matemáticas y trigonométricas, y cosas asi que son básicas y vienen genial.
CyberPure
20/05/2006, 05:05
Draven eres mi heroe, espero que saques el juego pronto para GP2X y que sea tan espectacular como promete. Sigue trabajando tan fuerte como hasta ahora. Muchas Thank You.
Salu2![wei5]
l_draven
20/05/2006, 19:33
Muchas gracias Zenzuke por la info, parece interesante le echare un ojo cuando saque un ratin jeje.
CyberPure gracias por tus palabras, animan y mucho jejej, ahora mismo estoy dando caña al juego, lo he creado de 0 usando la libreria nueva y en comparacion con antes HE QUITADO PERO MOGOLLON DE LINEAS de codigo y hace lo mismo y con alguna mejora en el rendimiento jeje (de momento sobre el PC). Esto marchaaa jejej. Sigo trabajando con cosas basicas de momento (el mismo personaje para todo, mismo escenario, etc...) y cuando consiga lo que quiero me pondre a hacer todo lo que necesito graficamente y solo tendre que incluirlo en el FPG JEJEJ.
Un abrazo y gracias de nuevo.
l_draven
21/05/2006, 20:23
Saludetes.
No se porque me da que voy a tener que replantear algunas partes de la libreria, sobre todo en lo referente a los scrolles, porque me estan dando algun que otro dolor de cabeza.
Me gustaria saber si se puede controlar por nosotros mismos la camara de Fenix sin tener que usar el propio scroll de fenix (que es que consume FPS que es una barbaridad).
A ver si alguien me puede ayudar sobre el tema camara en Fenix.
Un abrazo y gracias de antemano.
CyberPure
25/05/2006, 01:22
Lo de la paleta de colores lo digo porque en gp32 era necesaria una paleta de colores especifica para que el fpg no petara. En la gp2x hace falta que la paleta sea una concreta?
Salu2!
l_draven
31/05/2006, 21:54
Hola de nuevo compañeros.
Ya esta disponible para descarga la version 0.1 beta de la liberia Andromeda para Fenix.
Os comento, es una beta que tiene poquitas cosas hechas, lo he puesto para la gente que quiera curiosear y empezar a probar cositas con ella.
De momento no he puesto ejemplo, intentare ponerlo mañana. Y no hay doc, pero como es el codigo fuente se puede ver lo que hace cada cosa.
De todas formas leeros por favor el "leeme.txt" que adjunto con el fichero, os informa de algunas cosas.
POR FAVOR!!! se que esta un poco verde aun (asi que no me critiqueis mucho :-P), pero ya se pueden hacer cositas con ella, yo todo lo que veis del juego esta hecho con ella mas algunas funciones propias del juego. Pero vamos que algo ya se puede hacer.
La ire actualizando poco a poco, cada vez que añada cosas nuevas, sacare nueva version y la pondre para descarga. Aun queda mucho trabajo jeje.
Bien no os doy mas la chapa, disfrutadla camaradas.
ANDROMEDA LIBRARY version 0.1b (http://80.59.39.159/l_draven/files/andromeda_v01b.rar)
Un abrazo people.
< - >
Holas de nuevo.
Estoy pensando en meter el tema de items como objetos aparte tb, es decir un nuevo tipo de dato cANItem que contendra sus propias propiedades.
Ya os informare, seguramente la sguiente version tenga algo de los items tambien.
Ya me direis que tal os va la libreria a los que la habeis descargado.
Un saludete.
hola l_draven!
eres un crack tio, la libreria esta muy bien (aunque solo he probado el device y un SEntity... :P)
todas estas funciones las llamo, por ejemplo con un if y eso no? es decir, hago un proceso de un personaje y por ejemplo con if(key(_right)) dentro llamo a cANAEntityMove? lo de Orientacion es como la variable flags?
lo del scroll no acabo de entender como se relaciona el movimiento del pers. con el del scroll, como el ctype=c_scroll de fenix y el scroll.camera, como se relacionan?
muchas gracias, ten por seguro que la libreria me sera de gran ayuda, continua con el proyecto! (esto de items y gravedad seria interesante ^^)
saludos!
l_draven
01/06/2006, 00:10
Hola compañero.
Me alegro muchisimo que te ayude la libreria y sobre todo que te guste como se usa. Gracias.
En cuanto a lo de usar las funciones las puedes usar como quieras dentro de un if, un while, for, donde quieras. El ejemplo que dices de (if (key(_right))) y llamar al move es perfectamente valido.
en cuanto al scroll mira te explico asi por encima.
Aqui no uso c_scroll para nada, todo es por defecto c_screen que es el que te da feniz por defecto. Asi que no toques la c_type de los procesos, yo en mi juego no la uso para nada y ves que el scroll es perfectamente valido.
Create un scroll con un grafico que quieras de fondo y create tb una variable de velocidad para el muñeco por ejemplo "avance=1"
bien pues cuando quieras haz un cANScrollMove() pasandole como velocidad la misma que use el muñeco, en este caso avance, pero cuidado piensa para donde quieres mover el scroll pues si quieres moverlo hacia la izquierda (que es lo normal si el muñeco avanza hacia la derecha) pues en vez de pasarle avance, tendras que pasarle -avance.
No se si me explicado bien jeje.
Pruebalo y cualquier duda preguntame que con gusto te ayudare.
Un abrazo.
hola,
la funcion move ya me funciona pero el scroll no.
me da error en esto:
cANScrollCreate(scroll,fpg_1,1); //creo scroll
me dice " incorrect number of parameters (")") "
y eso que solo he hecho un cANScroll scroll1; y la creacion de arriba...
EDIT: creo que le faltan parametros, pues en tus librerias se necesitan 2 parametros mas (offset_displace y pz), creo que en el post te has equivocado
saludos!
l_draven
01/06/2006, 01:35
mm pos seguro que me he equivocado jeje, a a ver te comento.
La funcion cANScrollCreate al final necesita los dos parametros que tu dices, offset_displace que es la velocidad a la que quieres que se mueva, es decir lo que fenix llama resolution, para que hagas la prueba ponle un 1 para el scroll standard y para las montañas de fondo cuando hagas si quieres que vayan mas lentas ponle un 2, y la pz es la posicion en z del grafico de scroll, ponle un 510 al primero y 512 para las montañas por ejemplo, pero para tu prueba ponle 500 mismamente, prueba y me dices.
Siento los despistes apañero jeje.
Un saludete.
Genial l_Draven, a ver si tengo tiempo y le meto mano a esas librerias jejeje.
Me alegra ver estas cosas para Fenix, por cierto, trabajas en windows o en linux? era para ver si me podias pasar tu version de FENIX ya que con la mia me da muchos errores y supongo que es por la incompatibilidad, yo uso la 0.84b
Salu2 y enorawena por la Andromeda Library :)
PD-El otro juego tuyo tb lo estas realizando en fenix? esque tiene una pinta cojonuda!! :)
l_draven
18/06/2006, 19:32
Nas TRAFUGA, gracias por tus palabras, si los dos juegos pa la GP2X estan hechos en Fenix.
En breve pondre la libreria Andromeda actualizada que ahora tiene cosas nuevas XD.
Yo trabajo en linux, pero mira te dejo un link a un fichero rar que tengo en mi server con el fenix para los 3 sistemas, windows, linux y gp2x.
http://ldraven.grafosyakuza.com/l_draven/files/fenix_all.rar
Un abrazote.
Gracias l_Draven (como ves, ya escribo bien tu nick jajaja), ya me puse ese fenix para mi pc :p ahora solo hace falta probar las nuevas librerias que saques y listo, de momento estoy sacando los graficos para ver si puedo tener un proyecto pronto jejej
por cierto, a ver si sacas doc de esta libreria, o sino tienes tiempo me avisas y le echo un vistazo e intento crearla yo ;) (por lo menos incluye comentarios en castellano en el codigo, ke eso ayuda jejeje)
Muchisimas gracias por todo esto tio, espero que todo salga de PM
Salu2 y animo con el proyecto :)
< - >
l_Draven, estoy intentando probar tus librerias un poco, carga la pantalla y se quita enseguida con las entidades animadas (con las estaticas no) al crearla con cANAEntityCreate, sabes a que puede ser debido???
l_draven
20/06/2006, 00:54
Hola Trafuga.
El problema viene de que las entidades animadas necesitan de un fichero .anm que no tendras y al llamarle al create necesitas pasarselo como parametro.
Un fichero .anm es un fichero de texto que contiene las animaciones divididas en nombre, frame inicio y frame final.
Por ejemplo imaginate que tienes un fichero FPG de 100 imagenes de las cuales del 1 al 50 son de andar y del 51 al 100 son de correr.
Pues un fichero anm para esta entidad seria algo asi.
andar
1
50
correr
51
100
Lo de "andar" o "correr" puedes darle el nombre que quieras, pero el tema es que ese nombre es el que luego le pasaras a la funcion de cANAEntityPlay.
Espero que te haya servido algo de ayuda compañero me alegro que empieces a usar la libreria ya me contaras que te esta pareciendo.
Un abrazo.
tengo creado el archivo anm y se lo paso como parametro a la funcion cANAEntityCreate y en el archivo tengo esto:
andar
1
12
ya que solo tengo una animacion de momento para hacer las pruebas y en el codigo esto otro:
PROGRAM EJEMPLO_1;
include "andromeda.prg";
GLOBAL
fpg_player;
cANDevice window;
cANAEntity player;
//---------------------------------------
BEGIN
cANDeviceCreate(window,320,240,0,"Ejemplo 1",cAN_CONST_WINDOW); //Creamos el device
fpg_player=load_fpg("personajes\player.fpg");
cANAEntityCreate(player,fpg_player,"personajes\player.anm");
write(0,10,10,0,"Andromeda Library Testing");
write_var(0,10,20,0,fps);
REPEAT
frame;
UNTIL (key(_enter));
exit("",0);
END
Pero nada, eso sigue sin ir, no se que le pasa :p a ver si puedes echarme una mano :)
l_draven
20/06/2006, 16:47
Hola Trafu, a mi ese codigo lo he probado y si que me funciona, vamos me arranca perfectamente y demas (hablo en el PC y desde linux) ademas he creado tu misma estructura de directorios, mismos nombres t mismo fichero anm con una animacion andar de 1 a 12.
Posteo mi codigo aqui por si acaso pero esta todo igual:
PROGRAM EJEMPLO_1;
include "andromeda.prg";
GLOBAL
fpg_player;
cANDevice window;
cANAEntity player;
//---------------------------------------
BEGIN
cANDeviceCreate(window,320,240,0,"Ejemplo 1",cAN_CONST_WINDOW); //Creamos el device
fpg_player=load_fpg("personajes\player.fpg");
cANAEntityCreate(player,fpg_player,"personajes\player.anm");
cANAEntitySetPosition(player,100,100,0);
write(0,10,10,0,"Andromeda Library Testing");
write_var(0,10,20,0,fps);
REPEAT
frame;
UNTIL (key(_enter));
exit("",0);
END
Lo que si yo pondria un cANAEntitySetPosition(player,100,100,0);
despues de crear el player porque sino no lo veras en pantalla ya que te saldra en el 0,0,0 jeje.
De todas formas en las rutas prueba a ver si es que no encuentra el fichero que para el tema de rutas es mu pijin, prueba poniendo las rutas de esta manera tambien:
cANAEntityCreate(player,fpg_player,".\personajes\player.anm");
con el .\ al prinicpio a ver.
A ver si hay suerte joliiiiin, ya te digo a mi me funciona perfecto.
Un abrazo
Ya me funciona tio, era por el nombre del archivo xDDD
Lo que pasa ahora es que se mueve demasiado deprisa xDD
Bueno, ya lo mirare mas a fondo, gracias:)
Hola trafuga,
Si lo que dices de que se mueve demasiado rapido es porque has hecho un cANAEntityMove, prueba a poner unos 30 fps (set_fps(30,1);) porque cuando yo lo use tambien me iba muy rapido.
Si lo que te pasa es con las animaciones que te van rapidas ya no lo se, te lo tendra que decir l_draven.
Espero haberte ayudado ;)
saludos
PD: L_draven, no es que quiera atarearte aun mas, ya se que estas haciendo varios (demasiados para un humano xD) proyectos y encima muy buenos, pero please, cuando puedas, o cuando saques la proxima version de Andromeda pon algun prg, por ejemplo de un scroll para poder ver su funcionamiento, muchas gracias
l_draven
21/06/2006, 16:29
Guenas compañeros.
64Beet, no hace falta poner el SET_FPS() aparte, el parametro 4 del cANDeviceCreate() son los frames, veo que trafuga le ha puesto un 0 que significa que vaya a lo maximo que de la maquina, por eso te ira rapido ;). Ponle un 30 como dice 64Beet y veras que ira mejor. De todas formas si la animacion te sigue pareciendo rapida a 30 frames igual es que tiene pocos frames la animacion en si.
En cuanto al ejemplo a ver si saco un rato y te preparo uno :), pero es que entre los proyectos y el curro toy que no existo XDD.
Un abrazo.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.