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.

panreyes

#90
Holas :)


ME ENCANTA :)


He encontrado otro pequeño bug, idiota pero pa que conste: No permite utilizar "=>". Sé que está mal escrito, pero DIV me lo perdonaría xD


Pd: Y esto también lo rompe todo xD
Quote

Program a;
Private
   gravedad;
    x_inc;
Begin
   set_mode(800,600);
    graph=write_in_map(0,"DIV LO PETA",4);
    x=400;
    loop
        if(key(_left)) x_inc-=3; elseif(key(_right)) x_inc+=3; end
        if(key(_up) and gravedad>=0) gravedad=-30; end
        y+=gravedad;
        x+=x_inc;
        if(y<500) gravedad++; else gravedad=-gravedad/2; y=500; end
        if(x_inc>0) x_inc--; elseif(x_inc<0) x_inc++; end
        if((x>750 and x_inc>0) or (x<50 and x_inc<0)) x_inc=-x_inc; end
        if(rand(0,10)==0) huele(); end
       angle-=x_inc*600;
       frame;
    end
End


Process huele();
Private
   x_objetivo;
    x_inc;
Begin
   x_objetivo=rand(100,600);
    y=rand(0,600);
   graph=write_in_map(0,"lo peta mogollón",4);
   x=900;
    size=rand(100,150);
    while(x>x_objetivo)
       x+=((x_objetivo-x)/5);
       frame;
    end
    while(x>-100)
       x_inc++;
        x-=x_inc;
       frame;
    end
End

AmakaSt

Del código, lo que peta es el primer while que hay dentro de huele()... es como si hiciera un bucle infinito y no llega a salir nunca del mismo.



    /* while(x>x_objetivo)
         x+=((x_objetivo-x)/5);
         frame;
    end */


Al comentarlo se ve el texto rebotando por la pantalla.


Lo del operador '=>' o '=<', no me había dado cuenta que esto así también funcionaba en Div, para la próxima versión también estará disponible.  :)

Erkosone

Dale caña Amaka, tiene una pinta excelente!


Por cierto, me encantaría que algún día esto fuera portable con un editor como el Notepad++ para programar los juegos, daría mucha libertad a los desarrolladores ;)
Animo y enhorabuena por el curro que te estás pegando.

panreyes




Quote from: AmakaSt on May 22, 2013, 01:24:11 PM
Del código, lo que peta es el primer while que hay dentro de huele()... es como si hiciera un bucle infinito y no llega a salir nunca del mismo.
    /* while(x>x_objetivo)
         x+=((x_objetivo-x)/5);
         frame;
    end */
Al comentarlo se ve el texto rebotando por la pantalla.

Pero el código está bien, ¿no? Es una ecuación que provoca que el proceso se coloque de forma suavizada en una posición concreta

AmakaSt

El código while está bien, si. Es el frame; dentro del while lo que falla, en DivGO frame no actúa igual que Div, por lo que el while() acaba siendo un bucle sin retorno que hace que el navegador quede bloqueado y no se llega a dibujar nada en el canvas. Frame se puede poner fuera del bucle o dentro de loop, por el momento... Sigo buscado un modo optimo de conseguir emular el funcionamiento del frame de Div sin que caiga el rendimiento en picado.

Aquí una pequeña modificación en tu código para que funcione, cambiando los 2 while por un único loop:

Program a;
Private
   gravedad;
    x_inc;
Begin
   set_mode(800,600);
    graph=write_in_map(0,"DIV LO PETA",4);
    x=400;
    loop
        if(key(_left)) x_inc-=3; elseif(key(_right)) x_inc+=3; end
        if(key(_up) and gravedad>=0) gravedad=-30; end
        y+=gravedad;
        x+=x_inc;
        if(y<500) gravedad++; else gravedad=-gravedad/2; y=500; end
        if(x_inc>0) x_inc--; elseif(x_inc<0) x_inc++; end
        if((x>750 and x_inc>0) or (x<50 and x_inc<0)) x_inc=-x_inc; end
        if(rand(0,10)==0) huele(); end
       angle-=x_inc*600;
       frame;
    end
End


Process huele();
Private
   x_objetivo;
    x_inc;
    paso = 0;
Begin
   x_objetivo=rand(100,600);
    y=rand(0,600);
   graph=write_in_map(0,"lo peta mogollón",4);
   x=900;
    size=rand(100,150);
     
    loop
   
    if (paso == 0)
        x+=((x_objetivo-x)/5); if (x>x_objetivo) paso = 1; end               
       else
        x_inc++; x-=x_inc; if (x>-100) paso = 0; end
    end
       frame;
    end
End


Y ahora un ejemplo que incluirá la versión 0.26, con algunas de las nuevas funciones que acompañara esta versión. :)

program ejemplo_video;
global
    media, id_peli, punto_pausado, en_reproduccion;
   
