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: Futu-block on January 20, 2019, 07:10:05 PM
probando la nueva, ya que la otra me daba problemas en windrios 7
¿Te falla con algún navegador o te está dando problemas la versión Desktop?

Un saludo.

Futu-block

#586
era la versión desktop
me dice que me falta una libreria, a ver si encuentro la foto

AmakaSt

Yo lo suelo probar en Windows 10 y en Windows 7, pero por lo que veo te faltan las librerías de Visual C++. Te pongo el enlace de la versión PHP Desktop que uso para Div GO, tiene los enlaces de las librerías que te pueden hacer falta: https://github.com/cztomczak/phpdesktop/releases/tag/chrome-v57.0-rc

oskarg

Hola amaka quiero hacer unos tutos y juegos para que se vayan incluyendo en divgo ,pues me siento muy comodo es este engine,pero no me va todavia la funcion @load correctamente....pues nunca me carga los graficos en el navegador.adjunto ejemplo...

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

program MyProgramName;
global
FILE1;
begin
set_title("JUEGO_NAVES");//Nombre del juego...
set_mode(512,512);
screen_color(rgb(0,0,0));
set_fps(30, 0);
    text_size=80;
    write(0,512/2,512/2,4,"LOADING GAME..");
    INICIO();
loop
if (key(_esc)) exit("Text Exit", 1); end

frame;
end
end

PROCESS INICIO()
BEGIN
carga_recursos();
END

Process CARGA_RECURSOS()
BEGIN

  // FILE1=@load_fpg("graficos/nave");//NO FUNCIONA:::NUNCA CARGA EL GRAFICO..
   FILE1=load_fpg("graficos/nave");//de esta manera carga los graficos .....
   
    EMPIEZA_JUEGO();
END

PROCESS EMPIEZA_JUEGO();
BEGIN
delete_text(all_text);
PINTA_FONDO();
END

PROCESS PINTA_FONDO()
BEGIN
     start_scroll(0, FILE1,1, 0, 0, 15);
     scroll.camera=id;
     ctype=c_scroll;

   
    LOOP
        y=y-1;
        FRAME;
    END


END


AmakaSt

Quote from: oskarg on February 10, 2019, 10:00:31 AM
Hola amaka quiero hacer unos tutos y juegos para que se vayan incluyendo en divgo ,pues me siento muy comodo es este engine,pero no me va todavia la funcion @load correctamente....pues nunca me carga los graficos en el navegador.adjunto ejemplo...

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

program MyProgramName;
global
FILE1;
begin
   set_title("JUEGO_NAVES");//Nombre del juego...
    set_mode(512,512);
   screen_color(rgb(0,0,0));
   set_fps(30, 0);
    text_size=80;
    write(0,512/2,512/2,4,"LOADING GAME..");
    INICIO();
   loop     
      if (key(_esc)) exit("Text Exit", 1); end

      frame;
   end
end

PROCESS INICIO()
BEGIN
carga_recursos();
END

Process CARGA_RECURSOS()
BEGIN

  // FILE1=@load_fpg("graficos/nave");//NO FUNCIONA:::NUNCA CARGA EL GRAFICO..
   FILE1=load_fpg("graficos/nave");//de esta manera carga los graficos .....
   
    EMPIEZA_JUEGO();
END

PROCESS EMPIEZA_JUEGO();
BEGIN
delete_text(all_text);
PINTA_FONDO();
END

PROCESS PINTA_FONDO()
BEGIN
     start_scroll(0, FILE1,1, 0, 0, 15);
     scroll.camera=id;
     ctype=c_scroll;

   
    LOOP
        y=y-1;
        FRAME;
    END


END


Hola Oskarg,

Las cargas con @ son asincronas junto con la ejecución, se debe de controlar. Por ejemplo, esto puede ir bien para hacer cargas mientras muestras una introducción del juego, puedes controlar tu los momentos de carga.

Aquí el código con la solución.

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

program MyProgramName;
global
FILE1;
begin
    set_title("JUEGO_NAVES");//Nombre del juego...
     set_mode(512,512);
    screen_color(rgb(0,0,0));
    set_fps(30, 0);
    text_size=80;
    write(0,512/2,512/2,4,"LOADING GAME..");
    INICIO();
    loop       
        if (key(_esc)) exit("Text Exit", 1); end

        frame;
    end
end

PROCESS INICIO()
BEGIN
carga_recursos();
END

