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.

oskarg

Y aquí adjunto el efecto que funciona en div3 y no en divgo,creo que así se entenderá mejor...

AmakaSt

Hola oskarg,

Ya he corregido ese problema, estaba en la función map_get_pixel() que guarda la primera vez que llamas los datos de la imagen en cache para que fuera mas rápido accediendo a ellos y los cambios en los mapas no los interpreta. Por eso no se sigue pintando la línea solo detecta el primer pixel blanco incluido.

Sobre la descarga de empaquetados en la versión desktop, a mi me funciona (dejo captura), mira que no sea por temas de permisos de windows.

Un saludo.

AmakaSt

Ya disponible online la ultima versión 1.44.0 de Div GO para testeo y las novedades:



funciones:
   - fix(), regex();   

bugs y mejoras:
   - [ADD] soporte de flags en tiles desde editor de mapas de tiles
   - [ADD] mensajes y control de errores producidos por javascript al carga y que no bloquee la página
   - [FIX] sin suavizado en funciones draw cuando screen_smooth es false
   - [FIX] formas (círculos y líneas) sin suavizado en editor gráfico
   - [FIX] corregido desplazamiento de scroll central o medio
   - [FIX] función map_get_pixel() para que no guarde en cache la imagen
   - [FIX] efecto blur de regiones para que no muestre los bordes de la región
   - [FIX] problema al guardar cambios en tamaño de imagen desde el editor
   - [CHANGE] funciones matemáticas para que devuelva valor decimal




Ejemplo función fix(): https://www.divgo.net/c-32e17f06
Ejemplo funcion regex(): https://www.divgo.net/c-80b04b7e

Un saludo y felices fiestas.  :)


oskarg

#979
Hola AmakaSt,
felices fiestas...
Dos cosas,he trasteado divgo y me ha salido el mensaje y control de errores con una pantalla de color muy peculiar,buen aporte...
2.Deberias unificar la forma en como se manipulan los pixeles internamente en divgo.Me explico...por ejemplo map_put_pixel vs graphic explorer.La primera opcion es lentisima comparada con la segunda.adjunto los dos ejemplos para que veas con claridad la prueba
un saludo.
metodo 1:lento


/*
* colores.PRG by tt
* (c) 2021 tt
*/

PROGRAM colores;
global
    fichero ;
    colores;
    i;
    j;
    xx;
    yy;
    veces;
    cambia;
BEGIN
   set_mode(m320x240);
   fichero=load_fpg("graficos/help");

   write_int(0,10,10,0,offset cambia);

file =fichero;
x=320/2;
y=240/2;
graph= 1;




  loop
 
colores =rand(0,255);

for (j=0;j<320;j++)
  for (i=0;i<240;i++)
       map_put_pixel(fichero,graph,j,i, rgb(colores,0,colores));
       
 
  end
  end





 
 
  cambia++;
  frame;
  end


end




metodo 2 rapido


// Div GO : Games Online > Example
// Php + Html5 + Canvas + Javascript
// by J. Manuel Habas

program example_graphic_explorer;

global

i, graph1;
    colores;
    veces;

