[DS] Ayuda con Backgrounds y Sprites

Más de 1000 ofertas en los PcDays de PcComponentes
Saludos a todos, estoy en un mar de dudas. He estado leyendo los tutoriales que aparecen en el hilo de programación. Sobre todo estaba mirando el de aaronrogers de las PA_Libs. Bueno el caso es que llego al de Background, y usando la herramienta que lleva (gfx2gba) logro cargar mi propio background. Pero aqui vienen mis primeros dilemas, parece ser que en la DS, los fondos tienen que ser multiplos de 8. ¿No se puede cargar un fondo del tamaño de la pantalla 256x192?, Si el fondo tiene que ser de 256x256 no me supone problema, pero con las imágenes(sprites) que quiero colocar me parece que si voy a tener problemas ya que son de 22x22 pixeles. Esta herramienta que incluye gfx2gba ¿es buena para convertir los recursos gráficos? ¿recomendaís alguna otra herramienta, o forma de trabajo con las imágenes?. Por otro lado he leido que el valor por defecto de color transparente es el negro (0,0,0), pero para mis sprites no puedo usar ese color tendría que ser blanco, he leido que para eso tendría que modificar el archivo que contiene la paleta de colores y hacer lo siguiente: modificar el primer valor del array de la paleta por el valor del color que quiero que sea transparente ¿es correcto?. Bueno lo que en realidad necesito es un buen tutorial para trabajar con gráficos, podeís indicarme de alguno. Muchas gracias por vuestra atención.
[tomaaa]

A mi me costó pero al final lo conseguí.

Te comento:

-Puedes cargar las imagenes de Background de 256x192, (de hecho solo se ve esto en la pantalla, ya que es la resolución de esta) O puedes cargar una imagen mucho más grande que ha de ser multiple de 8 ya que cada zelda o Tile ocupa 8x8 pixels, mira el ejemplo "LargeMaps"
LargeMaps

-Los sprites pueden ser de este tamaño:
32x32, 32x64,64x32, 64x64 y no se si se puede 128x128 no me acuerdo
así que lo mejor es que crees tu sprite de tamaño 22x22 a 32x32

- En cuanto al color transparente, el color transparente será el primer color que sale en la paleta cuando transformas una imagen RGB a una imagen indexada. (aunque normalmente los programas de dibujo suelen asignar el negro 0,0,0), pero tu lo puedes cambiar con el GIMP si editas la paleta de la imagen y la cambias a mano.

Por cierto: Cuando cargas una imagen con "tiled" lo que haces es dar una secuencia de números donde cada número es el color de la paleta.
Por eso cuando haces gfx2gba te salen 3 ficheros.
pal.c -> la paleta
raw.c -> la definicion de los colores
map.c -> el mapa con la imagen que quieres mostrar

Así por ejemplo si tienes que la paleta es
pal.c = array(negro,blanco,gris,rojo)

y el mapa es:
array(0,3,2,2,1,3,0)

la imagen se mostrará así
(transparente,rojo,gris,gris,blanco,rojo,transparente) (porque el negro es el color transparente por estar en la primera posicion de pal.c)

Así si quieres que no sea el negro el transparente tendras que cambiar el primer elemento de la paleta.

Si quieres puedes ver ejemplos en la página de PA_lib

Pa_lib Forum
tutorial Graficos

O bajarte el source de dsGo de mi página y echarle un vistazo.

Espero haberte sido de ayuda.
Y yo que hasta ayer no descubrí lo de los LargeMaps y ahora leo esto XD

Para los sprites pues yo no me los diseño y cogí unos que eran de 64x64 (del RTP del rpg maker xp para mas señas), que es el máximo y se ven bastante hermosos.
En cuanto a lo del color negro lo que se recomienda (y más sencillo que cambiar el valor del primer color de la paleta) es en vez de usar el negro usar un color muy oscuro pero que no sea exactamente el negro.

Y bueno, tutoriales yo me miré también los de aaronrogers y luego me recomendaron también los foros de la página de Mollusk, entre una cosa y la otra se pueden ir sacando bastantes cosas. Eso si, si haces las pruebas en algun emulador como el iDeaS vigila que hay cosas que en el emu no se ven bien pero en la consola si, me pasó al añadir varios sprites que pensaba que 'petaba' por algo y resulta que iban bien, y perdí bastante tiempo :P
yo te recomiendo que ten pilles una tarjeta de red wifi y ejecutes todo via wireless (tienes que instalar flashme)

Y luego añades una linea como esta en el Makefile

wifi: $(OUTPUT).nds
wmb -data $(OUTPUT).nds


Así cuando hagas "make wifi" te enviará el código via wireless, además puedes poner tu propio icono y que cuando arranque en vez de poner "Nintendo" ponga el logo que tu quieras. Puedes mirar dsGo para ver como queda.

Tambien te recomiendo que configures el "programmers notepad" para que cada vez que hagas alt+3 te ejecute "make wifi". alt+1 = compilar alt+2 =clean , alt+3 enviar por wifi.

:cool:

Nos veremos por el foro de PA_lib XD
Gracias a ambos, ahora mismo me pongo manos a la obra. A ver si por fin saco algo en claro.
Aunque hay un hilo oficial aprovecharé este para hace una pregunta: alguien sabe de algun map editor para ds? es que me he bajado algunos de gba y en el mejor de los casos me crean un archivo .c pero solo uno, en vez de obtener un raw.c y un pal.c
He intentado usar ese archivo .c pero no hay manera.
Bueno, si alguien usa alguno de estos programas aunque sea de gba pero le sirve para ds agradeceré una breve explicación ;)

Lo digo porque he visto que en estos editores se puede coger un tile y darle la propiedad de sólido, que es lo que yo ando buscando...
yo voy a ver el TileMax (echo en java) que tal funciona. Al parecer me parece que puede ser muy bueno.
Yo voy a buscar un hilo pa saber más de sto, no tngo todavia mucha idea ni de lo k stais ablando
8 respuestas