Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Sistema De Menu Sdl

Iniciado por StraT, 03 de Marzo de 2005, 04:58:15 PM

« anterior - próximo »

StraT

 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/juego.rar
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

nsL

 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 no muero hasta la muerte -

StraT

 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
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

Viento Salvaje

 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 :)

StraT

 Asias preciosa, ;)

Saludos
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

fiero

 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
www.videopanoramas.com Videopanoramas 3D player

Sacrifai

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.

nsL

 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)
Yo no muero hasta la muerte -

Loover

 O eso o utilizar una librería que use aceleración hardware... ejem.
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

nsL

 
Citar
O eso o utilizar una librería que use aceleración hardware... ejem.
jejejejej
Yo no muero hasta la muerte -

Sherpa

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... ;)  

StraT

 Si, yo uso todas esas flags menos  SDL_ANYFORMAT que no se para que es, alguien me ilumina?

Saludos
quot;Solo hay dos cosas infinitas, el universo y la estupidez humana, aunque de lo primero no estoy muy seguro\\\" Einstein

Sherpa

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)   <_<  

chr2004aqp

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






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.