NightFox & Co - Desarrollo de Homebrew para NDS
Blog dedicado a los proyectos presentes y futuros desarrollados para la pequeña Nintendo DS
Aficiones: desarrollo, homebrew, nintendo ds, programación, videojuegos
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:
Blog dedicado a los proyectos presentes y futuros desarrollados para la pequeña Nintendo DS
Aficiones: desarrollo, homebrew, nintendo ds, programación, videojuegos

14 Comentarios:
Problema con el puntero
19 de Mayo de 2009 • 19:37 — Toño (invitado)Te has acordado de poner
21 de Mayo de 2009 • 00:20 — KnightFoxTe has acordado de poner esto
// Actualiza el array del OAM
NF_SpriteOamSet(0);
// Espera al sincronismo vertical
swiWaitForVBlank();
// Actualiza el OAM
oamUpdate(&oamMain);
Si no actualizas el array del OAM y el OAM propiamente dicho (en ese orden y esperando al VBLANK) no veras ningun sprite en pantalla.
Holap
21 de Mayo de 2009 • 10:51 — Toño (invitado)Esperamos con ansia
22 de Mayo de 2009 • 12:44 — Toño (invitado)Os funciona usando el
22 de Mayo de 2009 • 14:18 — KnightFoxQue va
22 de Mayo de 2009 • 14:21 — Toño (invitado)FAT y emulador
23 de Mayo de 2009 • 19:48 — Marta (invitado)He conseguido que se viera
23 de Mayo de 2009 • 23:39 — Marta (invitado)Dependiendo del numero de
24 de Mayo de 2009 • 12:10 — KnightFoxDependiendo del numero de archivos puede tardar bastante en el ideas. Los fondos, cargas los convertidos con el GRIT ? Has intentado usar las rutinas de carga de mis librerias?
Toño, has intentado usar el
24 de Mayo de 2009 • 12:58 — KnightFoxBuenas
25 de Mayo de 2009 • 00:01 — Toño (invitado)Vamos por partes ^^. El
25 de Mayo de 2009 • 00:24 — KnightFoxVamos por partes ^^.
El color transparente. GRIT usa de manera predeterminada el color rosa (FF00FF en photoshop) el problema es que cuando se indexa, ese debe ser el primer color de la paleta y a veces el photoshop no lo pone ahi. La solucion es forzar ese color en la paleta. Cuando indexes, usa la opcion exacta si son menos de 256 colores o Local (Adaptable) y en forzar colores selecciona "A medida" y define el rosa (FF00FF) como el primer color. Con eso solucionado.
Los mapas de colision debes convertir los dos, el de 256x256 que cargaras como fondo y no debe de contener el tilesed de la fila superior y el cual puede tener el grafico que quieras y el mapa de colisiones de 256x264, el cual lo debes cargar como mapa de colisiones.
Convierte cada archivo con su BAT correspondiente, "Convert_Backgrounds.bat" para fondos y "Convert_CMaps.bat" para los mapas de colision.
El resultado seria este:
Fondo con graficos
Mapa de colisiones
Como ves, la primera imagen es nuestro decorado y la segunda el mapa que le indicara a nuestro codigo que partes podemos atravesar, cualas no y donde esta el final
Un saludo
NightFox
¡Muchisimas gracias!
25 de Mayo de 2009 • 01:17 — Toño (invitado)Se tienes que poner las
25 de Mayo de 2009 • 01:50 — KnightFoxAsi que aunque el mapa de colisiones mida 256x264, como la parte util sigue siendo 256x256 esa sera la medida que especificaremos.