Optimización de Diciembre de 2014:
Se ha optimizado el uso de la CPU y de los scans de pantalla. Antes se usaba la CPU al 100% siempre usando esperas de bucle. Ahora esperando a que terminen los scans de pantalla, se ha reducido el uso de la CPU a un 5-10% de media, ademas de que ahora el juego va mucho mas fluido.
Bueno pues en esta versión final he solucionado el problema de los niveles creando un puntero directamente a la direccion 0x432 que cada vez que termina un nivel se incrementa en 196 (tamaño de los niveles) evitando el fallo de punteros de arrays del compilador GBDK, que aunque es una solución chapucera, al menos consigue que ahora funcione. Ahora por fin cuenta con 5 niveles.
Tambien he mejorado la jugabilidad y algunos bugs, pero poca cosa.
Bueno, pues como estos ultimos dias estoy pasando unos malos momentos, y por el clima tipico de Albacete no pude sacar la bici, decidí crear entre ayer y hoy durante mi tiempo libre el ultimo ROM que hare jamas para GB.
En este ROM convierto a Flappy Bird en un personaje de plataformas de controles novedosos, en los que Flappy puede volar en una dirección fijada impulsandose con el boton A. Esta direccion puede cambiarla pisando "suelo blando", aunque Flappy muere al pisar otro tipo de superficie o colisionar.
Digo que es el último ROM que hago porque este es el ROM mas complejo que he hecho hasta ahora (mas incluso que la demo 3D) ya que he usado por primera vez el background de la GB. En parte debido a la complejidad del ROM, el basto compilador GBDK me ha dado varios fallos, como por ejemplo errores a la hora de añadir niveles (Errores del compilador por arrays demasiado extensos)
También comento que todo el código esta escrito de 0, el código de la cámara es mejorable aunque no merece mi tiempo mejorarlo, el codigo de el movimiento, las colisiones... todo esta hecho por mi, incluidos los sprites y mapas.
Una de las cacaracterísticas que tenia pensadas para el ROM era un editor de niveles, pero paso, total nadie se va a descargar el juego... XD.
Tambien tenia pensado colgar por primera vez el codigo fuente, pero hay muchas lineas que tendria que comentar, muchas cosas que no entendereis,... Ademas... ¡Que no teneis ni repajolera idea! XDD
Lo que si os voy a comentar es como crear vuestros propios niveles y jugarlos añadiendolos con un editor hexadecimal:
Los niveles aprovechan los 32x32 tiles de 8x8px del background de la GB para hacer niveles de 16x16 elementos de 16x16px.
De estos 16x16 elementos, la informacion de los niveles es de 14x14 elementos, ya que los bordes se crean automaticamente para evitar salir de la pantalla.
Lo primero, la direccion hexadecimal del spawn-point de los cinco niveles x1,y1,x2,y2,... es en 0x806.
En los mapas hay 7 elementos distintos, cada uno con un byte que lo distingue:
0.Casilla en blanco
1.Flor
2.Puerta de nivel
3.Suelo blando pisable
4.Suelo duro no pisable
5.Cuerpo tuberia
6.Extremo inferior tuberia
7.Extremo superior tuberia
El nivel 1 empieza en la direccion 0x432, el nivel 2 en la 0x4f6 inmediatamente despues, etc.
En fin,... ¿Dudas? Si teneis tiempo (la descarga puede durar muchas milesimas de segundo) me gustaria que lo probarais. Se que no lo hareis :') en fin...