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 April 25, 2022, 02:19:01 PM
Hola amakast
tengo un problema con los graficos..no los lee divgo..
como se crea un fpg nuevo desde cero?¿?
en el prg tengo esto  fichero=load_fpg("graficos/t10");
entonces creo una carpeta y pongo ahi los graficos ..sale el error de:
fichero=load_fpg("graficos/t10"); -- NO VALID FPG.DAT FOUND IN DIRECTORY

si incluyo un fpg.dat de otro sitio y lo edito para cambiar la carpeta correcta tambien falla.
ES un error que me saca de mis casillas ,pues no se como se hace un fpg nuevo en divgo desde hace mucho tiempo.Please help.
Hola oskarg,
Es tal como dices, debería funcionarte sin problemas, por lo menos a mi me esta funcionando así.
Un saludo.

oskarg

#991
Ya tengo acabado el juego ...falta musica,pero la primera beta la omito...Dentro un rato lo publico,voy a dar una vuelta...
Respeto a los graficos ...
En la carpeta t10  hay algo ??esta vacia por defecto?¿?..
si no pongo nada me pone no se encontro fpg.dat valido en el directorio pero divgo al regresar borra el prg y me carga el que tiene por defecto una que se llama myprogramName .. y de este bucle ahora no hay manera de salir.

SI utilizo una version antigua este fallo no sale,vuelve a cargar el prg mio,pero en el fgp editor sale la rueda constantemente..un desastre..help!!

oskarg

Hola Amakast,
Te comento el error porque no puedo hacer el empaquetado y todo se debe a los graficos....
Creo un prg nuevo como el que hago en la captura.....
creo una carpeta llamada k000
lo compilo y sale esto:
no se encontro el fpg valido en el directorio -->normal porque no he creado nada,simplemente dentro de k000 tengo la imagen 000.png
regreso al editor entonces accedo al fpg para añadir graficos y guala me sale esta pantallazo

AmakaSt

Hola oskarg,

Sobre que hora estas en Discord? Quiero saber con exactitud cuál es el problema que te está dando, que no sea problema por un formato de caracteres incompatible en el archivo fpg.dat.  ???

Un saludo.

oskarg

#994
Por la noche,estoy,dime cuando y me conecto..
Te comento estoy intentado hacer el empaquetado pero es imposible XD...he creado un fpg con smart fpg ..asi con esta forma me crea y lee el fpg,el problema viene que cuando le doy a la pestañita de empaquetar lo ignora.


.entonces ....
he probado hacerlo con divgo y xamp...todo va bien ,los ejemplos que trae,pero al intentar compilar mi proyecto aqui sale.. no se puede acceder a este sitio web..bueno.......ni idea ya....la mar de divertido.

Mañana estoy libre..si quieres mañana cuando a ti te vaya bien..

oskarg

Gracias AmakaSt, despues de muchos años ya se hacer un fpg de cero XD en divgo!! lo he probado esta mañana y funciona correctamente...aleluya!!..
el unico problema que tengo ahora es que no puedo empaquetar ningun juego,ni los que trae por defecto,antes si...alguna explicacion?¿?

oskarg

Hola Amakast,
te adjunto el ejemplo ,modifcado un par de cosas,habia un par de niveles imposibles de hacer..tiene en total 56 .Incluye codigo y graficos
Es beta 0.1... con lo cual ,sufrira mejoras,aunque prefiero hacer otro juego diferente ahora....
Te adjuto una  prg  con un bug que no encuentro el motivo..se me olvido preguntarte porque divgo aqui omite las colisiones si pongo este codigo en esta posicion del programa,

linea 638 a 644... simplemente hago un recorrido de los procesos...la cuestion es que omite entonces todo lo que hay abajo de estas lineas,no hace cosilion con las cajas y no entiendo el motivo..

     
                id_proceso = get_id(TYPE CAJA);
             WHILE(id_proceso)
                 
                   
                id_proceso = get_id(TYPE CAJA);
                     
               end 


Un saludo,puedes modificar el codigo para que tenga vidas infinitas....

oskarg