begin
    set_mode(m320x240);
    screen_color(#000);

    set_fps(30, 0);
   
    set_title("Div GO : Ejemplo de Manejo de Videos");

    media = load_video("videos/trailer.mp4", 0);
   
    video(media, 255, 0);
    id_peli = video(media, 255, 0);

    //move_video(id, flags, angle, alpha, x, y, ancho, alto)
    move_video(id_peli, 1, 180000, 20, 0, 300, 320, 120);

    text_size  = 50;
    text_color = #fff;
    write(0, 160, 220, 4, "Pulsa Espacio para Pausar y Enter para Continuar");
   
    text_color = #000;
    write_int(0, 5, 5, 0, offset en_reproduccion);
           
    loop
        en_reproduccion = is_playing_video(media); //funciona igual que is_playing_sound()
       
        if (key(_space)) punto_pausado = pause_video(media); end
        if (key(_enter)) continue_video(media, punto_pausado); end
        if (key(_esc)) stop_video(media); end

        frame;
    end
end


En breve pondré las novedades de la 0.26, que hay de muy interesantes. :)

Un saludo.

AmakaSt

Lista de novedades para la versión 0.26 de DivGO, lo que ya tengo listo:
  - load_ttf(); load_oft(); load_woff(); //carga de fuentes
  - load_video(); video(); move_video(); change_video(); pause_video(); continue_video(); stop_video(); is_playing_video(); y variable: all_sound; //reproducción y manejo de video
  - pause_sound(); continue_sound(); change_sound();
  - mejoras en el funcionamiento de las funciones de sound
  - arreglado varios bugs y mejoras varias en la lib de DivGO

Lo que me falta para completar esta versión:
  - los códigos de bloqueo de start_scroll, que a estas alturas (sobre todo por pereza) todavía no está disponible. :P

Un saludo.

Drumpi

Yo aun no me he enterado bien de cómo va esto ¿Se supone que es un compilador de código DIV para ejecutar los juegos a través de HTML5 o algo así? ¿Hasta qué punto será compatible, o se tiene pensado que sea, respecto al viejo DIV?
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Erkosone

Es un entorno completo Drumpi, tiene editor de código, visor "muy verde" pero visor de fpg y compilador, todo online, tiene varios programas de ejemplo que puedes cargar y compilar/ejecutar online ya.

AmakaSt

Ya disponible la versión 0.26. Por el momento solo online, se puede probar las funciones de video y sonido, y la carga de fuentes ttf y otf con los nuevos ejemplos.  :)

En breve subo la descarga.

Un saludo.


AmakaSt


Erkosone

Hola gente, quería comentar que tengo un IDE para trabajar en local ya montado para DivGO.


Caracteristicas:
- 100% portable.
- Sin dependencias externas [incluye servidor web+php].
- Sin instalación.
- Basado en Notepad++.
- Scripts:
- + F6 -> Compilar y Ejecutar.
- + F7 -> Run xampp [first time].
- + CONTROL+F1 -> Despliega una ventana con la documentación de la palabra donde se encuentra el cursor de texto.


Lo tengo ya funcionando, si alguien está interesado en el solo tiene que pedirmelo y se lo paso.
Creo que es bastante cómodo jeje.. simplemente para usarlo se hace esto:


1 - Abrir el Notepad++
2 - F7 para lanzar el servidor xampp "ya configurado y portable sin dependencias".
3 - Disfrutar programando  ;D

emov2k4

Yo estoy interesado, te envie un mensaje !! no me has contestado !

Erkosone

Buenas!
Pues no tengo ese mensaje, que raro, estás seguro que lo enviaste?
Te subo el IDE a mi dropbox y en cuanto esté cuelgo el link para el que lo quiera probar.

Erkosone

#103
Link al entorno de desarrollo para DivGO  ;)
DESCARGA: https://dl.dropboxusercontent.com/u/65979707/Dev-DivGO.zip


Dentro del Zip hay un archivo LEEME.TXT, leedlo para estar al tanto de como usar esto, aunque básicamente es lo mismo que el notepad++ para bennuGD con algún añadido mas, por ejemplo el tema de los scripts ha sido un poco complejo ya que hay que hacer algunas cosas mas que hemos estado ajustando entre Amaka y yo para llegar a un acuerdo sobre como compilar en local desde el IDE sin que toque demasiado los guebos XD.. finalmente llegamos a un sistema sencillo que parte del trabajo la hace el notepad++ y parte el compilador.php y así se logra compilar de forma transparente para el programador que se limitará simplemente a pulsar F6 y ver el resultado en su navegador.


A disfrutarlo.


NOTA: Para los mas curiosos, veréis que hay además de un script llamado correr.bat, un exe que ayuda a la compilación programado en otro lenguaje, incluso el nombre del lenguaje para el resaltado de sintaxis lleva el nombre de otro software, no quería ponerme a editar todo eso por que tiene un rato de curro.. si a alguien no le gusta verlo que le cambie el nombre ;) , lo digo ya antes de que alguien lo vea y comente.

panreyes

Lo que le hace falta a DivGO es un entorno de desarrollo online :)


Si esto sirve, podríamos mirar de hacerlo online