24 de Junio de 2017

Archivo para Mayo de 2009 en NightFox & Co - Desarrollo de Homebrew para NDS, blog de KnightFox

Buenas a todos!
 
Realizando mi nuevo juego he detectado un bug rarito en el sistema de animaciones, el cual aparecia si se usava un nº de slot de GFX en VRAM y nº de sprites diferentes, juntamente con la opcion KEEPFRAMES = true. El bug en cuestion provocaba que solo apareciera el primer frame de la animacion. El bug ya ha sido solventado.
 
He aprovechado tambien para actualizar toda la documentacion relativa a los mapas de colision, tanto en Castellano como en Ingles.
 
A partir de ahora, dado que todas las funciones basicas estan hechas en mi libreria, la cosa ira un poco mas despacio, ya que ire añadiendo funciones a la libreria a medida que las necesite para mi juego (que egoista soy).
 
Eso no quiere decir que este blog siga abierto a sugerencias, preguntas o que vaya publicando partes del codigo de mi juego que pueda encontrar interesantes para que aprendais.
 
Como siempre, las preguntas a los comentarios.
 
Descarga de la ultima version de la libreria y ejemplos: NightFox's Lib 20090524
 
Un cordial saludo a todos
 
NightFox

Mayo
12

Programacion en DS. Mapas de colisiones.

Hola!
 
Antes que nada, todo el mundo a actualizarse a la R26 del DevKitArm, basicamente corrige los fallos de la libfat con el emulador ideas, asi que ya tardais. Es muy comodo poder probar el codigo en el emulador, no ?
 
Mas novedades, he corregido un despiste en la libreria de fondos tileados, que en tamaños muy concretos de fondos, no mostraba la parte inferior. Ademas ahora obligo a que los fondos sean divisibles x256 pixeles (el tamaño que entiende la DS), asi evitamos bugs raros, tanto en la DS como usando el GRIT. Los espacios que no necesiteis, los rellenais de color rosa (0xFF00FF) que es el transparente y listos. Ocupar en VRAM, ocuparan lo mismo.
 
Pasemos al tema de hoy, los mapas de colisiones.
Estos se usan en juegos de plataformas y similares para saber que partes de nuestro fondo son o no "atravesables" por los sprites, por ejemplo, muros, escaleras, agua.
No son pixel perfect (se puede llegar, pero eso otro dia) asi que hoy, nos conformaremos en tener la precision de un tile (8x8 pixeles).
 
La teoria es sencilla, dibujamos un fondo usando colores planos, donde cada color le daremos un sentido, nada, muro, puerta, etc. Las rutinas de lecturas de este mapa, devolveran que tipo de tile tenemos en las coordenadas que le proporcionemos, asi sabremos si estamos delante un muro o si no hay nada y podemos continuar.
En este video se ve mas claramente, vereis que arriba se indica sobre que tile esta posicionado el cursor:
 

Mayo
6

Programacion en DS. Textos.

Hola!
Por fin tengo mi motor basico de textos.
La verdad es que es asi como simple. Es coger un fondo tileado, cargar como tiles todo el codigo ascii y despues una simple rutina que lee la cadena de texto y cambia los tiles del mapa por los correspondientes con la letra que queremos escribir.
A todo esto, que es muy tarde y el codigo esta muy documentado.
 

Para ver este video es necesario tener JavaScript activado y el plugin Flash instalado en el navegador.

 
 
Mirar las carpetas que he añadido al proyecto. La carpeta "examples" con los codigos fuentes de todos los ejemplos y los archivos necesarios para crearlos, la carpeta "lib" con todos los archivos que componen la libreria propiamente dicha y la carpeta "docs", con un manual en castellano e ingles de todas las funciones hechas hasta hoy. Lo he hecho en un formato que sea imprimible para usarlo como referencia mientras se programa.

Aqui teneis el proyecto: NightFox's lib for libnds 20090506
 
Un  cordial saludo a todos y buenas noches
 
Fox

Mayo
3

Programacion en Nintendo DS. Textos (Preview)

Hola!
Entrada cortita de fin de semana.
Tengo la intencion durante esta semana pulir un poco las funciones de texto que estoy programando para mi libreria. De momento he logrado esto:
 

Para ver este video es necesario tener JavaScript activado y el plugin Flash instalado en el navegador.

 
La cosa es simple, usar un fondo tileado con un tilesed con la tabla ASCII cargada para mostrar texto. La ventaja es que doy libertad para crear varias capas de texto, asi como moverlas como cualquier otro fondo. Tambien he añadido la posibilidad de poder usar fuentes rotadas 90º a la derecha o izquierda para poder mostrar textos con la pantalla de la DS en vertical (posicion de libro, vamos).
 
De momento esta parte esta muy verde, pero ya ira evolucionando poco a poco.
 
Recordar tambien que las LIBNDS tienes incorporadas las funciones de texto (ConsoleDemoInit) con su iprintf(); pero gestiona a su manera la VRAM y se pegaria con mi libreria.
 
Saludos a todos

Fox