He pensado que quizás a alguien le pueda servir este experimento que he hecho en SDL. Se trata de una simple pantalla de menú que utiliza el ratón. Funciona todo menos, obviamente, la opción de jugar. Aquí va una screen y debajo el proyecto con codigo y ejecutable. Saludos
(http://www.mundosgm.com/screen.JPG)
http://www.mundosgm.com/juego.rar
En el pc de la uni me va algo lento, pero porq es una patata. El menu esta chulo, aunq añadiria algun efecto, como una luz en el contorno de los botones cuando pongas el cursor encima. Y cambiaria el tipo de letra del titulo de arriba :P
Por lo demas ta chulo :P
¿q es un juego q tas desarrollando?
Saludos! B)
Yo siempre estoy desarrollando un juego, xD, nah, es una simple prueba, esto quedará en nada como el resto de cosas pero vaya, me aburría.
Saludos
No está mal el código wapo =)
eso si, intenta hacer lo del efecto del ratón, incluso podrias poner que al pulsar un botón, se abriera el siguiente menú pero de una forma más Animada, habian juegos que tenian una rueda que la giraban y hacian aparecer el menu opciones.
Todo por aprender ^^
por cierto soy la hermana de Buffon pa quien no me conozca :)
Asias preciosa, ;)
Saludos
Te voy a hacer una crítica constructiva :).
Ultimamente todo el mundo programa las cosas en 2D como si se tratara de un Quake, o sea, dibujando constantemente toda la pantalla un montón de veces por segundo. Esto hace que las cosas estáticas como un menú que deberian ir como un tiro van lentiiiiisisimas. Recuerdo haber programado menús cutres a 640x480 con un 386 a 40 MHz, que iban 20 veces más rápido que tu menú en mi PIII 800 MHz.
Por favor, no te molestes ni te lo tomes a mal. Es simplemente una forma de programación generalizada que se a extendido devido a los miles de megaherzios que tenemos hoy en dia.
Si estás trasteando con estas cosas. Intenta hacer el mismo menú pero actualizando solamente las zonas que cambien. Por ejemplo, las cosas que se hacian "antiguamente":
- no tener un bucle de refresco contínuo, sino solamente cuando se mueve el ratón.
- cuando se mueve el ratón, dibujar el trozo de fondo en la anterior posición de éste y el ratón en la nueva
- dibujar los botones solo cuando cambien de estado, es decir, que salda o entre el ratón o se pulse.
¿Las funciones de SDL permiten poner solo trocitos de imagenes? Si es así, y haciendo lo anterior, se podria hacer que el menú le fuera 1000 veces más rápido a nsL en el ordenata de la uni :).
un saludo
Cita de: "fiero"¿Las funciones de SDL permiten poner solo trocitos de imagenes? Si es así, y haciendo lo anterior, se podria hacer que el menú le fuera 1000 veces más rápido a nsL en el ordenata de la uni :).
Si. podrías usar los dirty rectangles para actualizar lo que es donde está el texto.
SDL te aporta tb una funcion para actualizar el trozo de ventana qe quieras:
void SDL_UpdateRect(SDL_Surface *screen, Sint32 x, Sint32 y, Sint32 w, Sint32 h);
Es el metodo que te dan por si no soportas doble buffer. Aunq para esto serviria tb supongo.
Asi que ya sabeis todos! optimizar , q me aburro en la uni ;)
Saludos! B)
O eso o utilizar una librería que use aceleración hardware... ejem.
Citar
O eso o utilizar una librería que use aceleración hardware... ejem.
jejejejej
Cita de: "Loover"O eso o utilizar una librería que use aceleración hardware... ejem.
screen = SDL_SetVideoMode(screenWidth,
screenHeight,
0,
SDL_ANYFORMAT |
SDL_FULLSCREEN |
SDL_HWSURFACE |
SDL_DOUBLEBUF);
Ya tienes aceleración por hardware con SDL... ;)
Si, yo uso todas esas flags menos SDL_ANYFORMAT que no se para que es, alguien me ilumina?
Saludos
Cita de: "StraT"Si, yo uso todas esas flags menos SDL_ANYFORMAT que no se para que es, alguien me ilumina?
Saludos
Si activamos el flag SDL_ANYFORMAT, en caso de que no se pueda inicializar el modo gráfico que hemos especificado (resolución y profundidad de color), inicializa el mejor modo posible (claro, que el mejor modo para SDL puede no ser el mejor para nuestro juego) <_<
Y no tienes un ejemplo de como se podria hacer con un textbox para q ingresen el nombre y la contraseña
Sino mas o menos una idea de la logica para hacer funcionar esto