Necesito algunas aclaraciones acerca de la rutina put_sprite_x16 (unsigned char *posicion, unsigned int x, unsigned int y).... y unos bonitos Warnings que tengo, aunque el programa funciona bien. Sé que son temas de C, no especÃficos de Z88DK... pero es que me hago la piiiii un lio con los punteros y sus conversiones...
Hago lo siguiente:
-Cargo los gráficos con
extern unsigned char sprite1 [];
#asm
._sprite1 // tile check
defb 255,255,129,129,137,153,153,137
defb 137,153,157,145,129,153,255,255
defb 255,255,129,129,153,145,137,149
defb 153,157,137,133,153,133,255,255
defb 71,71,71,71
#endasm
- Para dibujar el sprite el curso recomienda (se que éste no está acabado... y que esta es la forma "simple" de pintar):
put_sprite_x16(sprite1,x,y);
Ahora bien, esto no es práctico y ya lo comenté en el foro speccy.org (link nos post atrás) si quieres que el listado no se haga enoooorme.
Se me ocurrió que dado que sprite1 entra como puntero cuando es llamado a la función, leer el valor de éste y meterlo en una matriz, luego para pintar un sprite determinado:
unsigned int matriz_direccion_sprite[cantidad_total_sprites];
matriz_direccion_sprite[1]=sprite1;
matriz_direccion_sprite[2]=sprite2;
matriz_direccion_sprite[3]=sprite3;
put_sprite_x16(matriz_direccion_sprites[num_sprite_a_pintar],x,y);
Bien, el programa funciona, pero a la hora de generar la cinta, me genera unos Warning tipo:
 warning: assignment makes integer from pointer without a cast...
... en las lineas matriz_direccion_sprite[1]=sprite1; ...
Si hago un printf("Valor puntero: %i"),sprite1 por pantalla obtengo algo tipo:
28962
E incluso si utilizo esto otro:
unsigned int direccion_ram_sprite=sprite1;
put_sprite_x16(direccion_ram_sprite+(num_sprite_a_pintar*36),x,y); // 8x4 ink +4 attrb
también funciona, pero con Warnings...Â
Además, como me he cepillado todos los switch he reducido el consumo de Kb una barbaridad...
¿paso de los warnings? el juego funciona bien...
¿que hago mal?
¿paso de todo lo hecho y ataco directamente con el codigo de na_th_an?
¿y porque me embolico tanto?
Perdón por el tocho... pero soy de esos primos que disfrutan picando "cosas raras"... a ver si van...