Div Games en Html5 y Canvas

Started by AmakaSt, September 07, 2012, 03:28:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

AmakaSt

Quote from: oskarg on November 25, 2018, 06:57:52 PM
Hola amaka,
te muestro un error que me provoca  divgo
    write_int(0,100,85,4,offset TABLA_R[i+1]);  me expresa que la variable no esta definida...es a raiz de querer sumar +1.No me deja poner parametros
Hola oskarg,

En Div GO el offset identifica la variable por el nombre, si haces TABLA_R no debería haber problemas, pero al añadir la suma 'i+1' no la reconoce como un nombre de variable, para esto creas una variable auxiliar que guarde el valor de TABLA_R[i+1], por ejemplo: https://www.divgo.net/c-7950aee7

Un saludo.

oskarg

Hola amaka....
1.como haces para saber cuando los fpg se han cargado por completo .en el ejemplo de bug wars sale un porcentaje...... otra cuestion.lo digo porque voy cargando y descargando graficos...alguna manera de saber cuando estan cargados o descargados ?¿?

AmakaSt

Quote from: oskarg on November 30, 2018, 07:55:13 PM
Hola amaka....
1.como haces para saber cuando los fpg se han cargado por completo .en el ejemplo de bug wars sale un porcentaje...... otra cuestion.lo digo porque voy cargando y descargando graficos...alguna manera de saber cuando estan cargados o descargados ?¿?
Hola oskarg,

Con el bloque loading, desde ahí puedes configurar el cargador de tu juego. Los juegos hechos con DivGO normalmente se inicializan una vez se han cargado todos los recursos, salvo los que indiques con una @ delante, esos los incluirá en la carga inicial. Con el bloque loading puedes mostrar de modo personalizado lo que queda de carga de recursos antes de iniciar el juego.

Para los recursos cargados con @ también existe una variable de validación de carga que funciona de modo similar a fading: loading_data

Si loading_data es igual a true es que se están cargando recursos, una vez cargados loading_data se pone en false. Así puedes personalizar también un cargador saltándote las restricciones del bloque loading.

Un saludo.

oskarg

Hola amaka,
en otro dia hago un ejemplo ejecutable reducido del bug que me pasa ,pues no hay manera que me funcionen los unload_fpg...
Me explico:
Cargo  los fpg1 fpg2......Muestro titulo,pulso enter hago un fade  y muestro explicacion...descargo el fpg2 de la explicacion con unload_fpg.........se termina la partida,muestro ranking y ahi aprovecho para cargar otra vez el fpg2......hago un fade y muestro titulo(se supone que ha cargado el fpg2) ,pulso enter.....ahora hago un fade y  ahi se me queda bloqueado haciendo fade sin que presente la pantalla de explicacion....Pasa por haber descargado el unload_fpg y volverlo a cargar..para evitar consumir recursos......

oskarg

#559
te adjunto ejemplo del unload_fpg por que no va?¿?si lo cargo de nuevo....

PROGRAM example_move_scroll;

GLOBAL
    file1;
    file0;
   
PRIVATE
    counter;

BEGIN
set_mode(m320x200);
    set_fps(100, 0);
    CARGA_FPG();
    TITULO();
   
END   

PROCESS CARGA_FPG()
BEGIN
  file1=load_fpg("graficos/help");
END

PROCESS TITULO()
BEGIN
text_size=42;
write(0,10,100,0,"PULSA ENTER");

    put_screen(file1,1);
   
    WHILE(!key(_enter))
    frame;
    end
    EXPLICACION();

END

PROCESS EXPLICACION()
BEGIN
  file=file1;
  text_size=42;
write(0,10,120,0,"PULSA A descargo fp1");

put_screen(file1,2)
    WHILE(!key(_a))
    frame;
    end
unload_fpg(file1);
RANKING();

END

PROCESS RANKING()
private
i;
BEGIN

write(0,10,140,0,"PULSA B para regresar titulo");

    WHILE(!key(_B))
    frame;
    end
   
   
    file1=load_fpg("graficos/help");
    from i=0 to i=60;
    frame;
    end
   
   
    TITULO();
   

