viernes, 30 de julio de 2010

El "Space Invaders" en 12 líneas.

¿Alguna vez, jugando a un videojuego, te has planteado cómo estará programado? A mi me pasa constantemente. Cuando estoy jugando a un juego, suelo soltar cosas como... Buah, esto seguro que es un do while; esto otro.... bah, seguro que es una clase con tal y tal propiedades.

Pos la cosa es que un día dije: ¿si tuviese que programar un "Space Invaders" cómo haría el "main()"?
Y este fue el resultado:

Principio.
Dibujar tu nave.
Dibujar los enemigos.
Dibujar los disparos.
Comprobar si hay colisiones.
Si un disparo toca un enemigo, matarlo.
Si un del enemigo te toca, matarte.
Comprobar si hay algún movimiento de joystick.
Calcular la nueva posición, acorde al movimiento del joystick.
Crear un nuevo disparo si has apretado el botón de disparar.
Calcular los movimientos de los enemigos.
Ir al Principio.


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

domingo, 18 de julio de 2010

Nuevas sorpresas

Bueno, como ya os dije, tengo una serie de proyectos en mente. Uno de ellos es el pdcast cuya primera entrega es esta:

http://www.ivoox.com/podcast-yawin-cap-1-audios-mp3_rf_329110_1.html

La otra, es un videoblog cuyo avance informativo es este:

viernes, 16 de julio de 2010

Estamos de proyectos

BuSiento haber estado ausente tanto tiempo, pero he estado ideando una serie de proyectos. El primero, el que os voy a presentar hoy es este:

El podcast de Yawin.

Si señores. Acabo de abiri un podcast. Podréis seguir los capítulos a través de este mismo blog. Este es un "avance informativo" del blog:
http://www.ivoox.com/podcast-yawin-cap-0-5-audios-mp3_rf_327027_1.html

Espero que os guste la idea ^__^