Autor Tema: Función Main  (Leído 219 veces)

Arcontus

  • Sr. Member
  • ****
  • Mensajes: 343
  • Karma: 13
    • 5Leaps
Función Main
« en: Febrero 27, 2019, 05:46:48 pm »
Hola chicos,

estaba yo pensando en las similitudes entre Unreal Engine con sus blueprints (no en las diferencias que son demasiadas) y tiene gracia por que en cierto modo se asemejan.

Un objeto pintado en pantalla es en Bennu un proceso, en UE en ultima instancia también, sin entrar en detalles tiene sus coordenadas, su grafico y su programación encapsulada con sus loops.

Si quieres que algo se ejecute o bien lo metes en un objeto (que es lo mas normal) o en el blueprint del nivel, algo similar al main de bennu.

Y aquí viene una gran diferencia de Bennu con Unreal (una de tantisimas claro), en UE no puedes detener el main del nivel... bueno, a no ser que tengas una muy buena razón, por que esto finalizaría todo. Algo así como un exit(); en Bennu. Pero en Bennu si puedes cargarte el Main y dejar otro proceso con un loop que mantenga el programa abierto.

Bien, pues estó que hace bennu para mi es más un engorro que una feature no se si me explico. El hecho de que tengas una función con loop no debería evitar que al cerrarse main se cerrara todo, y esto simplificaría unas cuantas cosas, sobretodo cuando se hacen pruebas.

Desconozco si muchos de vosotros usais main para lanzar vuestros procesos y dejais morir main y seguís con el programa con procesos hijos de main,... pero a mi entender esta feo.

Esto más que una sugerencia es más un debate abierto sobre preferencias de cada uno:

¿Dejas morir main mientras se ejecutan tus proyectos?

Un saludo!

panreyes

  • Administrator
  • *****
  • Mensajes: 2225
  • Karma: 81
    • panreyes.com
Re:Función Main
« Respuesta #1 en: Febrero 27, 2019, 07:17:03 pm »
Sí. No es programación estructurada, sino caos, y el caos lo permite.

main()
-> cargo todos los recursos
-> main_menu()
fin del main

main menu -> juego -> game over -> main menu

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12838
  • Karma: 377
Re:Función Main
« Respuesta #2 en: Febrero 28, 2019, 03:02:17 am »
si quieres que cuando termine el main termine la ejecucion de bennugd, pon un let_me_alone(); antes de salir... y listo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Arcontus

  • Sr. Member
  • ****
  • Mensajes: 343
  • Karma: 13
    • 5Leaps
Re:Función Main
« Respuesta #3 en: Febrero 28, 2019, 08:33:20 am »
si quieres que cuando termine el main termine la ejecucion de bennugd, pon un let_me_alone(); antes de salir... y listo...
Eso es lo que hago yo. Usar main con un loop principal para cada estado, pantalla o menu y un let_me_alone(); como dice Splinter. De esta manera centralizo en un solo proceso aquellas cosas que necesite controlar en tiempo de ejecución delimitado a cada estado. Ejemplo algunos "cheats" o parametros de debug.

Main ->Splash -> Main -> Intro -> Main -> Menu principal -> Main -> Juego -> Main -> Menu principal -> Main -> Salir

panreyes

  • Administrator
  • *****
  • Mensajes: 2225
  • Karma: 81
    • panreyes.com
Re:Función Main
« Respuesta #4 en: Febrero 28, 2019, 09:19:04 am »
Eso es lo que hago yo. Usar main con un loop principal para cada estado, pantalla o menu y un let_me_alone(); como dice Splinter. De esta manera centralizo en un solo proceso aquellas cosas que necesite controlar en tiempo de ejecución delimitado a cada estado. Ejemplo algunos "cheats" o parametros de debug.

Main ->Splash -> Main -> Intro -> Main -> Menu principal -> Main -> Juego -> Main -> Menu principal -> Main -> Salir

Yo eso de los cheats o parámetros de debug, lo hago con un proceso que tengo siempre en marcha que me sirve para diferentes cosas: trucos, debug, capturas, comprobar exit_status, salir con alt+x, etc...

Arcontus

  • Sr. Member
  • ****
  • Mensajes: 343
  • Karma: 13
    • 5Leaps
Re:Función Main
« Respuesta #5 en: Febrero 28, 2019, 12:29:01 pm »
Eso es lo que hago yo. Usar main con un loop principal para cada estado, pantalla o menu y un let_me_alone(); como dice Splinter. De esta manera centralizo en un solo proceso aquellas cosas que necesite controlar en tiempo de ejecución delimitado a cada estado. Ejemplo algunos "cheats" o parametros de debug.

Main ->Splash -> Main -> Intro -> Main -> Menu principal -> Main -> Juego -> Main -> Menu principal -> Main -> Salir

Yo eso de los cheats o parámetros de debug, lo hago con un proceso que tengo siempre en marcha que me sirve para diferentes cosas: trucos, debug, capturas, comprobar exit_status, salir con alt+x, etc...
Yo inicialmente hice lo que tu, pero luego pense... si ya tengo el main para que otro proceso... y por eso uso main :)

panreyes

  • Administrator
  • *****
  • Mensajes: 2225
  • Karma: 81
    • panreyes.com
Re:Función Main
« Respuesta #6 en: Febrero 28, 2019, 01:08:19 pm »
Para poder relanzar el proceso residente en caso de let_me_alone perezoso sin cargar todos los recursos xD

Hay que aprovechar las ventajas del lenguaje, sino paqué :)