PDA

Ver la versión completa : no aparecen 2 enemigos...



vizales77
12/01/2006, 19:56
Bueno, ante todo mi enhorabuena por el port del fenix, que aun no he podido probar en la gp2x... estoy intentando programar algo, pero no consigo hacer que aparezcan 2 enemigos distintos, me aparece siempre el mismo....

--------------------------
Begin
a=20;b=20;
Full_screen=false;
set_mode(320,240,16);
set_fps(60,1);
Graficos=load_fpg("graficos.fpg");

nave ();

enemigo (a,b,direccion);
enemigo (80,80,direccion);

Loop
comprueba_direccion(a,b,direccion);
If (key(_esc)) Break; End
Frame;
End

unload_fpg(graficos);
let_me_alone();
End
----------------------------------


La idea es que se vayan desplazando de izquierda a derecha, ya al llegar a un "tope", bajen a otra linea (os sonará de algún juego...) ; Solo me aparece el 2º enemigo... ¿alguna sugerencia?

He estado mirando tutoriales y no parece muy distinto lo que veo de lo mio, por lo que desconozco el falllo...

Gracias de antemano

Hokutoy
12/01/2006, 20:33
Con tan poco codigo no puedo apreciar ningun fallo... has probado a modificar el primer enemigo:
enemigo (a,b,direccion);
por:
enemigo (60,60,direccion);
a ver si funciona?

Prueba a añadir un par de enemigo mas a ver si solo sale el último o solo falta el primero... etc etc etc

vizales77
12/01/2006, 20:44
solo sale el último, imagino que porque cuando llamo al segundo proceso cree que lo que hago es llamar al primero pero modificando los parámetros.... alguna idea de como crear nuevos procesos? l

chipan
12/01/2006, 20:57
¿no será que el proceso comprueba_direccion modifica algo en los procesos enemigo? es decir, que los 2 procesos se solapen.
Si no nos das todo el codigo no podemos ayudarte como es debido.

Hokutoy
12/01/2006, 20:58
Hombre si cuelgas el .prg será mas facil el poder ayudarte a arreglar el fallo... por aquí hay autenticos gurus del fenix.

Byes

vizales77
12/01/2006, 21:41
jajajaj, si, el proceso comprueba dirección modifica a los procesos enemigos (de hecho comprueba la cordenada x y si llega a un tope, aumente la y y cambia la dirección)

El prg los lo pego mañana, que no lo tengo aqui (antes si, q estaba en el curro)

muchas gracias por la ayuda y por no dejar que deje de probar :-D

os adjunto el prg, a ver si me podeis hechar un cable...

vizales77
13/01/2006, 14:52
weno, a ver si se despierta la gente y me ilumina, que tengo mono de programar y no sé que mas probar... jejeje

Hokutoy
13/01/2006, 15:51
No me lo he mirado mucho por falta de tiempo pero retocando un pocoquito en el PC funciona bien.
Simplemente con incluir el contenido del proceso "Comprueba direccion" dentro del proceso enemigo ya funciona.


Process enemigo (a,b,direccion)

Private basura;

Begin
// direccion 1= derecha 2=izquierda
graph=2;
basura=0;

Repeat
If (a>300)
direccion=2;
b=b+10;
End
If (a<20)
direccion=1;
b=b+10;
End

If (direccion==1)
a=a+4;
Else
a=a-4;
End

Repeat
basura++;
Frame;
Until(basura<>25);

Frame;
x=a;
y=b;
Until (collision(Type disparo) )
End



Aunque la verdad es que hay algunas cosillas que se podrían mejorar ja que no creo que te vayan a funcionar como esperas jejeje. Pero mejor que lo pienses tu primero a ver si lo arreglas. Basicamente, los enemigos no dan la vuelta porque el chequeo de dirreccion no lo realizaba el enemigo sino el proceso principal por lo que las variables a,b y direccion modificadas eran las de ese proceso.

PD: Al principio comentas que solo sale un enemigo... a mi me salen todos pero se ivan de la pantalla sin volver.

PD2: A ver si algun compañero te puede dar mas pistas.

vizales77
13/01/2006, 16:21
nada, sigue apareciendo solo el último que coloco... machacando los anteriores. si creo los enemigos dentro del loop el programa principal me salen muchos (creo un repeat para que solo cree 2 pero nada).

Sigo pensando que el problema es que al llamar por 2ª (o sucesivas) veces al proceso "enemigo" no crea uno nuevo, sino que modifica el anterior... si alguien puede probar en su fenix a ver si le ocurre lo mismo...

Hokutoy
13/01/2006, 16:26
Es raro... utilizando tu txt llamado galago con el fenix del PC y un FPG que tenía por ahí me salen los 4 enemigos sin ningun problema... no se solapan.
Seguro que tienes el Fenix bien configurado?

He probado tu prueba.txt y funciona bien... estoy enpezando a pensar que es cosa de tu Pc jejeje

