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.

emov2k4

Ayer implemente una función obtener el nombre del jugador, no es mas que la funcion prompt de javascripts, asi evito usar el scan_code y facilito las cosas, funciona bien, el cuadro que pide el nombre se sobrepone a al juego y este se pausa automaticamente (funcion por defecto de divgo) , estuve haciendo pruebas y pude mostrar en nombre en pantalla del juego con write_int, pero encontré un pequeño detalle que hace que no sea 100% perfecto, si estas apretando alguna tecla al momento de mostrar el mensaje esa tecla queda por defecto marcada, me explico... si apreto la tecla izquierda para que mi personaje se mueva y aparece el mensaje que pide el nombre la tecla izquierda queda marcada y después de aceptar el nombre la nave se mueve sola a la izquierda... pueden probar el ejemplo en el siguiente link

http://www.planweb.cl/nave/

se dispara con Z y se mueve con las flechas, al comenzar el juego pide el nombre y al matar una nave lo vuelve a mostrar para que vean que la tecla queda marcada.



AmakaSt

Quote from: emov2k4 on October 24, 2013, 01:26:17 PM
Ayer implemente una función obtener el nombre del jugador, no es mas que la funcion prompt de javascripts, asi evito usar el scan_code y facilito las cosas, funciona bien, el cuadro que pide el nombre se sobrepone a al juego y este se pausa automaticamente (funcion por defecto de divgo) , estuve haciendo pruebas y pude mostrar en nombre en pantalla del juego con write_int, pero encontré un pequeño detalle que hace que no sea 100% perfecto, si estas apretando alguna tecla al momento de mostrar el mensaje esa tecla queda por defecto marcada, me explico... si apreto la tecla izquierda para que mi personaje se mueva y aparece el mensaje que pide el nombre la tecla izquierda queda marcada y después de aceptar el nombre la nave se mueve sola a la izquierda... pueden probar el ejemplo en el siguiente link

http://www.planweb.cl/nave/

se dispara con Z y se mueve con las flechas, al comenzar el juego pide el nombre y al matar una nave lo vuelve a mostrar para que vean que la tecla queda marcada.


No se puede probar, no funciona el enlace.

Lo del scroll del navegador se debería de solucionar pulsado la pantalla del juego.
También me estuve mirando box2d y chipmunk para implementarlo en un futuro.
http://lib.ivank.net/?p=demos&d=box2D
http://dl.dropboxusercontent.com/u/2494815/demo/Joints.html


Quote from: l1nk3rn3l on October 24, 2013, 04:16:40 AM
Eso seria buena idea .. pero quien se animara  :P


bueno otra demo salida del horno
http://www.mediafire.com/download/vq3oe3dzegcn220/setup.zip


+ muchas mejoras ,
+ soporte de aplicaciones TIZEN , al exportar ya es compatible con dispositivos TIZEN
+ exportar juegos html5
+ nuevo ejemplo touch
+ y muchas cosas raras nuevas.. q deben mirar


Gran trabajo! Mirare de hacer que el compilador genere un archivo con los recursos que se van a utilizar en el juego (gráficos, sonidos, videos, fuentes), así cuando exportes el juego estará limpio, solo archivos del juego sin las carpetas por defecto.

Un saludo.

emov2k4

#137
Disculpa AmakaSt , tenia mi servidor con bloqueo internacional, ahora debería funcionar.

http://www.planweb.cl/nave/


"Lo del scroll del navegador se debería de solucionar pulsado la pantalla del juego. "  - No funciona !

Saludos

l1nk3rn3l

#138
lo de la nave puede deberse a un eco .. desde la entrada de texto..
lo mejor seria evitar usar la entrada de texto dentro de un loop
y hacerlo cuando el jugador termine el juego o destruyan la nave..

limpiar el buffer del teclado en javascript es mas dificil que en pc..
ya que tocaria crear una funcion que capture las teclas y entraria en conflicto
con la de divgo ..

o no se si bastaria despues del prompt ..  esto
window.event.cancelBubble = truepero en javascript creo funciona mejor
e.stopPropagation()