END






SI NO LO DESCARGO VA POR QUE?¿?¿?¿??¿?

oskarg

otro ejemplo cargo el grafico,lo descargo y lo cargo...en div original funciona.. :(


PROGRAM no_val;

GLOBAL
    file1;
   

BEGIN
file1=load_fpg("graficos/help");
file=file1;
set_mode(m320x200);
    set_fps(100, 0);

put_screen(file1,1);



    repeat
    frame;
    until(key(_enter));
    unload_fpg(file1);
    carga();

END   

PROCESS carga()
BEGIN
     file1=load_fpg("graficos/help");
   file=file1;

  put_screen(file1,2);
  text_size=48;
  write(0,10,100,0,"cargado");
 
loop
  frame;
  end
END


AmakaSt

Quote from: oskarg on December 03, 2018, 11:25:38 PM
otro ejemplo cargo el grafico,lo descargo y lo cargo...en div original funciona.. :(


PROGRAM no_val;

GLOBAL
    file1;
   

BEGIN
file1=load_fpg("graficos/help");
file=file1;
set_mode(m320x200);
    set_fps(100, 0);

put_screen(file1,1);



    repeat
    frame;
    until(key(_enter));
    unload_fpg(file1);
    carga();

END   

PROCESS carga()
BEGIN
     file1=load_fpg("graficos/help");
   file=file1;

  put_screen(file1,2);
  text_size=48;
  write(0,10,100,0,"cargado");
 
loop
  frame;
  end
END


Hola oskarg,

No falla unload_fpg(), aquí tu ejemplo funcionando: https://www.divgo.net/c-cb886ff6

En DivGO las cargas son asíncronas a diferencia de la primera carga general, para controlar esto tienes la variable loading_data. Como comente en el anterior mensaje, para que no cargue todos los recursos al principio, en la carga general, puedes incluir un @ delante, por ejemplo: @load_fpg(); @load_sound(); @load_video(). Si vas a descargar y cargar recursos lo mejor es esto. :)

Aquí el ejemplo usando el @ en funciones de carga: https://www.divgo.net/c-a0f14132

Que la carga sea asíncrona hace que el juego siga en ejecución mientras se van cargando recursos en un segundo plano, poner una introducción y cargar el resto de recursos en un segundo plano, por ejemplo. :)

Un saludo.

oskarg

Mil gracias amaka ....ahora miro los ejemplos y te comento.

oskarg

Otra pregunta..aunque parezca tonta...
Da igual la cantidad de colores que tenga el png??lo expreso porque si es optimo de alguna manera  reducir colores, en vez de por ejemplo 3000 tener 400 en un mapa y que esto mejore la velocidad de procesamiento.

AmakaSt

Otro ejemplo de carga con uso de loading_data y @, donde se aprecia mejor: https://www.divgo.net/c-79c5e9ec

Quote from: oskarg on December 04, 2018, 10:04:12 AM
Otra pregunta..aunque parezca tonta...
Da igual la cantidad de colores que tenga el png??lo expreso porque si es optimo de alguna manera  reducir colores, en vez de por ejemplo 3000 tener 400 en un mapa y que esto mejore la velocidad de procesamiento.

Da igual la cantidad de colores, siempre se van a dibujar a 32bits, aunque la carga sea de 8bits. La diferencia está en el tamaño, es más pequeño un mapa de 8bits que uno de 32 y su carga será más rápida. :)

oskarg

#565
Genial....he hecho unos pocos cambios....
ahora estoy liado si puedo hacerlo con  scroll ,luego le meto suavizado con un filtro y guala acabado .
Aqui no sale,pero he cambiado tambien los edificios,ahora son cuadraditos brillantes xd  y mas cosas.. XD.

oskarg

Hola amaka he estado probando hasta la saciedad lo de unload y load y no me va.... ..te cuento añado ejemplo,si el fichero es png,no  funciona,pero si es del tipo map funciona ...
como creo un fichero del tipo map?¿?