Process CARGA_RECURSOS()
BEGIN

   FILE1=@load_fpg("graficos/nave");//NO FUNCIONA:::NUNCA CARGA EL GRAFICO..
   //FILE1=load_fpg("graficos/nave");//de esta manera carga los graficos .....
   
    while(!loading_data) frame; end //La ejecucion continuara si no la controlas, se inicia el scroll antes de la posible carga
   
    EMPIEZA_JUEGO();
END

PROCESS EMPIEZA_JUEGO();
BEGIN
delete_text(all_text);
PINTA_FONDO();
END

PROCESS PINTA_FONDO()
BEGIN
     start_scroll(0, FILE1,1, 0, 0, 15);
     scroll.camera=id;
     ctype=c_scroll;

   
    LOOP
        y=y-1;
        FRAME;
    END


END


Un saludo.


oskarg

Hola Amaka,gracias por ejemplo...no me acordaba ya lo de loading...pero sigue sin cargarme nada,se ve la pantalla negra y no hace nada....
Otra cuestion,podrias modificar el comportamiento de crtl+z ....me ha pasado ya en varias ocasiones que he perdido el codigo por completo borra todo lo escrito y ni idea de como volverlo a recuperar...

Te comento es problema de file=FILE1 cuando intento cargar graficos de forma asincrona...si utilizo graficos por defecto..entonces funciona adjunto ejemplo para que veas que no funciona...me sigue pasando el mismo error de antes,con graficos propios de div va.con graficos creados mios ya no  :P...Si elemino file=FILE1 me carga la estrella...sino no carga mi grafico joe!!!

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

program MyProgramName;
global
FILE1;
begin
    set_title("JUEGO_NAVES");//Nombre del juego...
     set_mode(512,512);
    screen_color(rgb(0,0,0));
    set_fps(30, 0);
    text_size=80;
    write(0,512/2,512/2,4,"LOADING GAME..");
    INICIO();
    loop       
        if (key(_esc)) exit("Text Exit", 1); end

        frame;
    end
end

PROCESS INICIO()
BEGIN
carga_recursos();
END

Process CARGA_RECURSOS()
BEGIN

   FILE1=@load_fpg("graficos/nave");//NO FUNCIONA:::NUNCA CARGA EL GRAFICO..
   //FILE1=load_fpg("graficos/nave");//de esta manera carga los graficos .....
   
    while(!loading_data) frame; end //La ejecucion continuara si no la controlas, se inicia el scroll antes de la posible carga
   
    EMPIEZA_JUEGO();
END

PROCESS EMPIEZA_JUEGO();
BEGIN
file=FILE1;///NO CARGA EL GRAFICO..SI QUITO ESTA LINEA CARGA LA ESTRELLA JOE!!!!
graph=2;
x=100;
y=200;
delete_text(all_text);
loop
frame;
end
END






..Otra cuestion estoy haciendo mini tutoriales,un space invaders,uno de naves,un tetris. .,iguales que phaser...¿?¿?te parece adecuado añadirlo como tutoriales o prefieres que sean originales.?¿?.

AmakaSt

Quote from: oskarg on February 11, 2019, 01:30:23 PM
Hola Amaka,gracias por ejemplo...no me acordaba ya lo de loading...pero sigue sin cargarme nada,se ve la pantalla negra y no hace nada....
Otra cuestion,podrias modificar el comportamiento de crtl+z ....me ha pasado ya en varias ocasiones que he perdido el codigo por completo borra todo lo escrito y ni idea de como volverlo a recuperar...

Te comento es problema de file=FILE1 cuando intento cargar graficos de forma asincrona...si utilizo graficos por defecto..entonces funciona adjunto ejemplo para que veas que no funciona...me sigue pasando el mismo error de antes,con graficos propios de div va.con graficos creados mios ya no  :P ...Si elemino file=FILE1 me carga la estrella...sino no carga mi grafico joe!!!
Hola oskarg,

Desconocía lo del ctrl+z del editor, eso debe ser cosa del codemirror, mirare de quitarlo para la próxima versión. Cuando te pase eso, cierra la pestaña del navegador y vuelve a abrirlo, recuperaras lo que tengas guardado.

Lo del file=FILE1; no debería ser ningún problema, le estas pasando a file el número del fichero cargado, en ese caso será el 1, por lo que es raro que no te este funcionando bien eso, yo he estado haciendo pruebas y me funciona bien la carga, aquí tu codigo cargando una carpeta de gráficos de fostiator: https://www.divgo.net/c-ce86a273
Le he añadido en esta ocasión un chivato por consola para ver cuantas veces entra dentro del while cuando hace la carga.