Hola AmakaSt,
adjunto un simple ejemplo para calcular el seno
El problema viene que no funciona como div2 ni tampoco  el valor que pongo en una simple calculadora..No entiendo los valores que da:

PROGRAM fallasenos;

GLOBAL
   grados;
   t[];
   i;
   valor;
BEGIN
                   /// tiene que dar estos valores...
    t[1]=sin(0) ;   //       0
    t[2]=sin(30000);//   0.5
    t[3]=sin(45000);//   0.707
    t[4]=sin(60000);//   0.866
    t[5]=sin(90000);//   1
    t[6]=sin(180000);//  0
    t[7]=sin(270000);// -1
    t[8]=sin(360000);/// 0
   
    for (i=0;i<=8;i++)
    write_int(0,0,40*i,0,offset t[i]);
    end
   
   REPEAT
        FRAME;
    UNTIL (key(_esc));
END




oskarg

#998


PROGRAM fallasenos;

GLOBAL
   grados;
   t[];
   i;
   valor;
   pii;
BEGIN

pii=3.14159;
//90*pi/180

                   /// tiene que dar estos valores...
    t[0]=sin(0) /1000;   //       0
    t[1]=sin(30000) /1000;//    0.5
    t[2]=sin(45000)/1000;//   0.707
    t[3]=sin(60000)/1000;//   0.866
    t[4]=sin(90000)/1000;//   1
    t[5]=sin(180000)/1000;//  0 ....
    t[6]=sin(270000)/1000;// -1
    t[7]=sin(360000)/1000;/// 0
   
    for (i=0;i<8;i++)
    write_int(0,0,40*i,0,offset t[i]);
    end
   
   REPEAT
        FRAME;
    UNTIL (key(_esc));
END



Me autorespondo.asi funciona lo que pasa que cuando es 0  te da 3.3e-10 que es 0 XD

AmakaSt

#999
Hola oskarg,

Antes de nada, muy guapo el Sokoban, lo incluiré junto a los juegos de ejemplo en Div GO. :)

Sobre el bug de la función sin() es por la longitud de decimales y su precisión en Javascript, puedes usar la función fix() para ver el resultado con menos decimales.


PROGRAM fallasenos;

GLOBAL
   grados;
   t[];
   i;
   valor;
BEGIN
    /// tiene que dar estos valores...
    t[0]=fix(sin(0), 5);   //   0
    t[1]=fix(sin(30000), 5);//   0.5
    t[2]=fix(sin(45000), 5);//   0.707
    t[3]=fix(sin(60000), 5);//   0.866
    t[4]=fix(sin(90000), 5);//   1
    t[5]=fix(sin(180000), 5);//  0
    t[6]=fix(sin(270000), 5);// -1
    t[7]=fix(sin(360000), 5);/// 0
   
    for (i=0;i<=7;i++)
    write_int(0,0,40*i,0,offset t[i]);
    end
   
   REPEAT
        FRAME;
    UNTIL (key(_esc));
END


Así el resultado es más parecido al de Div2 (DivDx).

Un saludo.

AmakaSt

Quote from: oskarg on April 28, 2022, 02:53:37 PM
Te adjuto una  prg  con un bug que no encuentro el motivo..se me olvido preguntarte porque divgo aqui omite las colisiones si pongo este codigo en esta posicion del programa,

linea 638 a 644... simplemente hago un recorrido de los procesos...la cuestion es que omite entonces todo lo que hay abajo de estas lineas,no hace cosilion con las cajas y no entiendo el motivo..

     
                id_proceso = get_id(TYPE CAJA);
             WHILE(id_proceso)
                 
                   
                id_proceso = get_id(TYPE CAJA);
                     
               end 

Hola oskarg,

Esto no es un error de DivGO, en Div2 debería funcionar igual, después del WHILE habría que poner un frame para restaurar el get_id(), por eso el resto de get_id() ya no te están funcionando. Aquí te dejo la descripción del get_id() del manual de Div2 que lo explica:

Quote
Comprueba si hay procesos del tipo especificado activos. En caso afirmativo, esta función devolverá el código identificador de uno de ellos y, en el caso contrario, devolverá un 0.

