ventana centra (splash)

Tratamos sobre el manejo de APIs frecuentemente utilizadas en el desarrollo de videojuegos, como SDL, pygame o SFML.

ventana centra (splash)

Notapor lacabra25 » Dom Ene 25, 2009 10:57 pm

Hola, en un programa estoi intentando hacer que al iniciarse un programa aparezca una imagen sin borde (sin ventana) centrada en la ventana pero sobre el escritorio, como una ventana sin borde centrada; el problema es que, por propia experiencia, se que al crear una ventana con SDL esta se crea en un punto cualquiera del escritorio (no se si aleatorio o no) y no se como mover esa ventana para que aparezca centrada en el escritorio, se como crear la ventana si el borde en SDL, pero ademas de eso necesitaria centrarla. A ser posible seria interesante que la solucion fuese portable entre sistemas.

El lenguaje con el que estoi programando es C, y estoi en un sistema GNU/Linux (pero repito que prefiero usar codigo portable que codigo que solo funcione en un sistema, si no fuese posible necesitaria saber como hacerlo en linux y en windows y ya arreglaria la portabilidad con una compilacion condicional).

Gracias de antemano.
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor hugoruscitti » Lun Ene 26, 2009 3:31 pm

Saludos, SDL no provee una capa para hacer esto
de manera compatible en varios sistemas. Por eso
creo que tendrías que realizar algo como lo que
comentas: una compilación condicional para cada
plataforma.

En el caso de GNU/Linux, para centrar la pantalla
tienes que definir la variable de entorno
SDL_VIDEO_CENTERED. Por ejemplo, si ejecutas
desde una consola:

Código: Seleccionar todo
export SDL_VIDEO_CENTERED=1


al crear una ventana con SDL, o incluso pygame, la
ventana siempre aparecerá en el centro de pantalla.

Saludos.
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor lacabra25 » Lun Ene 26, 2009 3:59 pm

el codigo que has puesto, por lo que he entendido es para introducirlo en una terminal, se crea la variable de entorno y ya todas las ventanas creadas con SDL aparecerian centradas ¿no?.

Pero el problema es que solo ncesito centrar una ventana, la primera sin borde, despues de un tiempo cerrar dicha ventana y abrir ya la definitiva del programa. La idea es hacerlo desde dentro del programa, sin que para despues usar el programa en otro ordenador tenga que definir otra vez variables de entorno.

Si SDL no presenta una capa para esta accion de mover una capa, ¿como se podria realizar en diferentes sistemas, y asi hago un .h y un .c con el codigo con copilacion condicional en funcion del sistema y arreglado?

Una vez deje de necesitar la ventana sin borde centrada, ¿se puede eliminar (cerrar) dicha ventana para abrir ya la definitiva en la que se trabajara?.
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)


Volver a Sobre las bibliotecas multimedia

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron