Experimentos con el comando "EXEC"

Started by Coptroner, April 28, 2014, 07:58:35 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Coptroner

Buenas,

Como he mencionado en otro post estoy estudiando las posibilidades del comando EXEC usándolo para crear un LAUNCHER de JUEGOS de PC.

El mecanismo es sencillo. A través de una serie de menús que organizan los juegos por categorias con su respectiva carátula seleccionamos el juego a "lanzar" y, desde el mismo programa, se ejecuta la orden EXEC pasándole como parámetros la ruta del ejecutable del juego.

En las pruebas he topado con un pequeño inconveniente...

-Si ejecuto el Launcher en ventana, no hay problema de ejecutar un juego y al salir del juego nos devuelve a la ventana del launcher.

-Si ejecuto el Launcher a pantalla completa y ejecuto un juego, todo va bien hasta que decido salir del juego ya que no regresa al Launcher sino que devuelve el control al escritorio de windows, con el launcher seleccionado y minimizado en la barra de tareas y el puntero del mouse secuestrado en la esquina superior izquierda hasta que, usando "Alt+Tabulador", puedo devolver el control o bien al Launcher o a Windows...

Bien, podría deducirse que la mejor opcion es la de ejecutar el Launcher en modo ventana, pero ésa no es la idea estética del mismo, ya que lo que se pretende es crear un entorno de juego parecido al de una videoconsola, con ausencia de cualquier elemento en pantalla ajeno al Launcher.

He observado con otros programas que tengo que ocurre lo mismo cuando ejecutamos un .dcb en pantalla completa (full_screen=true).
Si tenemos un programa ejecutado a pantalla completa y decidimos cambiar a otra aplicación o al escritorio usando "Alt+Tabulador", el mouse queda confiscado por nuestra aplicacion a full_screen y no nos deja mover el puntero hasta que la cerramos o hacemos que entre en full_screen=false...

Alguna solucion?


Coptroner

#1
Pues mira Coptroner, se me ocurre uan cosilla, a lo mejor te sirve  ;D

Crea un mini programa que tome el control y que pase el launcher a full_screen=false cuando se regresa de un juego e inmediatamente a full_screen=true para restaurar el control del launcher.

No, espera mejor aún y así liberas toda la Ram que ocupa el .dcb del launcher. El miniprograma cierra el launcher y queda como testigo para volver a arrancarlo cuando tenga el control, guardando un pequeño "config" para que al volver a lanzar el launcher vuelva al mismo sitio donde se cerró (ventana, opciones, juego lanzado, etc...)  :D

Espero que te sirva! Animo que te está quedando genial! XD

panreyes

No tengo nada que aportar. Sólo diré LOL por la forma de autorresponderte xD

Coptroner

Quote from: PiXeL on May 06, 2014, 08:52:34 AM
No tengo nada que aportar. Sólo diré LOL por la forma de autorresponderte xD

;D Sentido del Humor no me falta ;D

Es que a veces uno habla consigo mismo para preguntarse una posible solución y a veces... !Eureka! se te enciende la bombilla  ;D

Drumpi

¿Y si haces que el launcher se ejecute a pantalla completa y, justo antes de lanzar el juego, haces que el launcher se ejecute en modo ventana? Así ejecutas el juego, vuelves al launcher en modo ventana y acto seguido vuelves a activar el modo a pantalla completa. Creo que eso es lo que hacen algunos launchers.
Ten en cuenta que se puede cambiar la resolución y el modo de pantalla tantas veces como quieras en Bennu, y prueba de ello es cierto crap-juego de esquivar macetas cuyo tamaño de ventana se modificaba pulsando un botón sin parar.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

lo unico que me queda claro es que estamos ante un caso de "trastorno de identidad disociativo".
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Coptroner

#6
Quote from: Drumpi on May 10, 2014, 07:43:09 PM
¿Y si haces que el launcher se ejecute a pantalla completa y, justo antes de lanzar el juego, haces que el launcher se ejecute en modo ventana? Así ejecutas el juego, vuelves al launcher en modo ventana y acto seguido vuelves a activar el modo a pantalla completa. Creo que eso es lo que hacen algunos launchers.
Ten en cuenta que se puede cambiar la resolución y el modo de pantalla tantas veces como quieras en Bennu, y prueba de ello es cierto crap-juego de esquivar macetas cuyo tamaño de ventana se modificaba pulsando un botón sin parar.

Ahora mismo el Launcher se ejecuta en ventana y con un algoritmo que, en función del tamaño del escritorio, redefine usando size_x y size_y los elementos de pantalla para adaptarlos a la resolución del escritorio del usuario.
Lo que pasa es que de ésta forma los gráficos pierden su calidad por el escalado y el sistema va más lento, de ahí que pensara en ejecutar el launcher a su resolución nativa (1280x720) a pantalla completa para que los graficos tuvieran siempre el size 100%.
De ahí surgió el problema que he comentado de que cuando la aplicación lanzada devuelve el control al sistema, el launcher (que estaba a pantalla completa) queda minimizado en la barra de tareas pero secuestrando el control del mouse del sistema hasta que vuelva a maximizarse y recupere el foco... (cosa imposible mediante código ya que no existe la funcion Maximice() en BenmnuGD)

Así que la única opcion plausible para que el launcher se ejecute siempre a resolucion nativa independientemente del tamaño del escritorio es lanzarlo a plantalla completa y cambiarlo a ventana cuando lanzamos una aplicacion y devolverlo a fullscreen cuando regresa la aplicacaion lanzada...

Quote from: SplinterGU on May 11, 2014, 03:12:36 AM
lo unico que me queda claro es que estamos ante un caso de "trastorno de identidad disociativo".
Si, jajaja, lo raro es que no se haya extendido más entre los sufridos programadores de mi época  ;D ;D

Drumpi

Quote from: Coptroner on May 12, 2014, 11:52:08 AM
Así que la única opcion plausible para que el launcher se ejecute siempre a resolucion nativa independientemente del tamaño del escritorio es lanzarlo a plantalla completa y cambiarlo a ventana cuando lanzamos una aplicacion y devolverlo a fullscreen cuando regresa la aplicacaion lanzada...

Juraría que es lo mismo que he dicho yo. A ver si es verdad lo de la personalidad disociativa ¿tú que opinas, Drumpi?
- Cállate y publica ya de una vez el video.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Coptroner

#8
Quote from: Drumpi on May 13, 2014, 12:19:48 PM
Quote from: Coptroner on May 12, 2014, 11:52:08 AM
Así que la única opcion plausible para que el launcher se ejecute siempre a resolucion nativa independientemente del tamaño del escritorio es lanzarlo a plantalla completa y cambiarlo a ventana cuando lanzamos una aplicacion y devolverlo a fullscreen cuando regresa la aplicacaion lanzada...

Juraría que es lo mismo que he dicho yo. A ver si es verdad lo de la personalidad disociativa ¿tú que opinas, Drumpi?
- Cállate y publica ya de una vez el video.

;D ;D Si, ya se que es lo mismo que habías dicho tu, simplemente lo he añadido para completar mi disertación.

Pues eso Coptroner, que has repetido lo mismo que dijo drumpi de los otros Launchers...

Ya lo sé, déjame que esto hablando yo ahora, Este Coptroner...  ;D ;D

Bueno, diálogos disociativos aparte, anoche lo probé y despues de varios reajustes creo que ya funciona ¿bien?... Bueno, si la programación me ha enseñado algo es que ningún programa funciona siempre bien al 100%, siempre hay alguna putadilla que salta cuando menos te lo esperas, y por supuesto te la descubre otro que prueba el programa sin seguir tus mismo s habitos de uso del mismo  :P

Ahora estoy subiendo al Dropbox un Pack con la Beta que hay ahora mismo, no le pidaís mucho que todavia tiene algun que otro agujero...

En cuanto termine de subir os pongo el Link en el apartado de proyectos del Foro: http://forum.bennugd.org/index.php?topic=3876.msg63518#msg63518