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

Hola a todos,

Ya está disponible otra nueva versión de Div GO, las novedades:



bugs y mejoras:
   - [ADD] nuevo editor de fuentes fnt con opciones de cambio de color, degradado, bordes y líneas
   - [ADD] opción para crear y editar fuentes desde visor de fuentes
   - [ADD] opción para exportar fuentes formato fnt compatible con bennugd
   - [ADD] debido al tamaño de las fuentes generadas al guardar, estas se guardan en local usando la api indexeddb
   - [CHANGE] la función break_back_scroll() ahora retorna el valor de traslado por planos
   - [CHANGE] funcionamiento interno de la función map_put_pixel() para pequeña mejora de rendimiento





Y aquí dejo el ejemplo de la función break_back_scroll() actualizado con traslado manual de planos: https://www.divgo.net/c-8fa91506

Un saludo y feliz verbena. :)

FreeYourMind


oskarg

Buenos días,
En JavaScript proporciona métodos para eliminar elementos de una tabla, valores. Me gustaría que se planteará la posibilidad de añadirlo ya  que lo encuentro muy útil.
Un saludo.

oskarg

#1023
Hola AmaKaSt,
Buenos días,tengo un par de dias libres y estoy haciendo un proyecto y me ha sorprendido la bajada desorbitada que tengo en fps con map_put..
Solo logro 1 frame
en la version 1.65 logro 60 fps.
El grafico 17 tiene de tamaño 320x240
el grafico 18 tiene de tamaño 8 x8 pixeles.

Me gustaria que se implementara una variable de como se quiere comportar estas funciones o que fuera global,pues la diferencia es abismal  o que se mirara como mejorarlo.

PROGRAM example_map_put;

PRIVATE
    x_destination;
    y_destination;
    file1;
    i;
BEGIN
set_mode(m320x200);
    set_fps(60,0);
    write_int(0,100,100,0,offset fps);
    file1=load_fpg("graficos/help");
    graph=17;
    x=160;
    y=100;
   // for(i=0;i<1000;i++)
     //   pinta(); 
   // end
   
    LOOP
        x_destination=rand(0, 320);
        y_destination=rand(0, 200);
          for (i=0;i<4000;i++)
        map_put(0, 17, 18, x_destination, y_destination);

     //   angle+=1000;
        end
        FRAME;
    END
END
//__________________________________________________________________________________________________________________
//__________________________________________________________________________________________________________________
//__________________________________________________________________________________________________________________

PROCESS pinta()
BEGIN

graph= 19;
y=rand (0,240);
x=rand (0,240);

angle=rand(10000,360000);
loop
frame;

angle=angle+10000;
end
END



AmakaSt

Hola oskarg,

Ya me lo habías comentado antes pero todavía no se cual es la versión 1.65, ni lo que tiene. Div GO aún no ha alcanzado esa versión, estoy intentando quitar errores de la 1.48.

Un saludo.

oskarg


AmakaSt

Buenas,

Div GO versión 1.48.2 ya está disponible para descargar: https://www.amakasoft.com/herramientas/div-go.html



bugs y mejoras:
   - [FIX] solucionado fallo al cargar fuentes locales formato fnt causado por el nuevo editor de fuentes
   - [FIX] problema en el compilador al convertir tablas de dos dimensiones cuando hay una variable con corchetes dentro
   - [CHANGE] nuevo parámetro opcional de guardado de imagen para las funciones: map_put(), map_put_pixel(), map_xput() y map_block_copy()




Ejemplo de cambio del estado de guardado de mapa en funciones map_xxx(), parámetro opcional (por defecto: true): https://www.divgo.net/c-59ead822

Un saludo.

oskarg

Buenos días Amakast,
Qué tal? Por mi parte el próximo mes tengo vacaciones y espero hacer un juego que lo inicié, pero lo dejé a medias por falta de motivación y porque tenía un error de concepto y preferia reescribirlo de cero.A veces es lo que falta,ganas ,pues con divgo actualmente se puede hacer grandes cosas, pero como el foro está bien parado, no interactúas con demás gente, estas menguan.Seguro que me compro un monitor 2k o 4k,para dibujar a lo bestia, o una tableta gráfica con pantalla...ya veré...hace un par de años me compré un ordenador por menos de 300 euros y el         cambio en divgo fue increíble,el doble de procesos.un i7 de 6 generación.Espero que estés bien.
Un saludo

