
Iniciado por
efegea
Pero bueno empiezo a pensar en como se desarrollaría el programa pero aqui es donde no tengo ni **** idea. No se como tratar por ejemplo cada pantalla ¿cuando cambio de pantalla borro todo y hago que se cambie al modo(pantalla nueva)?¿O simplemente superpongo la nueva? ¿Como trato a los textos que representan los nombres de fichero, como se cual esta seleccionado, etc,etc. Estos son solo ejemplo de las paranoyas que me entran y no encuentro solucion

Y lo del bucle principal no lo acabo de pillar

(que cortito soy)
Respecto a lo de cada pantalla y el cambio, desde SDL puedes cargar todas las imágenes de una tacada al principio, y luego en función de en qué menú estás, mostrar una u otra (función "SDL_BlitSurface", para más señas).
Como dices que al menos conoces la teoría de C, sabrás que existe la instrucción "switch" que te permite ejecutar un código u otro en función del valor de una variable. Pues bien, la idea, a grandes rasgos, sería tener una variable ("int estado", o mejor "Uint8 estado", por ejemplo) que te indique en qué menú te encuentras. En función de cuál sea el menú, deberías decidir qué muestras en pantalla y como se traducen los eventos de teclado (por decir algo, cursor a la derecha ilumina el icono inmediatamente a la derecha del actual).
Y en el programa principal tendrás el bucle principal, que lo que hace básicamente es:
- esperar eventos (de teclado en tu caso)
- y actuar en consecuencia, que traducido quiere decir:
actualizar los datos del programa
pintar en función de esos datos
Y eso lo hace continuamente hasta que ocurre un evento que hace finalizar el programa (pulsar ESC, por ejemplo).
Te pongo como ejemplo el código de un juego que ya he acabado (listo para Windows y para Linux) y que estoy esperando a poder compilar para GP2X:
Este es el bucle principal:
Código:
salir = 0;
while (!salir)
{
GestionaInput(); <-- detección de eventos de teclado (y de ratón, joystick, etc., si hace falta)
Actualiza();
Pinta();
}
Desde GestionaInput() se detectan eventos, como ya he dicho, y si se cierra la ventana (un evento) o se pulsa ESC (otro evento), salir pasa a valer 1, con lo cual sale del bucle y del programa.
No sé si te voy a liar aún más...
En cualquier caso, mejor empieza por un tutorial sencillito y intenta hacer un juego simple (el Pong, por ejemplo) y verás cómo se pinta, cómo se actualiza, y cómo se gestionan los eventos. Suerte.
Marcadores