1) Entiendo tu sugerencia. Mi pregunta es, ¿hay alguna función para borrar todo lo que hay en la VRAM, como el NF_DeleteTiledBg() para la RAM?. Ayer estuve leyendo el manual y no recuerdo. Sería muy cómodo para pasar de un menú a otro.nazareth escribió:1) Para borrarlo de la pantalla tienes que borrarlo de la VRAM, si quieres eliminarlo por completo, pues lo borras de VRAM y RAM.
Un ejemplo de gestión es cargar sprites en RAM y conforme necesitas ir pasando en VRAM, creando y borrando en VRAM, dejando la RAM intacta a operaciones de borrado y tal, no se si me sigues.
2)Si el sprite es de 16x16, la "colisión" del mismo es de 16x16, aunque sea casi por completo magenta. Si quieres una colisión más precisa, pues tendrás que reducir el tamaño de la colisión.
3) No se, no he tocado apenas tiles, aquí no puedo ayudarte.
Un saludo y feliz año nuevo.
1) No recuerdo función, pero una hay seguro, para borrar de VRAM, diría que DeleteTiledBg es para VRAM...pasabaporaquí escribió:1) Entiendo tu sugerencia. Mi pregunta es, ¿hay alguna función para borrar todo lo que hay en la VRAM, como el NF_DeleteTiledBg() para la RAM?. Ayer estuve leyendo el manual y no recuerdo. Sería muy cómodo para pasar de un menú a otro.nazareth escribió:1) Para borrarlo de la pantalla tienes que borrarlo de la VRAM, si quieres eliminarlo por completo, pues lo borras de VRAM y RAM.
Un ejemplo de gestión es cargar sprites en RAM y conforme necesitas ir pasando en VRAM, creando y borrando en VRAM, dejando la RAM intacta a operaciones de borrado y tal, no se si me sigues.
2)Si el sprite es de 16x16, la "colisión" del mismo es de 16x16, aunque sea casi por completo magenta. Si quieres una colisión más precisa, pues tendrás que reducir el tamaño de la colisión.
3) No se, no he tocado apenas tiles, aquí no puedo ayudarte.
Un saludo y feliz año nuevo.
2) ¿Estamos hablando de CMAPS?, es que no entiendo muy bien el concepto de colisión. Igual lo más simple es ajustar el tamaño de los botones a la resolución, dejando como mucho una linea por arriba y por abajo para la magenta.
Gracias.
1) Sí, esa función es la que borra de la VRAM. El caso es que esa función solo borra un sprite por comando, así que me preguntaba a ver si existe otra función que las borre todas a la vez como lo hace el NF_ResetTiledBgBuffers() como con la RAM. Porque claro, si cargo muchos sprites tengo que hacerlo uno por uno...nazareth escribió:1) No recuerdo función, pero una hay seguro, para borrar de VRAM, diría que DeleteTiledBg es para VRAM...pasabaporaquí escribió:1) Entiendo tu sugerencia. Mi pregunta es, ¿hay alguna función para borrar todo lo que hay en la VRAM, como el NF_DeleteTiledBg() para la RAM?. Ayer estuve leyendo el manual y no recuerdo. Sería muy cómodo para pasar de un menú a otro.nazareth escribió:1) Para borrarlo de la pantalla tienes que borrarlo de la VRAM, si quieres eliminarlo por completo, pues lo borras de VRAM y RAM.
Un ejemplo de gestión es cargar sprites en RAM y conforme necesitas ir pasando en VRAM, creando y borrando en VRAM, dejando la RAM intacta a operaciones de borrado y tal, no se si me sigues.
2)Si el sprite es de 16x16, la "colisión" del mismo es de 16x16, aunque sea casi por completo magenta. Si quieres una colisión más precisa, pues tendrás que reducir el tamaño de la colisión.
3) No se, no he tocado apenas tiles, aquí no puedo ayudarte.
Un saludo y feliz año nuevo.
2) ¿Estamos hablando de CMAPS?, es que no entiendo muy bien el concepto de colisión. Igual lo más simple es ajustar el tamaño de los botones a la resolución, dejando como mucho una linea por arriba y por abajo para la magenta.
Gracias.
2) No, nada de CMAPS, hablo de que si tu sprite es de 16x16 y por ejemplo, tienes que pinchar en el, y tu sprite es, digamos, 8x16, dejando otro 8x16 de magenta, podrias hacer algo tipo... si la posicion del stylus respecto a este sprite estan dentro de los margenes de la posición del sprite, se cumpla tal cosa, siendo ese limite, por ejemplo SPRITE_X y SPRITE_X + 16, que sería todo el sprite, pues puedes reducir el tamaño, SPRITE_X y SPRITE_X + 8, así cogerías en colisión solo tu dibujo de 8x16, dejando el resto de 8x16 de magenta sin colisión, no se si me sigues.
Jo, qué nivel, me contesta el autor y todoKnightFox escribió:Por basica que te parezca, verificar si lo que tocas es un pixel magenta o no, consume una cantidad ingente de recursos, por lo que es mejor que cada uno lo adapte a lo que necesite, de hecho, NFlib es una libreria grafica basicamente, con soporte para mapas de colision, todo lo demas, como sonido, entrada, etc, se hace directamente con libnds. Para colisiones, lo mejor es hacerlas con areas rectangulares, es laborioso, por que lo tienes que hacer a mano, pero vamos, los recursos no abundan y yo en 5 años no me se ha roto nada por hacerlo asi.
Para borrar la VRAM de fondos o Sprites, simplemente, vuelve a inicializar el sistema de ambos, que lo primero que hace es limpiar la memoria entera.