Autor Tema: Div Games en Html5 y Canvas  (Leído 204784 veces)

AmakaSt

  • Hero Member
  • *****
  • Mensajes: 524
  • Karma: 17
    • Amaka Soft
Re:Div Games en Html5 y Canvas
« Respuesta #840 en: Septiembre 05, 2020, 10:59:04 pm »
felicitaciones por los mellizos!

Gracias SplinterGU! :)

Hola AmakaSt
Me alegra saber que estás bien,hacía tiempo que no publicabas algo y tampoco queria preguntar al respecto por si era un tema algo incomodo y como no veia respuesta tampoco yo me motivaba para trastear con divgo .

Sobre los mellizos,los crios dan mucho trabajo,pero tambien dan  muchas alegrias y sabiendo que has tenido dos de golpe...ya sabes.si te animas... el siguiente reto es tener trillizos.

Gracias por la explicacion de las tablas ,no sabia como hacer algo tan simple.
Un saludo.
Si ahora dejara embarazada a mi mujer me cortaba las bolas... imagínate si encima fueran trillizos!!  :o :o :o :o

Bien... Y ahora lo refrescante para acabar el verano, después de mucho tiempo... una nueva versión de Div GO!  8)

Y las novedades de esta versión 1.32.0:

funciones:
   - polytone(), pause_song(), continue_song();
 bugs y mejoras:
   - [ADD] incluida la Web Audio Api y cambiado todo el sistema de audio de div go
   - [ADD] añadida la nueva Web Api de fuentes FontFace, mejorando las cargas de las mismas
   - [ADD] el botón de compilar código ahora se bloquea en espera de respuesta del compilador
   - [FIX] correcciones y mejora en el funcionamiento de las tablas de dos dimensiones
   - [FIX] solucionado el funcionamiento de las funciones out_region() y out_region_dist()
   - [FIX] corregido varios problemas leves del ide
   - [CHANGE] versión windows pasa a Electron, más actual y con soporte a nuevas apis



Aquí dejo un ejemplo de la nueva función polytone(): https://www.divgo.net/c-08908a0c

Un saludo.

AmakaSt

  • Hero Member
  • *****
  • Mensajes: 524
  • Karma: 17
    • Amaka Soft
Re:Div Games en Html5 y Canvas
« Respuesta #841 en: Septiembre 07, 2020, 04:39:31 pm »
Hola a todos,

Ya está disponible para descargar la versión 1.32.0: https://www.amakasoft.com/herramientas/div-go.html

La versión Windows ha cambiado, ha pasado de PHPDesktop a Electron. :)

Un saludo.

oskarg

  • Full Member
  • ***
  • Mensajes: 234
  • Karma: 3
Re:Div Games en Html5 y Canvas
« Respuesta #842 en: Septiembre 07, 2020, 04:43:35 pm »
Hola AmakaSt,
Gracias por las novedades,
Acabo de probar el comportamiento de las tablas,ahora se asigna correctamente los valores en dos dimensiones ,pefecto.
Sigo trasteando...
Un saludo

AmakaSt

  • Hero Member
  • *****
  • Mensajes: 524
  • Karma: 17
    • Amaka Soft
Re:Div Games en Html5 y Canvas
« Respuesta #843 en: Septiembre 07, 2020, 05:05:01 pm »
Hola oskarg,
Recuerda que ahora funcionan como en Div 2: variable[x, y];

Un saludo. :)

oskarg

  • Full Member
  • ***
  • Mensajes: 234
  • Karma: 3
Re:Div Games en Html5 y Canvas
« Respuesta #844 en: Octubre 18, 2020, 12:26:03 pm »
Hola AmakaST,he encontrado un bug  bastante curioso
te adjunto ejemplo.Simplemente no permite hacer dos comparaciones una seguida de otra  guau!!!.debo eliminar una de las dos lineas,sino me pone variable no definida.
Código: [Seleccionar]

/*
Program's Name: <My Program Name>
Author's Name: <My Name>
Company's Name: <My Company or Group>
*/

program MyProgramName;
global
// declared global variables
    points = 0;
    hi_score = 0;

begin
set_title("My Program Name");
    set_icon("graficos/009.png");

// screen canvas options
set_mode(480, 320);
screen_color(cc_silver);

set_fps(60, 0);

     BUG(100,200);