Quote from: oskarg on February 11, 2019, 01:30:23 PM
..Otra cuestion estoy haciendo mini tutoriales,un space invaders,uno de naves,un tetris. .,iguales que phaser...¿?¿?te parece adecuado añadirlo como tutoriales o prefieres que sean originales.?¿?.
Los juegos y tutoriales los publico como su autor quiera, asi que si quieres los añado como tutoriales o ejemplos en la página (incluyendo tu código) o como juegos desarrollados (sin incluir dicho código). :)

Un saludo.


oskarg

Hola Amaka por que viven estos procesos si no tienen ni un loop o frame.........

/*
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("VIVE");
   
set_mode(480, 320);
screen_color(cc_silver);

set_fps(60, 0);
VIVE();

END
process VIVE()
   
begin

end


oskarg

Lo logico,seria que si no tengo un bucle infinito el proceso de forma directa se muriera...creo yo

oskarg

#594
Otra curiosidad que me tiene intrigado,desconozco si es normal...te explico.. hago un for para crear  procesos for(i=0;i<N_ENEMIGOS;i++)ENEMIGOS();END y guardos sus id en una tabla...lo que pasa que los guarda del ultimo al primero los ides en la tabla..es decir..cuando hago un WHILE( (a=get_id(type ENEMIGO))<>0) TABLA[i]=a;i++);END ....y en la tabla[0] guarda el ultimo enemigo creado, en la tabla[1] guarda el penultimo enemigo creado.no tendria que ser de forma inversa...es decir..en la tabla[0] guardo el primer enemigo creado... en la tabla[1] guardo el segundo enemigo creado......no se si es la forma normal que funciona div...de ahi que no me funcionaba lo que intentaba hacer....pues lo hacia a la inversa XD

oskarg

MAÑAna cuando regrese del trabajo miro otra vez el codigo,pues flipo XD estoy mega espeso

AmakaSt

Quote from: oskarg on February 12, 2019, 10:03:03 PM
Hola Amaka por que viven estos procesos si no tienen ni un loop o frame.........

/*
   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("VIVE");
   
   set_mode(480, 320);
   screen_color(cc_silver);

   set_fps(60, 0);
   VIVE();
   
END   
process VIVE()
   
begin

end


Hola oskarg,

En principio me hace lo que dices que debería de hacer, se detiene el programa y no hay ningún proceso vivo. En el listado de procesos te mostrará 0 procesos activos y si entras en el analizador lo mismo, no hay procesos activos.

Si incluyes un frame(5000) al proceso vive, se muestra un instante el fondo gris y se vuelve negro, acabado el frame el programa finaliza.

Un saludo.

oskarg

#597
Qué raro...me hace todo lo opuesto...me muestran los procesos como activos y no lo entiendo y sobre la segunda pregunta a qué se debe? lo de guardar del último al primer id por ese orden? Esta noche los guardo a la inversa XD los id y te digo si me funciona...

AmakaSt

Quote from: oskarg on February 12, 2019, 11:07:12 PM
Otra curiosidad que me tiene intrigado,desconozco si es normal...te explico.. hago un for para crear  procesos for(i=0;i<N_ENEMIGOS;i++)ENEMIGOS();END y guardos sus id en una tabla...lo que pasa que los guarda del ultimo al primero los ides en la tabla..es decir..cuando hago un WHILE( (a=get_id(type ENEMIGO))<>0) TABLA[i]=a;i++);END ....y en la tabla[0] guarda el ultimo enemigo creado, en la tabla[1] guarda el penultimo enemigo creado.no tendria que ser de forma inversa...es decir..en la tabla[0] guardo el primer enemigo creado... en la tabla[1] guardo el segundo enemigo creado......no se si es la forma normal que funciona div...de ahi que no me funcionaba lo que intentaba hacer....pues lo hacia a la inversa XD
Esto tendre que mirarmelo, ahora no recuerdo como hago el recorrido de procesos para obtener la id.

AmakaSt

Quote from: oskarg on February 13, 2019, 08:13:16 AM
Qué raro...me hace todo lo opuesto...me muestran los procesos como activos y no lo entiendo y sobre la segunda pregunta a qué se debe? lo de guardar del último al primer id por ese orden?
Con que navegador lo estas probando? Estas usando la última versión de DivGO, la 1.18.1?

Necesito pistas para poder provocar el mismo problema, yo suelo hacer pruebas en 3 ordenadores distintos y los siguientes navegadores: Firefox, Chrome, Vivaldi... y algunas veces pruebo con Edge.