begin
set_mode(320, 240);
    screen_color(#059);
      write_int(0,100,100,0,offset veces);


     x=320/2;
     y=240/2;
    graph1 = graphic_explorer(0, 14);
   
    loop
   
       
        colores =rand(0,255);
     



        for (i = 0; i < sizeof(graph1.data); i+=4)
       
       
                graph1.data[i] = colores ;
                graph1.data[i+1] = 0 ;
                graph1.data[i+2] = colores ;
                graph1.data[i+3] = 255;
         end       
               
     

            graph = graphic_builder(graph1);


             veces++;
       
             frame;
    end
end




oskarg

#980
Hola de nuevo,
Como diablos va ahora el seno y el coseno ?¿? ;D no me entero nada. ufff!!!





[/code]



UN bug que me crashea divgo por completo.estoy utilizando xamp ...sera por los comentarios cosa que no deberia....

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

program MyProgramName;
global
valor ;
begin
set_title("My Program Name");
    set_icon("graficos/009.png");

// screen canvas options
set_mode(400, 400);
screen_color(cc_silver);

set_fps(60, 0);
    write_int(0,100,100,0,offset valor);

   tiro ();

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

frame;
end
end





process tiro()
BEGIN


END

/*
process tiro()
private v0,g,x0,y0,angulo,t,pii,toco;

BEGIN
graph = 1;
size  = 50;
x0 = 50;
y0 = 150;
pii= 3.1416;
angulo = 75;
t = 0;
v0 =40;
g= 9.8 ;


x=x0;
y=y0;
valor = cos(90)/1000 ;

loop


if (key(_a))

x = x0 + v0 * cos(angulo * Pi /180) * t/1000;
y = y0 + v0 * sin(angulo * Pi /180) * t/1000 - 0.5 * g * t * t; 
t=t+0.2;
end

frame;
end

END






g = 9.8 m/s2 | H = 30.00 m | α = 1.24 rad

v0 = 9.00 m/s
v0x = v0 · cos(α) = 9.00 · cos(1.24) = 2.92 m/s
v0y = v0 · sin(α) = 9.00 · sin(1.24) = 8.51 m/s

x = vx · t = 2.92 · 1.16 = 3.39 m
y = H + v0y·t - 1/2 · g · t2 = 30.00 + 8.51 . 1.16 - 1/2 · 9.8 · 1.162 = 33.28 m

vx = v0x = 2.92 m/s
vy = v0y - g · t = 8.51-9.8 · 1.16 = -2.86 m/s

*/








Esto me pasa en un codigo bien extenso y me peta completamente en xamp .EN version desktop me sale el icono continuo de cargando completamente y me afecta todas las versiones de divgo.Deberia haber un modo de arrancar divgo sin este problema.





AmakaSt

Buenas oskarg,

De los métodos que mencionas, es que son distintos y trabajan de forma diferente. Las funciones graphic_builder() y graphic_explorer() están fuera del bucle grande y map_put_pixel() esta dentro de ese bucle, con graphic_explorer() obtienes los datos de la imagen y haces los cambios en el bucle y a luego recompones la imagen con graphic_builder(), es lo correcto. Con map_put_pixel() hace algo parecido a los otros dos pero sin trabajar con los datos de la imagen por lo que acaba siendo mucho más lento al estar todo integrado y dentro del bucle grande.

Sobre el bug, no consigo reproducirlo, copiando el código que has puesto me aparece un 0 en pantalla y parece funcionar bien y sin bloqueos.

Un saludo.

oskarg

Gracias AmakaSt por probarlo,
he instalado una version mucho mas reciente de xamp y me funciona ahora correctamente.

oskarg

Buenos dias,AmakaSt
Que tal ?
Por mi parte he estado bastante tiempo ausente,tuve un accidente laboral y he estado de baja  sin poder hacer nada,salvo engordar y engordar xd  me he  conectado al foro ,pero no he visto movimiento,todo esta muy parado.
Ahora estoy recopilando codigo del disco,lo tengo algo desorganizado y luego con tranquilidad mirare como se programaba xd estoy algo oxidado y espero hacer algo en mis diez dias de descanso que tengo en el proximo mes.


Espero que estes bien de salud que es lo que realmente importa,un saludo.

AmakaSt

Hola oskarg,

No había leído tu mensaje, pensaba que era mas antiguo. Yo estoy bien, con poco tiempo para desarrollar cosas y desde que empezó a fallar mi ordenador (bloqueos, congelaciones repentinas y pantallazos azules) no he hecho nada en mis ratos libres aparte de jugar a la consola, me he cambiado el equipo recientemente.
De momento DivGO está parado, no se me ocurren cosas que mirarle ni hay un feedback que me aporte lucidez, hasta que no programe algún juego o alguna cosa, poco puedo avanzar. :P

Un saludo. :)

oskarg

Hola Amakast,
Mañana o pasado mañana como maximo publico un juego  muy conocido para divgo....he estado toda la tarde haciendo la mecanica y al final la he sacado XD .incluiré codigo fuente y graficos originales aunque no sean gran cosa con la intencion que lo incluyas como ejemplo ya que lo encuentro muy ilustrativo .
Un saludo.

AmakaSt

Quote from: oskarg on April 22, 2022, 08:18:08 PM
un juego  muy conocido para divgo
La verdad que tengo curiosidad por saber que juego es. :)


oskarg

Hola AmakaSt,
Estoy ahora retocando cosas para que quede presentable y de esa manera merezca incluirse con el programa divgo.
Cuando acabe te comento un par de cosas ,tengo dia libre y lo estoy aprovechando..
Un saludo.

oskarg

Hola amakast
tengo un problema con los graficos..no los lee divgo..
como se crea un fpg nuevo desde cero?¿?
en el prg tengo esto  fichero=load_fpg("graficos/t10");
entonces creo una carpeta y pongo ahi los graficos ..sale el error de:
fichero=load_fpg("graficos/t10"); -- NO VALID FPG.DAT FOUND IN DIRECTORY

si incluyo un fpg.dat de otro sitio y lo edito para cambiar la carpeta correcta tambien falla.
ES un error que me saca de mis casillas ,pues no se como se hace un fpg nuevo en divgo desde hace mucho tiempo.Please help.

oskarg

Hola,Amakast
Ya he solucionado a medias el problema...luego cuando termine te comento los problemas que tengo con divgo..no se basicamente hacer un  fpg nuevo.
Estoy añadiendo fases me queda hacer la transicion entre fase y fase y añadir musica.