loop
if (key(_esc)) exit("Text Exit", 1); end

frame;
end
end

process BUG(cajax, cajay);
private
 xa,ya; 
   
begin
   IF (cajax <= 0 ) xa = cajax; END///de momento lo hacemos de este modo.//si elimino una de estas dos lineas funciona!!!!!!!!!
       IF (cajay <= 0 ) ya = cajay; END///de momento lo hacemos de este modo. //si elimino     una de estas dos lineas funciona.!!!!!!!
       
loop

frame;
end
end




Un saludo.

AmakaSt

  • Hero Member
  • *****
  • Mensajes: 524
  • Karma: 17
    • Amaka Soft
Re:Div Games en Html5 y Canvas
« Respuesta #845 en: Octubre 18, 2020, 04:31:50 pm »
Hola oskarg,

Acabo de probarlo y el problema se da en los comentarios de después de END. Al pegar los comentarios a END e incluir una barra de más el compilador ignora el comentario pero dejando una pegada a "END/" y deja de reconocer END y da como que la variable no fue definida.

38        IF (cajay <= 0 ) ya = cajay; END/ -- VARIABLE NO DEFINIDA!
 44 end [/size] -- ERROR
 
Prueba en separar el comentario de END o poner solo // en vez de ///, para la próxima versión mirare de corregirlo. :)

Un saludo.

AmakaSt

  • Hero Member
  • *****
  • Mensajes: 524
  • Karma: 17
    • Amaka Soft
Re:Div Games en Html5 y Canvas
« Respuesta #846 en: Octubre 25, 2020, 09:05:06 pm »
Hola a todos,
Ya está disponible online (para testeos) una nueva versión de DivGO, la 1.34.0:

bugs y mejoras:
   - [ADD] gamepad virtual para dispositivos con pantalla táctil
   - [ADD] nuevo minimap de código en el ide
   - [FIX] corregido bloqueo de scroll del plano de fondo
   - [FIX] espacio entre caracteres en el formato fnt
   - [FIX] fpg.dat ahora cambia de manera correcta la posición de un gráfico movido o eliminado
   - [FIX] problema con pestañas si tienes proyectos en divgo en distintas carpetas
   - [FIX] comentarios de una línea con más de una barra y apegado a un valor, variable o palabra reservada
   - [CHANGE] los fpg.dat ya no se escriben al compilar, solo al empaquetar proyecto
   - [CHANGE] función load_sound() ahora dispone de 2 nuevos parámetros de repetición
   - [UPDATE] analizador de programa, ahora incluye los datos de filtros del proceso



Aquí os pongo una demostración del gamepad virtual: https://www.divgo.net/proyectos/virtualpad/
Un saludo. :)

panreyes

  • Administrator
  • *****
  • Mensajes: 2259
  • Karma: 82
    • panreyes.com
Re:Div Games en Html5 y Canvas
« Respuesta #847 en: Octubre 25, 2020, 10:14:03 pm »
Me gustaría probar a portar un pequeño juego a DivGO, pero no sé ni por dónde empezar...

Este sería el juego:
https://www.dropbox.com/s/gu50ulecake7s4c/elduelo-1.0.divpmproject.7z?dl=1

¿Hay alguna forma de subir FPGs enteros directamente?
¿Existe la posibilidad de tener códigos en varios archivos?
¿Se pueden abrir archivos de texto?
Me encantaría un videotutorial de cómo portarías este juego xD

