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

Si comentas el cubo peta.
Si comentas la línea con cos() deja de petar.


Por otro lado AmakaSt, warning en Chrome:

'CanvasRenderingContext2D.webkitImageSmoothingEnabled' is deprecated. Please use 'CanvasRenderingContext2D.imageSmoothingEnabled' instead.
divGOv064-min.js:8 DivGO 0.64

Yawin

Pues qué mal que no haga bien los cosenos. Los efectos gráficos lo usan como aire para respirar.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

AmakaSt

Quote from: PiXeL on March 18, 2015, 11:35:50 AM
Holas AmakaSt :)


Primero de todo, agradecerte el curro que le estás dando. Nunca está de más nuevos engines DIV-like :)


Por ahora yo lo estoy utilizando para hacer ejemplos rápidos de códigos, y me viene bastante bien, aunque me gustaría pedirte un detalle:
¿Qué te parecería que se pudiera guardar los PRGs online? Es como el código que puse el otro día en Twitter. En vez de dar una URL de PasteBin y otra de DivGO, una URL de DivGO con un parámetro que identifique al PRG guardado en el servidor, o incluso un segundo parámetro para directamente ejecutar ese PRG enviado.


¿Qué te parece?


Un saludo

Hola PiXeL,

Me alegra ver que DivGO se usa, aunque sea para insultar de forma sutil y elegante. xD

La verdad es que la idea es muy buena, poder guardar los PRG para volver a recuperarlos o ejecutarlos al insertar un identificador es algo que no lo había meditado aun, me lo apunto para incluir como novedad en próximas versiones. :)

Un saludo.

AmakaSt

Quote from: Yawin on March 18, 2015, 02:19:11 PM
Jo, pues yo no consigo que me vaya. No se qué puedo estar haciendo mal. Estoy ejecutando este código:
program demorl;
private
       i,j,k,l;
begin
    set_mode(640,480);
    set_fps(120,0);
   
    loop
        i++;
        l+=cos(i*1000)*4;
        if(k==0)
            if(j++>100)k=1; end
        else
            if(j--<50)k=0; end
        end

        cubo(l,j,j);
        frame;
    end
end

function cubo(stepe, _wi, _hi);
private
    i,j;
    vertices[5][4];
begin
    clear_screen();
    delete_draw(0);
    stepe*=1000;

    vertices[0][0]=320 + cos(stepe)*2*_wi;          vertices[0][1]=(240-_hi) + sin(stepe)*_wi;
    vertices[1][0]=320 + cos(stepe+1*70000) *2*_wi; vertices[1][1]=(240-_hi) + sin(stepe+1*70000)*_wi;
    vertices[2][0]=320 + cos(stepe+2*70000) *2*_wi; vertices[2][1]=(240-_hi) + sin(stepe+2*70000)*_wi;
    vertices[3][0]=320 + cos(stepe+3*70000)*2*_wi;  vertices[3][1]=(240-_hi) + sin(stepe+3*70000)*_wi;
    vertices[4][0]=320 + cos(stepe+4*70000)*2*_wi;  vertices[4][1]=(240-_hi) + sin(stepe+4*70000)*_wi;

    vertices[0][2]=320 + cos(stepe)*2*_wi;          vertices[0][3]=(240+_hi) + sin(stepe)*_wi;
    vertices[1][2]=320 + cos(stepe+1*70000) *2*_wi; vertices[1][3]=(240+_hi) + sin(stepe+1*70000)*_wi;
    vertices[2][2]=320 + cos(stepe+2*70000) *2*_wi; vertices[2][3]=(240+_hi) + sin(stepe+2*70000)*_wi;
    vertices[3][2]=320 + cos(stepe+3*70000)*2*_wi;  vertices[3][3]=(240+_hi) + sin(stepe+3*70000)*_wi;
    vertices[4][2]=320 + cos(stepe+4*70000)*2*_wi;  vertices[4][3]=(240+_hi) + sin(stepe+4*70000)*_wi;

    for(i=0;i<4;i++)
        draw(0,rgb(255,255,255),0,0,vertices[i][0],vertices[i][1],vertices[i+1][0],vertices[i+1][1]);
        draw(0,rgb(255,255,255),0,0,vertices[i][2],vertices[i][3],vertices[i+1][2],vertices[i+1][3]);
        draw(0,rgb(255,255,255),0,0,vertices[i][0],vertices[i][1],vertices[i][2],vertices[i][3]);
    end
    draw(0,rgb(255,255,255),0,0,vertices[0][0],vertices[0][1],vertices[i][0],vertices[i][1]);
    draw(0,rgb(255,255,255),0,0,vertices[0][2],vertices[0][3],vertices[i][2],vertices[i][3]);
    draw(0,rgb(255,255,255),0,0,vertices[i][0],vertices[i][1],vertices[i][2],vertices[i][3]);