Si existen varios procesos del tipo que se ha especificado, la función get_id() devolverá el resto de los identificadores en las sucesivas llamadas que se realicen a la misma.
Una vez se hayan devuelto todos los códigos identificadores, la función devolverá 0, hasta que se vuelva a ejecutar una sentencia FRAME, momento a partir del cual esta función devolverá, de nuevo, todos los códigos identificadores de los procesos del tipo indicado.

Para obtener de esta forma todos los códigos identificadores de los procesos no se debe utilizar la sentencia FRAME entre dos llamadas consecutivas a la sentencia get_id(). En el caso de ejecutar una sentencia FRAME, esta función volverá a retornar todos los códigos identificadores de procesos desde el primero.
Algo similar sucede si se ejecuta una llamada a la función especificando un tipo de proceso diferente; si tras esto se vuelven a pedir identificadores del tipo de proceso anterior, esta función también los volverá a retornar todos desde el primero.
Un saludo.

AmakaSt

Buenas,

Ya hay disponible online para testear la versión 1.46.0 de Div GO y las novedades:


funciones:
   - break_back_scroll();

bugs y mejoras:
   - [ADD] función para crear múltiples planos de scroll en el plano de fondo
   - [ADD] opción en editor gráfico para exportar a formatos map y png
   - [ADD] incluido el juego Sokoban de OskarG en la lista de ejemplos
   - [FIX] corregido funcionamiento interno para que map_get_pixel() no ralentice
   - [FIX] problema con la lectura de fpg.dat si había algún espacio de mas
   - [CHANGE] estructura de ejemplos para mostrar más y organizado por temas
   - [CHANGE] nueva versión de electron, ahora compatible con los editores de gráficos y de tiles





Ejemplo de la función break_back_scroll(): https://www.divgo.net/c-e4457cc9

Un saludo.  :)

oskarg

Buenos dias Amakast,
1. El ejemplo de multiples planos de scroll con el motor de tiles esta genial...aqui te has pasado con creces..Lo tengo que estudiar y hacer un juego con este metodo.Voy hacer seguro un docena de juegos XD con este sistema
2. Se agradece la mejora de map_get_pixel,suelo utilizar mucho este tipo de funciones.
3. Has solucionado el bug del visualizador fpg,cuando hacias un zoom a una imagen grande y no la representaba correctamente.genial.

Espero seguir haciendo mas juegos y que la gente se anime a probar este gran programa porque es realmente bueno y lo mejor de todo ,el mas sencillo que hay por la red,teniendo control en todo momento de todo.

AmakaSt

Quote from: oskarg on May 23, 2022, 02:42:56 PM
Buenos dias Amakast,
1. El ejemplo de multiples planos de scroll con el motor de tiles esta genial...aqui te has pasado con creces..Lo tengo que estudiar y hacer un juego con este metodo.Voy hacer seguro un docena de juegos XD con este sistema
2. Se agradece la mejora de map_get_pixel,suelo utilizar mucho este tipo de funciones.
3. Has solucionado el bug del visualizador fpg,cuando hacias un zoom a una imagen grande y no la representaba correctamente.genial.

Espero seguir haciendo mas juegos y que la gente se anime a probar este gran programa porque es realmente bueno y lo mejor de todo ,el mas sencillo que hay por la red,teniendo control en todo momento de todo.
Hola oskarg,

Se pueden crear efectos realmente chulos con esto, vi claro lo que faltaba en los scrolls de Div al probar el SGDK. :)
Lo del bug del zoom era por electron, era antiguo y no era compatible con unas variables soportadas en navegadores más actuales.

Y para terminar, ya se puede descargar la versión 1.46.0: https://www.amakasoft.com/herramientas/div-go.html

Un saludo.

oskarg

Hola AmakaSt
adjunto dos ejemplos que hacen lo mismo, uno da  2 frames y el otro 25 frames.la diferencia es muy grande.En la version 1.65 el de 2 frames me da entre 4 y 6.Me imagino el motivo y por eso se deberia de incluir una variable de como quiere uno que se comporte map_put..La forma con graphics_builder es mucho mas eficaz..internamente habria que mirar que esta pasando,pues son muchos frames.