Div Games Online en Html5 y Javascript

Todo aquello que no está relacionado con Gemix Studio ni con la programación DIV en general.

Re: Div Games Online en Html5 y Javascript

Postby AmakaSt » Wed Jan 28, 2015 3:31 pm

erkosone wrote:Vaya.. esto no me lo esperaba, te estas tomando en serio este Div Games Online.
Si dejas bien apañado el 3D de tu motor seguro que lo va a usar mucha gente, felicidades por el logro!


Gracias Erkosone. Puse unas capturas en Facebook y Twitter que muestra el funcionamiento.
Llevaba tiempo intentando hacer un raycasting en canvas, pero no me parecía muy optimo, lo mismo pasa con el mode7, es muy lento. Aparte que de Div2 lo que nunca me gusto, ni llegue a usar, fue el mode8.
Es la primera versión con 3D real, asi que faltan muchas cosas aun, pero era un paso necesario e importante. :)

Un saludo.
User avatar
AmakaSt
 
Posts: 402
Joined: Fri Oct 03, 2008 10:00 pm

Re: Div Games Online en Html5 y Javascript

Postby shao » Wed Jan 28, 2015 5:24 pm

Hola AmakaSt, ¿tienes incluidas las funciones online?, si es así, ¿las funciones son las mismas que la librería de gemix?.
User avatar
shao
 
Posts: 6034
Joined: Wed Jun 17, 2009 4:51 pm

Re: Div Games Online en Html5 y Javascript

Postby AmakaSt » Thu Jan 29, 2015 10:42 pm

shao wrote:Hola AmakaSt, ¿tienes incluidas las funciones online?, si es así, ¿las funciones son las mismas que la librería de gemix?.


Hola Shao,

Si tiene funciones online (supongo que te refieres para crear juegos online o mmorpg) y no son las mismas que las de Gemix, si se parecen seria por casualidad. :P

En Div GO tienes funciones para enviar por GET variables al servidor y poder guardar y recuperar dicha información desde una BBDD. También tienes funciones de manejo de sesiones y de sockets (aunque este último no he podido testearlo, requiere de un servidor con la configuración debida para probarlo).

Y ahora sí... ya esta online la versión 0.62 con 3D. Este es el enlace al ejemplo de scene3D: http://www.divgo.net/index.php?ejemplo=5 (también está en la lista de ejemplos) :)

Un saludo.
User avatar
AmakaSt
 
Posts: 402
Joined: Fri Oct 03, 2008 10:00 pm

Re: Div Games Online en Html5 y Javascript

Postby shao » Fri Jan 30, 2015 12:28 am

Yo con el online no estoy muy puesto, en gemix casi ni lo he podido testear por el bug que existe, si no es mucho pedir, ¿podrías decirme que funciones son necesarias para crear una sesión?.
User avatar
shao
 
Posts: 6034
Joined: Wed Jun 17, 2009 4:51 pm

Re: Div Games Online en Html5 y Javascript

Postby AmakaSt » Fri Jan 30, 2015 10:50 am

shao wrote:Yo con el online no estoy muy puesto, en gemix casi ni lo he podido testear por el bug que existe, si no es mucho pedir, ¿podrías decirme que funciones son necesarias para crear una sesión?.


Las funciones de sesión:
- load_session(OFFSET variable);
- save_session(OFFSET variable);
- find_session(OFFSET variable); //devuelve true o false, si existe la variable de sesion
- delete_session(OFFSET variable);

Las funciones que envía una variable por GET para guardar datos al servidor:
- load_external_data(nombre de archivo);
- save_external_data(nombre de archivo, OFFSET variable);

Las que envía paquetes:
- open_socket(url ws o wss(segura));
- get_socket(id socket);
- send_socket(id socket, OFFSET variable);
- close_socket(id socket);

Y ya de paso también... Guardar datos en local, en el navegador:
- load_local_storage(OFFSET variable);
- save_local_storage(OFFSET variable);
- find_local_storage(OFFSET variable); //devuelve TRUE o FALSE, si existe la variable guardada
- delete_local_storage(OFFSET variable);