(Si alguien quiere probar el juego en un ejecutable de Windows, que vaya aquí:
https://rawrlab.itch.io/el-duelo)

oskarg

  • Full Member
  • ***
  • Mensajes: 234
  • Karma: 3
Re:Div Games en Html5 y Canvas
« Respuesta #848 en: Octubre 25, 2020, 10:37:16 pm »
Hola AmakaST,
1.El gamepad está muy bien,¿Cómo veo el código fuente?pues me carga directamente el ejemplo ya compilado.
2.El analizador de programa nunca lo he comprendido cómo funciona exactamente en divgo.No es que lo utilice,pero me gustaría entenderlo,Me explico,por ejemplo compilo el ejemplo de procesos lo ejecuto y ahora toco la pestaña de "analizar".
  1.Ocupa toda la pantalla y como el marco no es transparente  no veo que pasa en el juego.
  2.Si no tengo la tecla pulsada,por ejemplo la de avanza a la derecha,no puedo observar luego en el "analizador" como cambia su valor de x,por más que la pulse y toque al siguiente frame.Con lo cual ,no es " interactivo" y esto hace que lo omita y emplee variables con write para saber que realmente pasa.
Un saludo.

     

AmakaSt

  • Hero Member
  • *****
  • Mensajes: 524
  • Karma: 17
    • Amaka Soft
Re:Div Games en Html5 y Canvas
« Respuesta #849 en: Octubre 26, 2020, 02:08:24 am »
Me gustaría probar a portar un pequeño juego a DivGO, pero no sé ni por dónde empezar...

Este sería el juego:
https://www.dropbox.com/s/gu50ulecake7s4c/elduelo-1.0.divpmproject.7z?dl=1

¿Hay alguna forma de subir FPGs enteros directamente?
¿Existe la posibilidad de tener códigos en varios archivos?
¿Se pueden abrir archivos de texto?
Me encantaría un videotutorial de cómo portarías este juego xD

(Si alguien quiere probar el juego en un ejecutable de Windows, que vaya aquí:
https://rawrlab.itch.io/el-duelo)
Hola panreyes,

Div GO es compatible con los fpg, fnt y map de Div, Fenix y BennuGD, los ejemplos de Steroid, Pitfall, Exploss y Zelda cargan este formato. Sobre los códigos en varios archivos se pueden incluir varios prgs con el bloque include ".prg", ".prg", ".prg"; Este debe estar en el program antes que su begin y los prgs incluidos no deben de tener un program, solo procesos y funciones.
También es posible cargar archivos de texto, al igual que leer datos de BBDD, haciendo uso de load_external_data() y save_external_data(), hay un ejemplo en la carpeta de ejemplos.

Si tengo un rato pruebo en portar tu juego y te lo dejo preparado para que puedas trabajar, y te pueda valer de ejemplo. :)

Hola AmakaST,
1.El gamepad está muy bien,¿Cómo veo el código fuente?pues me carga directamente el ejemplo ya compilado.
2.El analizador de programa nunca lo he comprendido cómo funciona exactamente en divgo.No es que lo utilice,pero me gustaría entenderlo,Me explico,por ejemplo compilo el ejemplo de procesos lo ejecuto y ahora toco la pestaña de "analizar".
  1.Ocupa toda la pantalla y como el marco no es transparente  no veo que pasa en el juego.
  2.Si no tengo la tecla pulsada,por ejemplo la de avanza a la derecha,no puedo observar luego en el "analizador" como cambia su valor de x,por más que la pulse y toque al siguiente frame.Con lo cual ,no es " interactivo" y esto hace que lo omita y emplee variables con write para saber que realmente pasa.
Un saludo.
     
Hola oskarg,

1. Aquí te pego el código, es como el ejemplo de las colisiones pero he incluido las variables del struct joy, también valen las del struct pad. Luego es activar la opción en el compilador a la hora de empaquetar o proyectar, lo mismo que el botón de fullscreen.
Código: [Seleccionar]
// Pruebas de compilador online Div Games
// Php + Html5 + Canvas + Javascript
// by J. Manuel Habas

program ejemplo_collision;
global
    id_txt1, id_txt2;
    puntos = 0;
    sonido1, sonido2, sonido3;
   
begin
    sonido1 = load_sound("sonidos/inicia.ogg", 0);
    sonido2 = load_sound("sonidos/disparo.wav", 0);
    sonido3 = load_sound("sonidos/elimina.wav", 0);

    set_title("Div GO : Ejemplo de Colisiones");

    /* pruebas con opciones de pantalla */
    set_mode(480, 320);
    screen_color(#025);

    set_fps(60, 0);

    // inicia scroll
    start_scroll(0, 0, 2, 2, 0, 0);
    start_scroll(1, 0, 2, 2, 0, 0);

    scroll[0].front.alpha = 20; scroll[0].back.alpha = 10;
    scroll[1].front.alpha = 80; scroll[1].back.alpha = 40;
   
    text_color = #fff;
    text_size  = 50;
    id_txt1 = write_int(0, 240, 20, 4, offset puntos);
   
    text_color = #ccc;
    id_txt2 = write(0, 240, 90, 4, "Pulsa [B] [N] o [M] para disparar");
   
    shadow_text(id_txt1, #000, 1, 1, 2);
    shadow_text(id_txt2, #000, 1, 1, 2);
   
    nave(240, 290);
    enemigo();
   
    loop
        scroll[0].front.y -= 0.5; scroll[0].back.y -= 0.25;
        scroll[1].front.y -= 2; scroll[1].back.y -= 1;
       
        if (key(_esc)) exit("Amaka Soft 2012", 1); end

        frame;
    end
end

process nave(x, y);
private
    disparado;
   
begin
    graph = 6;
    size  = 50;
   
    loop       
        if (key(_left) and x > 20)
            scroll.front.x += 0.5; scroll.back.x += 0.25;
            scroll[1].front.x += 2; scroll[1].back.x += 1;
            x -= 3;
        end
       
        if (key(_right) and x < 460)
            scroll.front.x -= 0.5; scroll.back.x -= 0.25;
            scroll[1].front.x -= 2; scroll[1].back.x -= 1;
            x += 3;
        end

        if (joy.left and x > 20)
            scroll.front.x += 0.5; scroll.back.x += 0.25;
            scroll[1].front.x += 2; scroll[1].back.x += 1;
            x -= 3;
        end
       
        if (joy.right and x < 460)
            scroll.front.x -= 0.5; scroll.back.x -= 0.25;
            scroll[1].front.x -= 2; scroll[1].back.x -= 1;
            x += 3;
        end

        if ((key(_b) or key(_n) or key(_m) or joy.button1 or joy.button2) and disparado < 1)
            disparo(x, y-20); sound(sonido2, 200, 256);
            disparado = 5;
            delete_text(id_txt2);
        end
           
        disparado --; if (disparado < 0) disparado = 0; end
       
        frame;
    end
end

process disparo(x, y);
begin
    graph = 3;
    angle = 90000;
    size  = 15;
    z      = 10;
   
    loop
        y -= 5; if (y < -10) break; end
       
        frame;
    end
end

process enemigo();
private
    desformacion, anima;
    energia_enemigo = 5;
    id_disp;
   
begin
    graph = 5;
    x       = rand(0, 480)
    y      = -50;
    size  = rand(60, 110);
   
    sound(sonido1, 100, 256);
   
    loop
        if (desformacion == 0)
            shear_x += 4; if (shear_x > 50) desformacion = 1; end
        else
            shear_x -= 4; if (shear_x < -50) desformacion = 0; end
        end

        y+= 5; if (y > 100) y = 100; end
        if (anima == 0)
            x-=2; if (x <0) anima = 1; end
        end
       
        if (anima == 1)
            x+=2; if (x >480) anima = 0; end
        end       
       
        if (anima == 2)
            size -= 5; if (size < 0) puntos += 100; enemigo(); break; end
        end
       
        id_disp = collision(type disparo);
        if (id_disp)
            puntos += 5; energia_enemigo --;
            signal(id_disp, s_kill);
        end
       
        if (energia_enemigo < 0 and anima <> 2) anima = 2; sound(sonido3, 200, 256); energia_enemigo = 0; end
       
        frame;
    end
end

2. Hay que mejorarlo y añadir más cosas aún, pero a mí me ha ido bien para portar Panic!, cambiar el tono y saturación del prota, al pulsar siguiente frame, en el cuadro de imagen del proceso puedo ver el cambio que se hace en las variables con el graph, también se puedes ver donde esta un proceso, si se ha ejecutado o está en el limbo y su estado, pero aun hay que añadir más cosas, para que sea realmente mucho más útil.

Un saludo.

oskarg

  • Full Member
  • ***
  • Mensajes: 234
  • Karma: 3
Re:Div Games en Html5 y Canvas
« Respuesta #850 en: Octubre 26, 2020, 08:31:21 am »
Hola AmakaST,
Una sugerencia
Según el tipo de navegador que utilice las colisiones son lentas,tipo collision()  ..por ejemplo en este ejemplo que me has ofrecido,si el proyectil esta cerca del trebol se ralentiza.Esto depende mucho del navegador por lo que observo,en chrome es bien marcado.
Si pongo collision_box...soluciono el probrema,me imagino que haces una simple interseccion de cajas,perfecto,pues bien, mi sugerencia es que esa caja ,colision_box()pueda definir su tamaño size=100 % o size=20% o mejor aun su alto,ancho,de esta manera  quedaria como colision_box(type proceso,ancho,alto);
se me olvidaba ,donde alto y ancho corresponde proceso del trebol.
sigo trasteando....
Un saludo.
« última modificación: Octubre 26, 2020, 08:49:52 am por oskarg »

AmakaSt

  • Hero Member
  • *****
  • Mensajes: 524
  • Karma: 17
    • Amaka Soft
Re:Div Games en Html5 y Canvas
« Respuesta #851 en: Octubre 27, 2020, 08:13:09 pm »
Ya se encuentra disponible para descargar la versión 1.34.0: https://www.amakasoft.com/herramientas/div-go.html

He subido una pequeña actualización de versión a la 1.34.1 que corrige algunos bugs en el compilador, detectado con el juego elduelo de panreyes. :)
« última modificación: Octubre 29, 2020, 10:14:21 pm por AmakaSt »

AmakaSt

  • Hero Member
  • *****
  • Mensajes: 524
  • Karma: 17
    • Amaka Soft
Re:Div Games en Html5 y Canvas
« Respuesta #852 en: Octubre 31, 2020, 11:39:03 pm »
Nueva versión 1.34.2 que corrige algunos bugs:


bugs y mejoras:
   - [FIX] problemas con variable id del proceso
   - [FIX] fallos de compilación en structs que contienen structs con tablas



Ya disponible para descargar en: https://www.amakasoft.com/herramientas/div-go.html

oskarg

  • Full Member
  • ***
  • Mensajes: 234
  • Karma: 3
Re:Div Games en Html5 y Canvas
« Respuesta #853 en: Noviembre 15, 2020, 10:14:15 am »
Buenos dias,
1.Me gustaria que algun dia  se estudiara poder implementara funciones como trae lua en el manejo de tablas.Poder insertar elementos y borrarlos en este lenguaje es muy sencillo y potente.Aunque ni idea si seria factible en divgo.

Como tengo vacas aprovecho para utilizar divgo y si me quedo bloqueado expongo....

2.Estaria bien que se pudiera añadir los puntos de control desde divgo en el editor de graficos.....creo que no se puede......O bien indicar un enlace del fpg editor ,o incluirlo como  herramienta externa .Lo digo para gente nueva que se inicia con este programa....

3.Me gustaria que las primitivas graficas pudiera no aplicar suavizado y dibujarlas desde su centro ,aunque se puede programar,es mas practico que lo traiga por defecto.

4.Que el tamaño de la caja de colision no este realmente determinado por el tamaño del grafico en si,sino que lo lo pueda establecer,por ejemplo diga ancho=20 pixeles ,alto=2 pixeles y sea dinamico,es decir que lo pueda modificar a mi antojo en cualquier momento.

5.Es una reiteracion esto,pero bueno,a veces cometo el error de añadir un grafico erroneo en el fpg con un numero equivocado,pues bien,ya no hay manera de borrarlo y me saca de mis casillas esto, ;D No entiendo por que no se puede insertar encima otro grafico externo .Como hago simples pruebas no es molesto,pero si inicio un proyecto grande   y sucede ;D es engorroso crear otra carpeta nueva,con otro nombre del fpg... e insertar otra vez las imagenes.

6.Siempre he pensado que seria muy util poder definir un grafico ciclico independientemente del scroll,por ejemplo Tengo un juego con  scroll de 320x240,ahora tengo un grafico de 120x8 ,el cual representa la lava,si lo pudiera hacer ciclico por ejemplo en el eje x directamente ya simularia  una animacion y bien sencilla y potente.Podria tener tropecientos graficos moviendose con sus tamaños diferentes,solo con cargarlos en el fpg su imagen inicial y si lo quisiera hacer mas versatil le iria pegando trozos de otro grafico.............vale.... lo puedo programar,pero no es lo mismo si ya por defecto lo trae,lo encuentro muy practico.

Un saludo




Un saludo.

panreyes

  • Administrator
  • *****
  • Mensajes: 2259
  • Karma: 82
    • panreyes.com
Re:Div Games en Html5 y Canvas
« Respuesta #854 en: Noviembre 15, 2020, 11:44:22 am »
Buenas Amakast :)

Aquí el rompedor de DivGOs xD

from parece algo roto por aquí:
https://www.divgo.net/c-c08fc05a