Por cierto... las diferentes llamadas a un proceso lo crea de nuevo no lo solapa... eso es seguro.
Pues lo dicho... a mi me funciona bien. Lo estas probando en el PC no?

Prueba a descargarte este prueba.txt y RENOMBRALO a prueba.dcb y ejecutalo a ver si te salen todos los enemigos o solo 1... a ver si va a ser cosa del "compilador".

Byes

vizales77
13/01/2006, 16:43
tengo la verisión ésta de fenix: Fenix-084b-win32-binary
y uso el ide de firebird...

Seguro que es cosa del PC, ya empieza quedarme claro...

Lo que no sé es como ejecutar un dcb...

gracias por tu ayuda, parece que poco a poco sacamos conclusiones y ya veo que no es problema del programa :-D

Hokutoy
13/01/2006, 16:48
Vaya, un .DCB es el programa en fenix (.prg) compilado. En teoria un dobleclick lo ejecuta como si fuera un .exe siempre y cuando tengas el fenix instalado.
Si no prueba a arrastrar el DCB encima del FXI.EXE que seguro que tienes en la carpeta del Fenix.


La secuencia es esta:

Paso 1: Arrastra tu juego.prg encima de FXC.EXE (compilador) y se generará un juego.DCB
Paso 2: Arrastra el juego.DCB encima del FXI.EXE (interprete) y el juego se ejecutará.

El Firebird no esta mal como IDE para escribir el codigo (yo lo uso) pero no es muy muy recomendado para probar ya que a veces falla y tiene bugs... puede que se trate de eso.
Ante errores raros prueba siempre el compilado manual siguiendo los pasos 1 y 2.

PD: A ver si alguien mas comenta algo... que yo de Fenix voy tambien justito jejeje.

Byes

vizales77
13/01/2006, 16:54
no existe o no es un DCB versión 3 o compatible

que version de fenix usas tu? y el IDE?

Hokutoy
13/01/2006, 17:04
Yo uso el firebird aunque como normalmente lo hago desde el curro me apaño con el notepad o el worpad... LOL

Yo uso el fenix version compatible con GP32

Descomprime el ZIP y en la misma carpeta donde estan los ejecutables del Fenix copia tu juego.prg, tus fpgs, etc... i realiza los pasos 1 y 2 antes mencionados.

La carpeta Gp32 files no es necesaria.

Suerte

vizales77
13/01/2006, 17:29
joe, con el tuyo me funciona perfectamente!!! :-D (y despues probando mi programa salen los enemigos que quiero)

muchiiiiiiiiiisimas gracias, sin ti no lo hubiera logrado!!!!

Hokutoy
13/01/2006, 17:35
Pues me alegro :D
Currate este Galaga Clon y así lo podremos disfrutar todos. Si te van saliendo mas dudas ya sabes [wei6]

Si quieres seguir usando tu IDE FIrebird recuerda el cambiar en las opciones la ruta a los archivos del Fenix que te he pasado y así lo podras probar los programas al vuelo.

chipan
13/01/2006, 17:43
Joer que despiste... llego un día tarde. Como último consejo te recomiendo que cambies el firebird por el flamebird, es infinitamente mejor ya que tienes ayuda contextual, un inspector de proyectos todo el tiempo en pantalla que te muestra los procesos y variables que tienes segun las vas añadiendo al programa, hace que los DCB se ejecuten con un simple doble click. Solo tiene un pequeño "bug" si se le puede llamar así, y es que (en teoría) no reconoce rutas de mas de 5 subdirectorios, es decir, que es mejor tenerlo instalado en "C:\fenix\flamebird\" que en "C:\programas\programacion\ides\fenix\v084b\grafico s\flamebird\". A mi modo de ver, es 1000000 mejor, pero como los tutos hablan del firebird, todo el mundo lo usa.
Por cierto, el flamebird, es la 2ª versión del firebird, solo que le hubo que cambiar el nombre por problemas de patentes.

bleim
13/01/2006, 22:09
No conocia ese IDE. Ya era hora que apareciese uno potito. Yo uso el kate para programar, compilar y ejecutar (linux) pero voy a probar ese, aunque parece que solo va en windows. ¿Alguno similar para linux?

chipan
13/01/2006, 22:18
No conocia ese IDE. Ya era hora que apareciese uno potito. Yo uso el kate para programar, compilar y ejecutar (linux) pero voy a probar ese, aunque parece que solo va en windows. ¿Alguno similar para linux?
No se, pero creo que tienen codigo fuente.

Hokutoy
13/01/2006, 22:25
Pues ya que estamos de recomendaciones os invito a visitar y, si podeis, colaborar con:

http://fenixonfire.gp32x.de/

De las pocas páginas de Fenix en Ingles pero con algun tutorial, source comentado y snippets la mar de curiosos sobretodo para los que empezmos con el Fenix.

Saludos :)

chemaris
13/01/2006, 22:29
yo prove el flamebrid, pero no me gusto y volvi enseguida con el firebrid que me gusta mas,. tendre que darle otra oportunidad al flamebrid