Holas [chiu]
Tras tiempo inactivo en este campo vuelvo y con muchas ganas de terminar mi juego.
La duda esta vez es tambien en lo referente a los graficos pero orientada desde otro lado.
A la hora de programar mucha gente no suele tener en cuenta el orden de creacion de los graficos, pensando que es una cosa poco importante porque todo aparecera en pantalla, este creado antes o despues....ERROR!!!
A mi esto me ha traido de cabeza dado que no pense en ello y me pasaba que al mover el personaje, este aparecia por delante de unas cosas pero de repente, aparecia por detras de otras....cosa rara pense.
Como justo aparecia por delante de los sprites (castillo) pero por detras de los pixels (arbol, suelo..), pense que igual seria por eso mismo; algun problema entre sprites y pixels...pero no!!! lo importante esta en el orden de creacion en el source.
Ahora paso a explicarlo tanto graficamente como mediante codigo, para que todos lo podais entender:
SeleccionarCopiar while(1){
VIDEO_WaitVSync();
frames++;
PAD_ReadState(&pad[0], PAD_CHANNEL_0);
GetInput();
ClearScreen(0x2B9F2B76);
Linea(); -> Crea el escenario (suelo, flor y arbol)
Creaprota(); -> Crea el sprite del protagonista.
Creacast(); -> Crea el sprite del castillo.
En este ejemplo se ve que lo primero en crearse es el escenario, seguido del protagonista y por ultima el castillo.
Hay que pensar en la pantalla como un conjunto de capas, que va de adentro hacia afuera y por lo tanto, lo creado 1º ira al fondo, lo 2º ira sobre lo 1º y lo 3º ira sobre lo 2º y lo 1º, etc...
El resultado seria el siguiente:

Y si querria que el protagonista estuviera por delante de todas las cosas seria:
SeleccionarCopiar Linea(); -> Crea el escenario (suelo, flor y arbol)
Creacast(); -> Crea el sprite del castillo.
Creaprota(); -> Crea el sprite del protagonista.
Por tanto queda claro que el orden en que esten las funciones da igual, lo que indica que grafico ira primero es la llamada a dicha funcion en el bucle principal del programa
(while(1){
).
Espero que esto sirva de ayuda a alguien o por lo menos que les sirva para tenerlo en cuenta.
Ciao