end


Y, mientras que la versión en bennu se ve así https://www.youtube.com/watch?v=t1URE5YD4ag
En DIVgo me deja la ventana en negro.

Hola Yawin,

Esto es un error del compilador, mirare de solucionarlo para esta versión, por lo que veo la línea que pone la ventana negra es la 10: l += cos(i*1000)*4; //el compilador de forma mágica separa los signos += en esta línea

Quote from: PiXeL on March 18, 2015, 02:35:14 PM
Si comentas el cubo peta.
Si comentas la línea con cos() deja de petar.


Por otro lado AmakaSt, warning en Chrome:

'CanvasRenderingContext2D.webkitImageSmoothingEnabled' is deprecated. Please use 'CanvasRenderingContext2D.imageSmoothingEnabled' instead.
divGOv064-min.js:8 DivGO 0.64

Esto es por temas de compatibilidad, las versiones más antiguas de Chrome no soportaban el estándar imageSmoothingEnabled y hacia uso de webkitImageSmoothingEnabled. Esto es un dilema, o 100% estándar o dejar cosillas que acabaran siendo deprecated.   :-\

Con WebGL ya he sacrificado retrocompatibilidad con los navegadores IE9 e IE10...

Gracias por los reportes. :)

panreyes

Quote from: AmakaSt on March 18, 2015, 03:06:00 PM
Esto es por temas de compatibilidad, las versiones más antiguas de Chrome no soportaban el estándar imageSmoothingEnabled y hacia uso de webkitImageSmoothingEnabled. Esto es un dilema, o 100% estándar o dejar cosillas que acabaran siendo deprecated.   :-\

Con WebGL ya he sacrificado retrocompatibilidad con los navegadores IE9 e IE10...

Gracias por los reportes. :)


Tampoco te preocupes mucho por que figure como deprecated. Probablemente signifique que dentro de un par de años dejará de funcionar.


Y sobre IE9 e IE10, menos aún. Nacieron muertos xD

AmakaSt

Versión 0.64 ya esta disponible para descargar. :)

AmakaSt

Quote from: Yawin on March 18, 2015, 02:40:23 PM
Pues qué mal que no haga bien los cosenos. Los efectos gráficos lo usan como aire para respirar.

Hola Yawin,

Estaba revisando tu código y ya no se pone la ventana en negro, también debes saber que DivGO lo estoy creando basándome en Div2, así que hay cosas en el código que no son compatibles con Bennu:
- En la línea donde declaras vertices[5][4]; cambiar por vertices[5, 4]; //En Div la cosa iba asi
- Draw no te pintara nada en pantalla, debería de funcionar si pones 1 (línea recta) en el primer parámetro y 15 (opacidad) en el tercer parámetro.
- Donde esta delete_draw(0) por delete_draw(all_drawing), en DivGO la variable all_drawing es distinta a 0.

Así te debería de funcionar el programa sin dar error y sin ralentizaciones por no borrar draw(). Ahora seria ver si los valores de vertices[][] que te da en Bennu son iguales que en DivGO y si lo estas aplicando en el parámetro correcto de la función draw(). :P

Un saludo.


AmakaSt

Ya disponible online la versión 0.66 y las novedades:

variables mouse:
  - right, middle, browser

bugs y mejoras:
  - [ADD] lectura y visualización de archivos .map de div (incluye puntos de control)
  - [ADD] añadido nuevo mensaje de error en el compilador y control de dicho error
  - [ADD] primera versión del editor grafico (funcionalidades básicas)
  - [ADD] mejoras internas del IDE
  - [FIX] los objetos 3d cargados con load_object3d() ahora se incluye en el empaquetado de forma automática
  - [ADD] en el empaquetado se incluyen las imágenes editadas con el editor grafico
  - [ADD] nueva opción para guardar y recuperar código de la nube/servidor de divgo.net

Mirando la lista de novedades parece traer pocas esta versión pero el editor grafico y la lectura de maps equivalen al triple de novedades, ha habido mucho trabajo en ello. :P

Quote from: PiXeL on March 18, 2015, 11:35:50 AM
Holas AmakaSt :)


Primero de todo, agradecerte el curro que le estás dando. Nunca está de más nuevos engines DIV-like :)


Por ahora yo lo estoy utilizando para hacer ejemplos rápidos de códigos, y me viene bastante bien, aunque me gustaría pedirte un detalle:
¿Qué te parecería que se pudiera guardar los PRGs online? Es como el código que puse el otro día en Twitter. En vez de dar una URL de PasteBin y otra de DivGO, una URL de DivGO con un parámetro que identifique al PRG guardado en el servidor, o incluso un segundo parámetro para directamente ejecutar ese PRG enviado.


¿Qué te parece?


Un saludo

PiXeL en esta versión esto ya queda incluido. :)

