Buenos dias!
El desarrollo de mi pequeño juego me ha obligado a realizar un par de funciones que mucha gente encontraria de utilidad, asi que las he añadido a mi libreria.
Las funciones nos permitiran saber el tile que se encuentra en las coordenadas que indiquemos de un fondo en concreto, para poder realizar cambios en el, por ejemplo, destruir partes del decorado, realizar animaciones en el fondo (cascadas, arboles moviendose, etc) de una manera bastante simple.
Las instrucciones en concreto son 3:
NF_GetTileOfMap(u8 screen, u8 layer, u16 tile_x, u16 tile_y); (
ver codigo fuente)
Esta funcion nos devuelve el valor del tile que se encuentra en las coordenadas especificadas (en tiles, no pixeles), del mapa cargado en la capa y pantallas especificados.
NF_SetTileOfMap(u8 screen, u8 layer, u16 tile_x, u16 tile_y, u16 tile); (
ver codigo fuente)
Similar a la funcion anterior, pero esta lo que hace es cambiar el valor del tile, con lo que es posible alterar el decorado.
NF_UpdateVramMap(u8 screen, u8 layer); (
ver codigo fuente)
Actualiza en la pantalla (VRAM) los cambios realizados en el tilemap. Usa esta funcion para que se reflejen en la pantalla los cambios realizados. Usala una vez por frame, una vez modificados todos los tiles necesarios. Si la usaras en cada tile modificado, solo conseguirias ralentizar la ejecucion de tu codigo.
Aqui podeis ver una demo de estas funciones, en la cual dependiendo de la tecla que pulsemos (A, B, X, Y) cambiamos el tile sobre el que se encuentra el cursor.
Para ver este video es necesario tener JavaScript activado y el plugin
Flash instalado en el navegador.
El codigo fuente de estre proyecto asi como la ROM compilada se encuentra en el archivo .7z de la libreria que os dejo a continuacion:
NightFox's Lib for Libnds 20090628
Espero que el tutorial y la actualizacion de hoy de mi libreria os sean de utilidad en vuestros proyectos.
Un saludo a todos y hasta la proxima entrada ^^
NightFox
5 Comentarios:
Se puede usar directavente en libnds?
30 de Junio de 2009 • 22:09 — Almamu (invitado)Si, de hecho, estoy haciendo
30 de Junio de 2009 • 22:23 — KnightFoxRe: Se puede usar directavente en libnds?
1 de Julio de 2009 • 19:42 — Almamu (invitado)En la carpeta source de tu
1 de Julio de 2009 • 20:10 — KnightFoxEn la carpeta source de tu codigo, donde tengas metido tu main.cpp o main.c
Mirate la carpeta nflib del zip que hay un proyecto entero, para que veas donde meter e incluir las librerias. Acuerdate de usar el makefile que incluyo ^^
Saludos
Re: Se puede usar directavente en libnds?
1 de Julio de 2009 • 22:33 — Almamu (invitado)