o dejar el juego  como esta pero el prompt fuera de un loop y no cambiar nada  :P



Quote from: emov2k4 on October 23, 2013, 03:49:48 PM
Estimado, tengo problemas con el scroll del navegador... las flechas lo mueven..., alguna solución ?? tengo firefox


PD: alguien que se anime a implementar box2dweb http://buildnewgames.com/box2dweb/


mientras sale la proxima demo adiciona  este texto al siguiente archivo..

C:\DivGo\mini_server_6\udrive\www\scripts\tizen.js



remplaza el contenido por el siguiente...






//captura la tecla back de TIZEN
document.addEventListener('tizenhwkey', function(e) {

if (e.keyName === 'back') {     
  tizen.application.getCurrentApplication().exit();
}

});



//bloquea el scroll si corre en navegador web
window.onscroll = function () { window.scrollTo(0, 0); };


l1nk3rn3l

Quote from: AmakaSt on October 25, 2013, 08:37:23 AM


Gran trabajo! Mirare de hacer que el compilador genere un archivo con los recursos que se van a utilizar en el juego (gráficos, sonidos, videos, fuentes), así cuando exportes el juego estará limpio, solo archivos del juego sin las carpetas por defecto.

Un saludo.


SI SERIA GENIAL QUE GENERARA UN RECURSOS.TXT
Y ADENTRO QUE TENGA EL LISTADO DE LO QUE USA EL JUEGO GENERADO EN INDEX.HTML

GRAFICOS\GRAFICO1.PNG
MUSICAS\MUSICA.OGG
GRAFICOS\GRAFICO2.JPG
FUENTES\FUENTE.TTF



AmakaSt

Quote from: l1nk3rn3l on October 28, 2013, 01:19:16 AM
SI SERIA GENIAL QUE GENERARA UN RECURSOS.TXT
Y ADENTRO QUE TENGA EL LISTADO DE LO QUE USA EL JUEGO GENERADO EN INDEX.HTML

GRAFICOS\GRAFICO1.PNG
MUSICAS\MUSICA.OGG
GRAFICOS\GRAFICO2.JPG
FUENTES\FUENTE.TTF

Esto ya lo tengo preparado para la próxima versión de DivGO, automáticamente el compilador genera un archivo appFiles.tmp, con todos los archivos que va a cargar el juego incluyendo DivGOvXXX-min.js e index.html.

Quote from: emov2k4 on October 25, 2013, 12:59:56 PM
Disculpa AmakaSt , tenia mi servidor con bloqueo internacional, ahora debería funcionar.

http://www.planweb.cl/nave/


"Lo del scroll del navegador se debería de solucionar pulsado la pantalla del juego. "  - No funciona !

Saludos

Lo del teclado estoy mirando de solucionarlo, he solucionado algo similar que sucedía con el mouse y el touch si sales de la pantalla del juego mientras sigues pulsando.

Un saludo.

AmakaSt

Div GO 0.34 ya online para realizar pruebas y testeo, las novedades:

funciones:
  - subtract_text(); subtract_draw(); subtract_xdraw();
  - path_free(); path_line();
variables:
  - loading.text_x; loading.text_y;
cambios: load_ttf(), load_otf(), load_woff() por load_font();
bugs y mejoras:
  - generador/empaquetador de proyectos
  - salida de archivos para adaptar div go a distintos ide externos
  - loading ahora carga también sonidos, videos y fuentes
  - ahora se pueden declarar arrays de dos dimensiones. ej: mi_variable[10, 5]
  - mejoras en el compilador para detectar nuevos errores de código

Un saludo.

l1nk3rn3l


AmakaSt

Quote from: l1nk3rn3l on November 20, 2013, 07:38:09 PM
no hay descarga de la 0.34 ?

Perdon por el retraso, normalmente lo subo antes online para poder testear desde el servidor y no solo en local.

Ya está disponible para descargar la 0.34.  :)

En esta versión el compilador crea un archivo de salida (appFiles.tmp) con los archivos que necesita el juego. :)

También he actualizado el ejemplo draw xdraw (añadiendo las funciones subtract_draw y subtract_text) y el de load_video.

Un saludo.

