Ver la versión completa : yo tb quiero ser un rey mago
chemaris
06/01/2006, 10:47
animado por el Hamigo puck2099 y su port de fenix, he dicho yo no voy a ser menos y me he puesto a portar un juego de futbol Soccer Deathmatch (http://www.loosersjuegos.com.ar/juegos/soccerd/soccerd.php)que tiene muy buena pinta, el juego es GPL y esta realizado con DIV que es muy similar a fenix aunque hay canbios sustanciales, tras 5 horas dejandome la vista he conseguido que compile sin errores y se ejecute, aunque por ahora se bloquea justo antes de jugar y no hay soporte de sonido ya que fenix no soporta los archivos PCM, sabeis alguna manera de pasarlos a wav ??
EN principo el juego sera para gp32 y gp2x, aunque em parece que en la gp32 va a ser bastante dificil ya que los 8mb de ram se quedan cortos, el juego ocupa 52MB, aunque siempre se podra sacar una version reducida para la blanquita
unas imagenes del juego [wei5]
http://www.loosersjuegos.com.ar/juegos/soccerd/ima/juego_07.pnghttp://www.loosersjuegos.com.ar/juegos/soccerd/ima/juego_05.pnghttp://www.loosersjuegos.com.ar/juegos/soccerd/ima/juego_08.png
quiza lo anuncie demasiado pronto y no sea capaz de hacerlo 100% funcional, principalmente porque ando escasisimo de tiempo, pero oye tenia que soltarlo
si alguien esta interesado en probar lo que va ahora lo subo
chemaris
06/01/2006, 11:11
como me temia para la blanquita va a estar dificil, mas bien va a ser imposible, poco despues de cargar la intro sale el fatidico error de que no hay memoria disponible :confused: , esperemos que los 32mb de ram disponibles de la gp2x sean suficientes :brindis:
Que buena pinta tiene!!!jaja, nunca habia visto un juego de futbol que se pudiesen elegir a Goku o los de Southpark!! tiene pinta de ser un descoj0no :D
Jaja, esto esta en el mismo sitio que el Ceferino :D
Animo chemaka, seguro que lo consigues :)
Aupaaa Chemaris, enga, ahí recuperando el respeto del foro :P jajajaja
Mu buen juego, ánimo
Primero felicitar a Puck. Si conseguimos que rulen decentemente los juegos en fenix muchos se animarán a programar para la negrita.
Segundo, una pregunta. Yo tengo un juego de lucha para pc en fenix. El tema está en la resolución, 640x480, el doble. Ya he pasado los fondos (que son simples pcx's) a 320x240 (la mitad) pero si tengo que pasar todos los frames de las animaciones de cada personaje a la mitad uno a uno y volver a empaquetarlos en un fpg me puede dar algo (ya que son bastantes).
¿Sabeis de algún programita que permita hacer esto en serie? Existen muchos programas de dibujo que permiten hacer trabajo en lotes (es decir, realizar una modificación común a una serie de imágenes) pero tenemos el problema que las imágenes están dentro de los fpg's.
A parte está el tema de los puntos de control, pero eso supongo que tendré que hacerlo a mano.
Saludos!
Y nunca va a poder usarse los 64 mb de ram por los cuales el precio de la consola se vio encarecido?
Y nunca va a poder usarse los 64 mb de ram por los cuales el precio de la consola se vio encarecido?
Ya se pueden usar mas de 32Mb que yo sepa, por ejemplo la minilib lo permite.
¿Entonces por que chemaris habla de 32?
Y si , la minilib tambien permite usar los 2 cores , pero de una forma compleja si no estoi equivocado.
NoobLuck
06/01/2006, 22:47
Primero felicitar a Puck. Si conseguimos que rulen decentemente los juegos en fenix muchos se animarán a programar para la negrita.
Segundo, una pregunta. Yo tengo un juego de lucha para pc en fenix. El tema está en la resolución, 640x480, el doble. Ya he pasado los fondos (que son simples pcx's) a 320x240 (la mitad) pero si tengo que pasar todos los frames de las animaciones de cada personaje a la mitad uno a uno y volver a empaquetarlos en un fpg me puede dar algo (ya que son bastantes).Saludos!
¿Donde esta el juego ahora?, queria enseñarlo el otro dia y no pude XDD
Bueno, yo entiendo algo de fenix y quizas te venga bien saber que Fenix admite de forma nativa el formato OGG, que es como el mp3 pero libre. Ahorra memoria por un tubo, aunque no se si se acaba descomprimiendo.
Y no se si te va a servir, pero para modificar todos los fpgs ¿por que no te haces un pequeño programa para ello? coges un mapa, lo copias a otro a la mitad del tamaño (xput) y lo guardas en un nuevo fpg (o fgc que es el nuevo formato, segun la version de Fenix que uses) Yo lo hice para crearme un fpg con graficos cambiados de color en un momento que no disponia de fpgedit y los resultados fueron buenos y rapidos (una vez solventados los problemas de programarlo XD)
Yo tambien lo sere... cuando saque un ratillo a ver si puedo "sacar" el juego de la carcasa del concurso de fenixworld y me probais el rendimiento XD
¿Donde esta el juego ahora?, queria enseñarlo el otro dia y no pude XDD
Lo tenía en mi web, pero la tenía tan abandonada que al final la deje y todo. Estoy intentando que funcione (que arranque) en la gp con el port de fenix de Puck pero por ahora peta. En cuanto sea funcional la subiré a algún sitio junto con la original para linux/windows.
[Drumpi]
Es una posibilidad, pero hace tiempo que no programo en fenix y nunca he trasteado con la escritura de ficheros y quería un método rápido e indoloro. Bueno, supongo que tendré que mirar y ver si hay funciones que hagan esto, pero me temo que es escalado de fenix será muy cutre y las imágenes no es que fueran de mucha calidad,. por lo que si pierden detalle igual ni se entienden. Bueno, me voy a la siesta y ya me lo pienso esta noche.
Es una posibilidad, pero hace tiempo que no programo en fenix y nunca he trasteado con la escritura de ficheros...
Ni falta que te hace, hay funciones como fpg_new (o new_fpg, no recuerdo cual es la que funciona) y save_fpg que hacen todo el trabajo XD
me temo que es escalado de fenix será muy cutre y las imágenes no es que fueran de mucha calidad,. por lo que si pierden detalle igual ni se entienden
Bueno, eso ya no lo se, depende de tus gustos, solo es una opcion, de algoritmos de escalado no entiendo, y para lo que hay el de fenix me basta.
Ni falta que te hace, hay funciones como fpg_new (o new_fpg, no recuerdo cual es la que funciona) y save_fpg que hacen todo el trabajo XD
Bueno, eso ya no lo se, depende de tus gustos, solo es una opcion, de algoritmos de escalado no entiendo, y para lo que hay el de fenix me basta.
Probare lo que dices. Gracias por tu atencion simultanea en dos hilos del foro, jejeje.
:brindis:
Lo he intentado pero no lo consigo. Me crea una nueva libreria, pero vacia, y si la intento abrir peta.
El codigo es este:
----------------------------------------------------------------
PROGRAM CONVERSOR2X;
GLOBAL
//contador
contador;
//fpg's nuevos
nfpg_general;
//fpg's antiguos
fpg_general;
//vamos al grano, creamos un nuevo fpg en memoria
nfpg_general=fpg_new();
//MAP_XPUTNP (FILE_DST, GRAPH_DST, FILE_SRC, GRAPH_SRC, X, Y, ANGLE, SCALE_X, SCALE_Y, FLAGS)
//copiamos los archivos de un fpg en otro de uno en uno redimen. al 50%
for(contador=1;contador<=100;contador++)
map_xputnp(nfpg_general,contador,fpg_general,conta dor,0,0,0,50,50,0);
end
//salvamos el nuevo fpg
//INT SAVE_FPG ( INT librería, STRING fichero )
save_fpg(nfpg_general, "nfpg_general.fpg" );
FRAME;
END
----------------------------------------------
El propio fenix me avisa del fallo:
>>gr_save_fpg: intento de guardar un FPG vacío
Pues me crea un archivo de 10 bytes que no me vale pa na! :( :(
La funcio la he visto en el foro de fenix, pero no se si ya esta implementada.
Mira a ver si se han salvado los graficos en el fpg antes de guardar el fpg, a mi me pasaba algo parecido pero consegui arreglarlo tras un par de intentos:
Prueba a usar xput, sería algo mas o menos asi:
graph_orig=map_clone(fpg_origen,cont);
graph_dest=new_map(*,*,*);
map_xput(0,graph_dest,grph_orig,x,y,ang,size,flags ,region)
fpg_add(fpg_dest,cont,0,graph_orig);
unload_map(0,graph_orig);
Es otra forma usando map_xput, aunque puedes probar xput o algo asi. De todas formas, te pongo el codigo que use yo, que me copia en un nuevo fpg los primeros graficos y despues me añade los demas con otro color:
PROGRAM conversor_teclas;
CONST
GLOBAL
graficos;
graficos2;
cont;
LOCAL
PRIVATE
BEGIN
full_screen=false;
set_mode(640,480,16);
set_fps(50,0);
graficos=load_fpg("concurso.fpg");
graficos2=fpg_new();
fpg_add(graficos2,1,graficos,1);
fpg_add(graficos2,2,graficos,2);
fpg_add(graficos2,3,graficos,3);
fpg_add(graficos2,4,graficos,4);
for (cont=5;cont<17;cont++);
convert_grafico (cont,0,1,0,0);
frame;
end
/*frame(300);
unload_fpg(graficos);
graficos=load_fpg("concurso.fpg");
frame(300);*/
cont=5;
for (cont=5;cont<17;cont++);
convert_grafico (cont,1,0,0,12);
frame;
end
write (0,320,240,4,"CONVERSION COMPLETADA");
loop
if (key(_esc)) break; end
frame;
end
save_fpg(graficos2,"concurso2.fpg");
let_me_alone();
delete_text(0);
unload_fpg(graficos);
unload_fpg(graficos2);
END
process convert_grafico (graph2,r,g,b,desp)
begin
x=320;
y=240;
graph=map_clone(file,graph2);
file=0;
rgbscale(file,graph,r,g,b);
frame;
//save_map(file,graph,"mod"+itoa(graph)+".map");
fpg_add(graficos2,graph2+desp,file,graph);
end
Tambien muestra los gráficos que se han salvado, para ver si se han modificado.
Animo, sigue probando.
Tiene buena pinta espero q no se abandone como el otro juego de futbol.
;)
Mira a ver si se han salvado los graficos en el fpg antes de guardar el fpg, a mi me pasaba algo parecido pero consegui arreglarlo tras un par de intentos:
Prueba a usar xput, sería algo mas o menos asi:
graph_orig=map_clone(fpg_origen,cont);
graph_dest=new_map(*,*,*);
map_xput(0,graph_dest,grph_orig,x,y,ang,size,flags ,region)
fpg_add(fpg_dest,cont,0,graph_orig);
unload_map(0,graph_orig);
Es otra forma usando map_xput, aunque puedes probar xput o algo asi. De todas formas, te pongo el codigo que use yo, que me copia en un nuevo fpg los primeros graficos y despues me añade los demas con otro color:
PROGRAM conversor_teclas;
CONST
GLOBAL
graficos;
graficos2;
cont;
LOCAL
PRIVATE
BEGIN
full_screen=false;
set_mode(640,480,16);
set_fps(50,0);
graficos=load_fpg("concurso.fpg");
graficos2=fpg_new();
fpg_add(graficos2,1,graficos,1);
fpg_add(graficos2,2,graficos,2);
fpg_add(graficos2,3,graficos,3);
fpg_add(graficos2,4,graficos,4);
for (cont=5;cont<17;cont++);
convert_grafico (cont,0,1,0,0);
frame;
end
/*frame(300);
unload_fpg(graficos);
graficos=load_fpg("concurso.fpg");
frame(300);*/
cont=5;
for (cont=5;cont<17;cont++);
convert_grafico (cont,1,0,0,12);
frame;
end
write (0,320,240,4,"CONVERSION COMPLETADA");
loop
if (key(_esc)) break; end
frame;
end
save_fpg(graficos2,"concurso2.fpg");
let_me_alone();
delete_text(0);
unload_fpg(graficos);
unload_fpg(graficos2);
END
process convert_grafico (graph2,r,g,b,desp)
begin
x=320;
y=240;
graph=map_clone(file,graph2);
file=0;
rgbscale(file,graph,r,g,b);
frame;
//save_map(file,graph,"mod"+itoa(graph)+".map");
fpg_add(graficos2,graph2+desp,file,graph);
end
Tambien muestra los gráficos que se han salvado, para ver si se han modificado.
Animo, sigue probando.
Al probar graph_dest=new_map(*,*,*); da error ya que hay que especificar el tamaño. Van a ser la mitad que los originales. Vamos a ello!
graph_dest=new_map(graph_orig.height/2,graph_orig.wide/2,16);
Aggg. No va! Cómo se especifica el ancho? lo de wide dice que va a ser que no!
------------
Bueno, eso ya esta (supongo). Voy a probar esto:
graph_orig=map_clone(fpg_origen,contador);
ancho=GRAPHIC_INFO (fpg_origen, contador, g_wide);
alto=GRAPHIC_INFO (fpg_origen, contador, g_height);
graph_dest=new_map(alto/2,ancho/2,16);
map_xput(0,graph_dest,graph_orig,0,0,0,50,0,0);
fpg_add(fpg_dest,contador,0,graph_orig);
unload_map(0,graph_orig);
--------------------
Vale aqui falla algo: El codigo anterior no iba porque decia que el num de parametros era incorrecto. Si le quitamos uno al map_xput ya va:
for(contador=1;contador<=100;contador++)
//map_xputnp(nfpg_general,contador,fpg_general,conta dor,0,0,0,50,50,0);
graph_orig=map_clone(fpg_origen,contador);
ancho=GRAPHIC_INFO (fpg_origen, contador, g_wide);
alto=GRAPHIC_INFO (fpg_origen, contador, g_height);
graph_dest=new_map(alto/2,ancho/2,16);
map_xput(0,graph_dest,graph_orig,0,0,50,0,0);
fpg_add(fpg_dest,contador,0,graph_orig);
unload_map(0,graph_orig);
Ya escribe el fpg, pero es exactamente igual al anterior. :(
Segun la documentacion:
MAP_XPUT ( INT librería, INT gráfico, INT gráfico-origen, INT x, INT y, INT ángulo, INT tamaño, INT flags, INT region )
Por tanto debería haber un ",0" al final del xput, pero si lo pongo peta. ¿Qué está pasando? ¿Es por la versión de fenix usada?
Al moderador que toque. si no os importa pasad este hilo al subforo de programacion en fenix de la gp2x, que es donde toca.
Aprovecho para ver si alguien me sabe resolver la duda del programita de aqui arriba. que no consigo que rule :(
Bueno, sorry por la tardanza, pero los ordenadores de mi facultad tienen el acceso restringido y no me deja entrar en este foro.
Veamos, no se que documentacion miras, pero por lo que parece estas mirando la de la 083b (que es la onile de la web oficial) El problema de esta es que en cada version hay cambios y puede que algunas funciones aparezcan "mal documentadas", si a eso le sumamos que cada uno se especializa en la version que más le gusta... (yo soy partidario de la 083b por los midis, o de la anterior a la 084b por estabilidad y funciones)
Por eso, puede que no haya que especificar region (cosa rara en esta funcion ¿no crees?)
Otro detalle: mira por pantalla (usa wirte o write_int) los valores devueltos para ancho y alto de una sola imagen, si son correctos, haz que se vea el nuevo mapa ANTES de añadirlo al fpg, para ver si se ha creado bien, y despues lo añades. Ve siempre paso a paso, para ver donde falla. Es que me extraña que al crear un mapa la mitad de grande te deje una imagen del mismo tamaño.
Por cierto, no lo pones en el codigo, pero ¿guardas el fpg con save_fpg? lo mismo estas añadiendo los mapas pero no lo guardas :P
Hola Drumpi!
Pasate por el foro de fenix que se ha creado please. Ya he resuelto el problema, toqueteando y probando cosas :D
Échale un vistazo al código, y me cuentas.
La docum que miro es, efectivamente, la de la online, que esta algo incompleta, pero voy tirando. ¿Cual debería mirar? (en el pc usaba la 0.84 pero la verdad es q ni me acuerdo).
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.