Bennu Game Development

Foros en Español => Otros DIV-likes => Div GO => Topic started by: Drumpi on February 05, 2017, 04:59:32 PM

Title: Sección LOADING?
Post by: Drumpi on February 05, 2017, 04:59:32 PM
Ya he mirado varios ejemplos, por no decir todos los que trae DivGo y me ha llamado poderosamente la atención una nueva sección llamada LOADING.
Por lo poco que he podido leer, hay algunas funciones que se pueden poner en esta sección, y hay variables tipo "percent_x", "progress_size", etc que corresponden a esta sección.
Sin embargo no he podido encontrar más información que la que hay puesta en el changelog, porque en el código apenas se inicializa el set_mode y se pone una imágen de fondo, ya está.

¿Qué es esa sección? ¿Cómo se usa?

PD: otra pregunta aparte ¿Cómo puedo averiguar cuántos ficheros hay en una carpeta? Quiero cargar a mano los gráficos que hay en una de ellas, pero no de golpe, y necesito saber cuándo he cargado el último.

Gracias.
Title: Re:Sección LOADING?
Post by: AmakaSt on February 06, 2017, 01:08:14 PM
Hola Drumpi,

La sección LOADING tiene una colección de variables para poder personalizar la carga inicial del juego, siempre existe esta carga, dentro no debe de haber bucles ni condiciones, es automático, una vez acaba de cargar todos los recursos de tu juego se sale de esta sección.

Variables:
graph, x, y, size, angle, //para mostrar un gráfico para la carga, el file siempre es 0
speed //esta variable es para cambiar la velocidad de rotación del graph de carga
text, text_position, text_x, text_y, text_size, text_color, //para poner un texto, cambiar su color, tamaño y posición
percent, percent_x, percent_y, percent_size, percent_color, //para activar un texto con el valor del porcentaje de carga, cambiar su color, tamaño y posición
progress, progress_x, progress_y, progress_size, progress_color //para activar una barra de progreso, cambiar de color, tamaño y posición

Funciones compatibles dentro del bloque:
set_mode();
set_title();
set_color();
set_icon();
screen_color();
screen_scanline();
screen_smooth();

En principio las funciones compatibles son esas, ahora no recuerdo exactamente si hay alguna más.

Si no usas la sección LOADING no pasa nada, pero si tu juego es muy pesado, se quedará la pantalla en negro al principio mucho rato y para evitar esa sensación de que la página o el juego no carga o no funciona existe este bloque, para poder personalizar este proceso de carga. :)

Un saludo.
Title: Re:Sección LOADING?
Post by: Drumpi on February 06, 2017, 05:32:44 PM
Muchas gracias :)
¿Y qué es lo que se carga inicialmente? ¿Sólo el entorno o ya te hace la descarga en local de todos los recursos? (espero que no, porque quiero intentar optimizar las descargas :P).
Title: Re:Sección LOADING?
Post by: AmakaSt on February 06, 2017, 10:03:55 PM
Se carga todos los recursos: gráficos, sonidos, fuentes, videos, objetos 3d, etc... Con una sola carga inicial un juego tanto para web como para móvil debería ser suficiente, aunque hace bastante tiempo que estoy pensando en cambiar esto y hacer que el bloque LOADING se pueda incluir en procesos para poder fragmentar las cargas en caso de juegos muy pesados. Esto sería para más adelante, requeriría cambiar mucho de lo que hay actualmente. :)
Title: Re:Sección LOADING?
Post by: Drumpi on February 07, 2017, 12:39:07 AM
Ajá. ¿Pero exactamente qué se descarga? ¿el HTML y el contenido de las carpetas que están juntas, o sólo los recursos referenciados en el código?

Lo pregunto porque si yo hago algo tipo:
for (cont=0; cont < _CTE_MAX; cont++)
    load_fpg("grafs/level"+cont+".fpg");
end

¿Cómo sabe DivGo qué se debe descargar?

Aparte, luego yo podría usar funciones GET o POST para descargar ficheros de otras ubicaciones o de la base de datos ¿no?
Title: Re:Sección LOADING?
Post by: Drumpi on February 11, 2017, 02:26:02 PM
Me interesaría una respuesta a esto, porque quiero evitar que el programa descargue de golpe todos los gráficos, porque puede ser que sean demasiados, o que el usuario no vaya a hacer uso de todos ellos, y quiero reducir el tráfico al mínimo.
Si no ¿se podrían meter los gráficos en una base de datos e irlos solicitando mediante POST? No he trabajado lo suficiente con BD para saber si se puede hacer o cómo (si hay que incrustarlos como VARCHAR, si hay que meter sólo una URL de referencia...).
Title: Re:Sección LOADING?
Post by: AmakaSt on February 12, 2017, 07:55:53 PM
Sí se puede guarda los gráficos en una BBDD y para esto lo mejor es que sea tipo TEXT en vez de VARCHAR. Una imagen puede generar más de 255 caracteres de información, dependiendo del tamaño, con TEXT no tienes esta limitación.
Todos los gráficos cargados mediante load_fpg() se descargan en el inicio, excepto si haces un unload_fpg() y vuelves a hacer load_fpg() de ese mismo fichero, que entonces lo tiene que volver a cargar de nuevo.

Quote from: Drumpi on February 07, 2017, 12:39:07 AM
Lo pregunto porque si yo hago algo tipo:
for (cont=0; cont < _CTE_MAX; cont++)
    load_fpg("grafs/level"+cont+".fpg");
end

¿Cómo sabe DivGo qué se debe descargar?
Esto no lo he probado pero mejor es que quede clara la ruta dentro de los load_fpg(), igual que para el audios, videos, fuentes... porque sino tampoco te empaquetara los recursos en el proyecto correctamente. Es el compilador el que analiza las rutas de las funciones de carga y lo prepara para el proyecto.

Un saludo.