panreyes

He probado este código:


Program test;
Begin
set_mode(640,480);
    loop
    if(key(_space)) pelota(rand(0,640)); end
    frame;
    end
End


Process pelota(x);
Private
x_inc;
    gravedad;
Begin
graph=2;
    x_inc=rand(2,8);
    if(rand(0,1)) x_inc=-x_inc; end
while(x>0 and x<640)
    x+=x_inc;
        if(y<460)
        gravedad++;
            y+=gravedad;
        else
        gravedad=-gravedad;
        end
    frame;
    end
End

Y no funciona muy fino... :\

AmakaSt

Hola PiXel,

DivGO actualmente funciona de forma distinta a Div, esta hecho así a causa del funcionamiento de frame, no conseguí hacer que funcionara de la misma forma y que fuera optimo (si conseguía que el funcionamiento fuera similar a Div pasaba de correr 600 procesos a 20 o menos y quería evitar esta caída de rendimiento).  :-[

Actualmente en DivGO los procesos tienen dos partes: lo de fuera de loop y lo de dentro de loop ... end. El proceso primero ejecuta y dibuja todo lo que hay fuera del loop (incluso si esta después de este) y luego lo de dentro admitiendo solo 2 frames para el pintado, el de fuera del bucle y el de dentro.

Si haces dentro del loop 2 frames actúa como 1 solo pero sumando el valor de los dos. Por eso que al añadir un frame dentro de while se está incrementando el valor de frame todo el rato por lo que se puede quedar colgado.

La estructura típica de un proceso en DivGO es:

process nombre_proceso();
private
      ...

begin
      ...
      ...
      frame(x); //x = 100 o 200 o 300...; este es el primer frame permitido antes de entrar en el bucle loop, otro incrementara el valor de x

      loop
            ...
            ...
            frame(x); //x = 100 o 200 o 300...; este es el segundo frame permitido, otro dentro del loop incrementara el valor x
      end
end


Para que tu código funcione bien en DivGO sería hacerlo mas o menos así:

Program test;
Begin
    set_mode(640,480);
    loop
        if(key(_space)) pelota(rand(0,640)); end
        frame;
    end
End


Process pelota(x);
Private
    x_inc;
    gravedad;
Begin
    graph=2;
    x_inc=rand(2,8);
    if(rand(0,1)) x_inc=-x_inc; end
    /*while(x>0 and x<640)
        x+=x_inc;
        if(y<460)
            gravedad++;
            y+=gravedad;
        else
            gravedad=-gravedad;
        end
        frame;
    end*/
    loop
        if (x>0 and x<640) x+=x_inc; end

        if(y<460)
            gravedad++;
            y+=gravedad;
        else
            gravedad=-gravedad;
        end

        frame;
    end
End


Un saludo.

AmakaSt

Div GO 0.36 ya esta online para poder testear, las novedades:

include:
- ya se pueden incluir procesos desde archivos prg externos, debe ir dentro de program y antes de global, private, local o begin

bugs y mejoras:
- ahora los graficos con new_map(), write_in_map() y texture_in_map() soporta colisiones
- manejo de variables locales con la id del proceso, ahora funciona como en div: id_nombre = get_id(type proceso); id_nombre.x = x;
- solucionado problema de parpadeo grafico cuando dos procesos tenían la misma z, ahora se pinta por delante el ultimo proceso que ha sido llamado
- añadida comprobación de archivos desde el compilador, si no existe un archivo mostrara el mensaje de error: no se encontró archivo
- corregido bugs mínimos de la versión anterior
- vuelve a funcionar div go en navegadores móviles de ios: safari y chrome
- vuelve a funcionar div go en navegadores antiguos: ie9, opera 11+

Y por el momento esto es todo. :)

AmakaSt

Ya disponible la versión 0.36 para descargar.  :)

Un saludo.

MythomizeR

Gracias AmakaSt por el trabajo, que aunque BennuGD me chifla, tu proyecto es interesante también  :)

FreeYourMind

A este paso lo superara xDD
Felicidades, un gran saber hacer, aunque no lo haya probado ya que me resisto a actualizar el navegador xD