Anuncios Google

[Tutorial NDS] Efectos FadeIn y FadeOut, y replaceChar

Buenas, pues voy a ir poniendo algunas funciones que utilizo en el juego Anime Quiz DS, que pueden servir como tutoriales. Aquí dejo unas para hacer un efecto fadeIn o fadeOut, y para hacer una pausa de X segundos en la ejecución.

Primero los efectos:

/* Declaración de funciones */
void fadeIn(u8 screen, u8 segundos); //Max 255 segundos
void fadeOut(u8 screen, u8 segundos); //Max 255 segundos

/* Función para hacer un fadein, pone la pantalla en negro y poco a poco pasa a brillo normal.
** Le paso el número de la pantalla y en cuántos segundos quiero que haga el fade
*/
void fadeIn(u8 screen, u8 segundos) {

u8 cc = 0;
s8 brillo = -32;
u8 paso = (segundos*60)/30;
for (cc=0; cc<(segundos*60); cc++) {

if ((cc % paso)==0) {

brillo++; //Aumento el brillo
PA_SetBrightness(screen,brillo);

}
PA_WaitForVBL();

}
PA_SetBrightness(screen,0); //restauro el brillo normal
PA_WaitForVBL();

}

/* Función opuesta a la anterior, pasa de la pantalla normal a una pantalla en negro poco a poco */
void fadeOut(u8 screen, u8 segundos) {

u8 cc = 0;
s8 brillo = 0;
u8 paso = (segundos*60)/30;
for (cc=0; cc<(segundos*60); cc++) {

if ((cc % paso)==0) {

brillo--; //Disminuyo el brillo
PA_SetBrightness(screen,brillo);

}
PA_WaitForVBL();

}
PA_SetBrightness(screen,-32); //restauro el brillo normal
PA_WaitForVBL();

}

Y ahora la función de esperar:
/* Declaración de la función */
void esperar(u8 segundos); //Max 255 segundos

/* Función que hace una pausa en el juego */
void esperar(u8 segundos) {

u16 cuenta = 1;
while (cuenta<(segundos*60)) { cuenta++; PA_WaitForVBL();}

}

Ahora una función para reemplazar un caracter por otro en una cadena.

/* Función para reemplazar todas las apariciones del caracter 'origen' por 'sustituto' en la cadena src */
char* replaceChar(char const* src, char origen, char sustituto) {

char c;
char *output = (char *) malloc(1000);
do {

c = *src++;
if (c!=origen) *output++ = c;
else *output++ = sustituto;

} while(c);
return output;

}


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Unicorn

Saludos Ligre

el tema de la programacion en NDS es algo que queremos mover para ya. En PSP tenemos multitud de contenidos, pero en NDS nos queda mucho por explicar.

El problema es que no podemos empezar la casa por el tejado...si pasamos estas funciones a portada, estoy seguro de que seran utiles para algun programador, pero no serviran para que los no iniciados se animen a crear su propio Homebrew.

Nuestro proyecto es ambicioso en ese sentido, pero pensamos que si hemos logrado que, con los tutoriales que tenemos para PSP muchos se lancen a programar, lo mismo se puede conseguir en NDS.

Si te animas a formar parte del tedioso proceso de introducir en la programacion NDS a los nuevos usuarios (partiendo de la base de que ya conocen minimamente C, C++...), comentamelo. Podriamos coordinar un pequeño equipo, junto con AntonioND por ejemplo, que creo recordar se mostro ilusionado con la idea.

Como te indico, si quieres saber a que me refiero, echale un vistazo rapido a los contenidos de la seccion tutoriales avanzados PSP.

Un saludo coder.


Para recibir ayuda más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda revisar el Manual del perfecto forero y las Normas de la Comunidad.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.