AmakaSt

#1028
Hola a todos,

Ya disponible la versión 1.50.0 de Div GO (solo online para testear) y las novedades:



funciones:
   - start_socket(), set_socket(), stop_socket();
   - push(), unshift(), pop(), shift(), splice();   

bugs y mejoras:
   - [ADD] nuevas funciones para modificar arrays
   - [ADD] cambio de nombre de las funciones socket
   - [ADD] nuevo tema oscuro Night
   - [FIX] funciones socket, antes no funcionaba correctamente y bloqueaba el programa
   - [FIX] empaquetado de fuentes formato fnt creadas desde el editor de Div GO




Ejemplo de función splice(): https://www.divgo.net/c-eb1e1a48
Ejemplo de funciones push(), shift(), pop(), unshift(): https://www.divgo.net/c-9bdce921

Un saludo.

oskarg

Ohh !!! que alegría han venido los reyes magos antes de tiempo!!  las funciones de eliminar y añadir elementos a una tabla son realmente útiles,es algo que envidiaba del lenguaje lua. :)

AmakaSt

Hola oskarg,

Tenía preparada la versión desde hace un par de semanas, pero uno de los ejemplos no los podía reproducir en mi servidor a no ser que pague más para poder tener esa opción. Tener acceso a una terminal y no poder instalar lo que quieras... :(

He creado el ejemplo con unas pequeñas instrucciones para levantar un servidor websocket en local y aquí el ejemplo de cómo hacer un sencillo juego multijugador online: https://www.divgo.net/c-9b5b45f9

Añado también esta URL que explica como levantar un servidor local de manera muy detallada: https://programadorwebvalencia.com/cursos/javascript/websockets/

Un saludo. :)

AmakaSt

Buenas,

Ya está para descargar la versión 1.50.0 de Div GO: https://www.amakasoft.com/herramientas/div-go.html

Un saludo.  8)

oskarg

Buenos días AmakaSt,
Estoy haciendo un juego y pretendo utilizar las nuevas funciones que has incluido,pero no se si es posible,sino se puede no pasa nada lo hago como lo estoy haciendo ahora,explicado abajo.
Me explico con un simple ejemplo:

program MyProgramName;
global
    game_over=    false;
 

   
  struct enemigo[10]
      x ;
      y ;
  end 



BEGIN
    set_title("Juego ejemplo");
    set_icon("graficos/009.png");

    // screen canvas options
    set_mode(320, 240,4);
    screen_color(cc_silver);
    set_fps(60, 0);
   
   
    loop       
        if (key(_esc)) exit("Text Exit", 1); end

        frame;
    end
END







Cosas que observo
1 enemigo[10] tengo que definir un valor en este caso 10..no me permite divgo hacerlo de manera dinamica.
2.Si defino como una struct..tampoco me permite eliminar un enemigo o añadir otro..o bien es que no se como hacerlo con estructuras.....con lo cual...lo que haga es esto: definir una simple tabla...


enemigo[0] = 2;
enemigo[1] = 0; //x
enemigo[2] = 0;//y
enemigo[3] = 0; //x segundo enemigo..
enemigo[4] = 0;//y  segundo enemigo..

 

Entonces si puedo añadir y quitar elementos de la tabla..solo que es algo mas engorroso,enemigo
  • lo utilizo para saber directamente cuantos tengos y con un simple algoritmo accedo al enemigo que quiero..
Un saludo..


AmakaSt

Hola oskarg,

Puedes hacer esto para declarar valores en la struct:
  struct enemigo[10];
      x;
      y;
  end = 50, 100, //x, y,
  100, 50,
        160, 120,
        200, 200,
        300, 100,
        280, 30,
        30, 200,
        200, 30,
        50, 100,
        160, 10,
        10, 160;

Si no pones nada a x e y por defecto es 0, si pones esto:
  struct enemigo[10];
      x = 160;
      y = 120;
  end

Todos los valores x e y del struct serán 160 para "x" y 120 para "y".

Un saludo.

oskarg

Gracias por la forma de cómo se declaran las variables en una estructura, pero hay alguna manera de cambiar el tamaño de la estructura..es decir, eliminar enemigo(10) y que pase el struct a tamaño 9.
Un saludo.