El juego Super Paf!, guarda y carga datos locales a modo ejemplo. Las funciones de sesión funcionan de forma similar al de las de guardado local, la única diferencia es que la variable de sesión se pierde al cerrar el navegador, esto sirve para mantener al usuario activo en el juego.
También hay ejemplo de uso de las funciones load_external_data() y save_external_data(), que envía un GET a un archivo php (a este ejemplo solo le falta crear la BBDD con MySQL en local para completarlo).

Un saludo.
User avatar
AmakaSt
 
Posts: 402
Joined: Fri Oct 03, 2008 10:00 pm

Re: Div Games Online en Html5 y Javascript

Postby shao » Fri Jan 30, 2015 6:36 pm

Ok, ¡gracias AmakaSt!.
User avatar
shao
 
Posts: 6034
Joined: Wed Jun 17, 2009 4:51 pm

Re: Div Games Online en Html5 y Javascript

Postby AmakaSt » Sat Jan 31, 2015 5:19 pm

Ya está disponible para descargar, en las 2 versiones: Desktop para Windows y la normal para configurar con localhost.

Un saludo.
User avatar
AmakaSt
 
Posts: 402
Joined: Fri Oct 03, 2008 10:00 pm

Re: Div Games Online en Html5 y Javascript

Postby AmakaSt » Tue Mar 17, 2015 11:34 pm

Ya disponible online la versión 0.64, aquí las novedades: :)

funciones:
- load_object3d()

variables locales:
- angle_x, angle_y, angle_z

struct scene3d:
- focus, distance

bugs y mejoras:
- [FIX] start_scene3d() ahora se puede crear varios scene3d en distintas regiones
- [CHANGE] el quinto parámetro de la función object3d, pasa de ser el numero de región para ser el grosor de línea cellshading
- [CHANGE] reescrito el mode7, ahora funciona similar a Div salvo por algún cambio como en el uso de las locales (y, z)
- [FIX] las light3d al crear los objetos antes de las luces no se le aplicaba la luz
- [FIX] al añadir textura con texture_in_object3d después de una luz, no se aplicaba la luz sobre dicha textura
- [ADD] manejo de ángulos para mode7 y scene3d en las funciones advance() y xadvance()
- [DEL] eliminada la struct camera3d
- [CHANGE] start_scene3d() con dos parámetros menos, ahora el ancho y alto de las texturas es automático
- [FIX] solucionado varios bugs del compilador
- [ADD] carga de objetos 3d en los formatos .obj, .dae y .wrl

Un saludo.
User avatar
AmakaSt
 
Posts: 402
Joined: Fri Oct 03, 2008 10:00 pm

Re: Div Games Online en Html5 y Javascript

Postby g1tp111ricard8 » Wed Mar 18, 2015 1:40 am

:claphands: Te felicito, me ha gustado bastante la demostracion del object3d al igual que lo del modo 7.

Saludos.
User avatar
g1tp111ricard8
 
Posts: 695
Joined: Tue Dec 02, 2008 7:47 pm
Location: InteractiveStation

Re: Div Games Online en Html5 y Javascript

Postby AmakaSt » Wed Mar 18, 2015 12:08 pm

g1tp111ricard8 wrote::claphands: Te felicito, me ha gustado bastante la demostracion del object3d al igual que lo del modo 7.

Saludos.


Gracias g1tp111ricard8. :)

Aquí dejo un código de ejemplo, que hace uso de angle_y y angle_z (angle) para manejar las vistas con el ratón y controles como son en los juegos en primera persona.

Code: Select all
// Pruebas de compilador online Div GO
// Php + Html5 + Canvas + Javascript + Three.js lib
// by J. Manuel Habas Millán

program ejemplo_3d;
global
    tex, obj1, obj2, luz1, luz2;

private
    uz = 200, ang = 0, fig1, fig2;

