viernes, 30 de julio de 2010

Probando con "Proyecto Fénix"

Estoy empezando a practicar con el lenguaje Fenix. A ver si preparo algo decente para la Escena de la Gipuzkoa y Euskal que viene. xD

De momento tengo esto:
http://pensarescompartir.com/lahsoft/lahsoftcorp/?direc=fenix/&id=2010-08-02_test1_y_test2.rar

Pero... ¿qué es Fenix?
Fenix, o el proyecto Fenix, es el nombre de un proyecto multiplataforma de software libre para crear un compilador alternativo al lenguaje DIV parte fundamental de la suite para el desarrollo de videojuegos Div Games Studio. Sin embargo, con el paso del tiempo se han ido añadiendo nuevas características que entre otras cosas, ha derivado en una versión hasta cierto punto incompatible con el lenguaje DIV original y en un nuevo proyecto más ambicioso.

Características
  • Lenguaje interpretado, mezcla de C y Pascal: muy sencillo y potente.
  • Multiplataforma extrema: El intérprete funciona en todas las versiones de 32 bits de Windows, GNU/Linux, Mac OS X, BeOS, BSD, GP32, Dreamcast, PSP, GP2X y, en general, en casi cualquier plataforma que soporte SDL y GCC. Los programas compilados pueden ser intercambiados entre cualquiera de esas plataformas sin necesidad de recompilación.
  • Procesos (programación multihilo).
  • Motor de render 2D por software.
  • Modos gráficos 8 y 16 bits, entre otras cosas permite rotación de sprites, escalado, alpha blending, blendops, blit aditivo y sustractivo, etc.
  • Soporte (incompleto) para Modo 7.
  • Reproducción de sonidos en formato WAV, PCM y Ogg Vorbis.
  • Reproducción de módulos de música en formato IT, MOD y XM.
  • Soporte de librerías DLL en las plataformas que así lo permiten.

Ejemplo de código:
Program Prueba_serpiente;
Private
int cordX, cordY, cordZ;
int punt, tecla;
int ciclo;
End
Begin
Set_mode(640,480,MODE_16BITS,MODE_MODAL + MODE_FRAMELESS);
punt=1;
cordX=0;
cordY=0;

ciclo=0;
tecla=0;
delete_text(0);
write(0,cordX,cordY,1,"*");
frame;

loop
if(key(_W)) //Arriba
delete_text(0);
write(0,cordX,cordY,1,"*");
cordY=cordY-4;
end

if(key(_S)) //Abajo
delete_text(0);
write(0,cordX,cordY,1,"*");
cordY=cordY+4;
end

if(key(_A)) //Izquierda
delete_text(0);
write(0,cordX,cordY,1,"*");
cordX=cordX-4;
end

if(key(_D)) //Derecha
delete_text(0);
write(0,cordX,cordY,1,"*");
cordX=cordX+4;
end
if (key(_esc)) //Salir
break;
end

write(0,484,10,1,"CordX");
write(0,484,20,1,"CordY");
write(0,520,10,1,cordX );
write(0,520,20,1,cordY);
write(0,484,452,1,"Pulsa ESC para salir");
frame;
end
end

No hay comentarios:

Publicar un comentario