PROGRAM carga_asincrona;

GLOBAL
    file1;
    cargador = "false";
    file2;
   
BEGIN
    set_mode(m320x200);
    set_fps(60, 0);   
   
    write(0,160,100,2, "cargado: ");
  write_int(0,160,100,0, &cargador);
   
while(fading) frame; end

    file1 = @load_fpg("graficos/malvado/nivel1");
   
    while(!loading_data) frame; end
   
    cargador = "true";
put_screen(file1, 100);
write(0,160,140,1, "Pulsa Enter");

    repeat
    frame;
    until(key(_enter));
    unload_fpg(file1);
    delete_text(all_text);
    carga();

END   

PROCESS carga()
BEGIN
     file2=@load_fpg("graficos/paf");
   file=file2;

  text_size=48;
  write(0,100,100,2, "cargado: ");
  write_int(0,100,100,0, &loading_data);
   
loop
if (loading_data) put_screen(file2,2); end//al ser del tipo png no va..
   
  frame;
  end
END



oskarg

#567
No lo entiendo...te explico....
tengo un proceso que carga el grafico y luego lo descarga.son imagenes png...pues bien la primera vez que hago la partida funciona pero cuando reseteo todo e inicio de nuevo ya no va,pero si en vez de poner mis graficos utilizo..los graficos de la carpeta graficos/help  que son de tipo map funciona correctamente ?¿??¿?¿?¿?
añado trozo de codigo
//____________________________________________________________________________________________________________________________________________________________________________-
PROCESS CARGA_FPG2(opcion)
private
i;
BEGIN
text_size=48;
text_color=rgb(255,255,255);

  write_int(0,160,100,0, &loading_data);
    let_me_alone();
    clear_screen();
   
while(fading) frame; end

    File2 =@load_fpg("graficos/supe2"); //aqui se me queda trabado no salgo nunca....SI EN VEZ DE UTILIZAR Esta carpeta pongo graficos/help  ...funciona ?¿?¿? u otra que tenga //map..Por ejemplo graficos/malvado/nivel1         POR  QUE?¿?¿?
   
    while(!loading_data) frame; end
   ID_PROCESO1=TABLA_EXPLICACION();

   FONDO2(File2,2,1);
 
loop
frame;
end




O bien si pongo en vez de graficos/supe2  la carpeta por defecto graficos  JOE XD:

oskarg

Otra cuestion..he visto en el ejemplo que pones el put_screen,dentro de un loop..si lo pongo divgo hace esta operacion solo una vez?

AmakaSt

Quote from: oskarg on December 04, 2018, 12:04:39 PM
Genial....he hecho unos pocos cambios....
ahora estoy liado si puedo hacerlo con  scroll ,luego le meto suavizado con un filtro y guala acabado .
Aqui no sale,pero he cambiado tambien los edificios,ahora son cuadraditos brillantes xd  y mas cosas.. XD.

Muy chula la captura del ejemplo.  8)

Quote from: oskarg on December 05, 2018, 08:26:20 PM
Otra cuestion..he visto en el ejemplo que pones el put_screen,dentro de un loop..si lo pongo divgo hace esta operacion solo una vez?

Ahí se me ha ido la cabeza, se pinta todo el rato una vez ha cargado.

Quote from: oskarg on December 05, 2018, 04:43:31 PM
No lo entiendo...te explico....
tengo un proceso que carga el grafico y luego lo descarga.son imagenes png...pues bien la primera vez que hago la partida funciona pero cuando reseteo todo e inicio de nuevo ya no va,pero si en vez de poner mis graficos utilizo..los graficos de la carpeta graficos/help  que son de tipo map funciona correctamente ?¿??¿?¿?¿?
añado trozo de codigo

Revisándome hoy el funcionamiento de las cargas y haciendo una serie de pruebas he visto que da errores, no sabría decir en qué momento exactamente, me ha dado errores cargando tanto png como map, me lo apunto para corregir para la próxima versión.  :P

Un saludo.