begin
    tex = load_fpg("graficos/texturas");
   
    set_mode(640, 400);
    screen_color(#424);

    set_fps(60, 0);
   
    text_color = #ccc;
    text_size  = 50;
   
    write(0, 5, 10, 3, "CURSORES: moverte por el escenario");
    write(0, 5, 30, 3, "MOUSE: mover el punto de vista");

    //inicia scene3d sin esto no funcionaran las funciones object3d() ni light3d()
    start_scene3d(0, tex, 3, 0); //numero, file, graph, ancho, alto, region
   
    //crea objetos en escena
    obj1 = object3d(1, 1, #ff0, 100, 0, -100, 50, 200); //tipo, wireframe, color, alpha, trazado, x, y, z
    obj2 = object3d(2, 1, #000, 100, 1, 100, 50, 200);  //tipo, wireframe, color, alpha, trazado, x, y, z

    //carga y crea modelo 3d en escena
    fig2 = load_object3d("objetos3d/monster.dae", 0, #fff, 0, 0, 0);  //archivo, wireframe, color, x, y, z

    move_object3d(fig2, 0, 0, 200, 90000, 0, 0); //id, x, y, z, angle_x, angle_y, angle_z

    //aplica una textura a objeto
    texture_in_object3d(obj1, tex, 4); //id, file, graph
    texture_in_object3d(obj2, tex, 2); //id, file, graph
    texture_in_object3d(fig2, tex, 3); //id, file, graph

    //modifica el ancho, alto o largo de los objetos
    modify_object3d(fig2, 100, 1000, 1000, 1000);

    //crea luces en escena
    luz1 = light3d(100, rgb(200, 200, 255), 10000, 100, 100, -100); //intensidad, color, distancia, x, y, z
    luz2 = light3d(200, rgb(0, 255, 128), 1000, -100, 200, -100);
   
    jugador(0, 100, 200); //x, y, z
   
    scene3d.light = 0;
    scene3d.alpha = 0;
    scene3d.distance = 10;
   
   loop
        ang += 400;
       
        move_object3d(obj1, -100, 50, uz, 0, ang, 0); //id, x, y, z, angle_x, angle_y, angle_z
        move_light3d(luz2, 200, -100, 200, uz - 100); //id, intensidad, x, y, z
     
        if (key(_z)) delete_object3d(all_object3d); end
        if (key(_y)) object3d(rand(0, 4), rand(0, 1), rgb(rand(0,255), rand(0,255), rand(0,255)), rand(0, 100), 0, rand(-200, 200), rand(0, 250), rand(-200, 200)); end
      
        if (key(_esc)) exit("Amaka Soft 2015", 1); end
       
        frame;
    end
end

process jugador(x, y, z);
private
   reten = 0;
   
begin
    scene3d.camera = id;

   loop
        if (key(_left)) xadvance(angle + 90000, -10); end
        if (key(_right)) xadvance(angle + 90000, 10); end
        if (key(_up)) advance(10); end
        if (key(_down)) advance(-10); end
       
        //angle y angle_z funcionan igual
        angle += (mouse.x - 320) * 10; //¡AAAARGH, BUG LOCALIZADO con angle_z!
   angle_y -= (mouse.y - 200) * 10;

        if (angle_y > 20000) angle_y = 20000; end
        if (angle_y < -20000) angle_y = -20000; end
       
        if (mouse.left and reten == 0) disparo(x, y-20, z, angle); reten = 10; end

      reten--; if (reten < 0) reten = 0; end
      
        frame;
    end
end

process disparo(x, y, z, angle);   
begin
   graph = 2;
    size  = 20;
   ctype = c_scene3d;
   
   loop
        advance(25);
       
        flags++; if (flags > 3) flags = 0; end
        alpha--; if (alpha < 0) break; end
       
       frame;
    end
end


Un saludo.
User avatar
AmakaSt
 
Posts: 402
Joined: Fri Oct 03, 2008 10:00 pm

PreviousNext

Return to Offtopic

Who is online

Users browsing this forum: No registered users and 19 guests