Sección LOADING?

Started by Drumpi, February 05, 2017, 04:59:32 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

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

AmakaSt

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.

Drumpi

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

AmakaSt

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

Drumpi

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

Drumpi

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

AmakaSt

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.