Un saludo

panreyes

Guay, tomo nota :)


Igual intento hacer una prueba luego, a ver qué tal el invento xD

panreyes

Ahora es luego ya xD


He roto un poco DivGO otra vez con mis códigos complejillos xD


Por si quieres probarlo:
http://pastebin.com/9Q4y6nZF


Tiene estos errores:
fpg_boomkas; [/size]-- NOT FOUND[/color][/size]22 return load_sound(nombre,0); -- VARIABLE NOT DEFINED!145 break; -- NOT FOUND[/size][/font]

AmakaSt

Quote from: PiXeL on May 01, 2015, 06:37:46 PM
Ahora es luego ya xD


He roto un poco DivGO otra vez con mis códigos complejillos xD


Por si quieres probarlo:
http://pastebin.com/9Q4y6nZF


Tiene estos errores:
fpg_boomkas; -- NOT FOUND22 return load_sound(nombre,0); -- VARIABLE NOT DEFINED!145 break; -- NOT FOUND

Hola PiXeL,

El error del fpg_boomkas es porque utilizas la variable e intentas carga un fpg, DivGO no carga fpgs, carga carpetas que simulan ser fpg con imágenes png o map con nombres del 000.png al 999.png, por lo que dará error, aunque este error está saliendo en la línea equivocada debería de marcar la linea 11.

Sobre el error en return load_sound(nombre, 0); es porque la variable le habías puesto el tipo String delante, en DivGO no es necesario declarar el tipo de variable, es automático:

Function music_once(nombre); //Function music_once(string nombre);
Begin
        x=load_sound(""+nombre+".ogg",0);
    sound(x,100,100);
End

Y luego hay un error que tampoco está bien marcada la línea, dice que esta en la línea de break; pero se queja de que no se encontró, así que puede ser que sea la carga de un archivo incompatible o que no este en la ruta indicada.

Tengo que ver porque sigue fallando el marcado de errores, pensaba que esto ya lo tenía solucionado.
También tengo que revisar que ha pasado con lo de que compruebe los espacios entre variables: Function music_once(string nombre); //Debería haberse quejado el compilador aquí. :(

Me lo mirare antes de sacar la versión descargable.

Un saludo. :)

AmakaSt

#207
Versión 0.66 ya disponible para descargar.

P.D: mouse.browser sirve para ocultar el mouse en la pantalla (canvas) del juego, el valor por defecto es true. Esto se me había olvidado explicarlo. :P

AmakaSt

Nueva versión 0.68 ya disponible online, las novedades que incluye:

variables loading:
  - percent, percent_x, percent_y, percent_size, percent_color
  - progress, progress_x, progress_y, progress_size, progress_color

bugs y mejoras:
  - [ADD] ahora se puede restaurar las imágenes editadas desde el editor con la opción de borrar cambios
  - [ADD] pestañas de código, ahora puedes tener abierto 4 códigos sin necesidad de machacar los anteriores
  - [ADD] ahora el botón derecho del ratón desde el editor grafico pinta el segundo color seleccionado
  - [ADD] mejorado en el rendimiento de la lib de divgo
  - [ADD] ahora program también se incluye en la lista de procesos para acceder de forma rápida en el código
  - [FIX] las tablas no se interpretaban bien con write_int() si la posición era el nombre de una variable
  - [FIX] solucionado problema con el guardado de imágenes modificadas con el editor, ahora se guarda en la ruta especifica del proyecto
  - [FIX] salida de más de un bucle con break desde un mismo proceso, no guardaba la posición de salida con bucles for, from y while
  - [FIX] la sentencia return desde hace varias versiones atrás dejo de devolver valores
  - [FIX] problema con la posición de enlace de la lista de procesos y funciones cuando había comentarios /* */ que ignoraba dichas líneas comentadas
  - [FIX] solucionado varios bugs menores

Un saludo. :)

AmakaSt

Versión 0.70 de Div GO ya disponible online, las novedades:

funciones:
  - trim(), rtrim(), ltrim()

variables:
  - t_milliseconds, num_text, num_drawing, num_xdrawing, num_video, num_sound, num_object3d, num_light3d

bugs y mejoras:
  - [ADD] los puntos de control se mantienen en los gráficos a los que se les aplica efectos
  - [ADD] ahora también se aplican los puntos de control en los gráficos dentro del mode7 y scene3d
  - [ADD] sentencia continue
  - [ADD] el marcado de errores vuelve a funcionar y ahora se guarda con el código de la pestaña seleccionada
  - [ADD] ahora se mantiene guardado el fpg seleccionado en su respectiva pestaña
  - [FIX] arreglado varios problemas menores del ide
  - [FIX] corrección de salida al usar break combinado con varios if y distintos bucles en un único proceso
  - [FIX] no se podía guardar el prg de la pestaña seleccionada

Un saludo