Page 38 of 92

Re: Test de mi gameEngine en processing.

PostPosted: Mon Aug 06, 2018 6:15 pm
by Hokuto7
Me parece buena idea lo del concurso de remake, pero eso sera cuando este lista la libreria porque todavia le quedan algunos retoques,aunque va por buen camino. :)

Por cierto he estado mirando el codigo de pilasengine 2, y te tienes que descargar el source code,lo abres con el Brackets y te metes en la carpeta pilasengine del source code,en esa carpeta hay mas carpetas.

Las mas interesantes son la de actores y la de escenas,hay que mirar el codigo de actor_base y escena_base,aunque puedes mirar lo que quieras,esta todo escrito en javascripts y no creo que tengas problemas en entenderlo.

Te paso un enlace por si te interesa mirar el codigo y tal vez encuentres algo interesante para copiarlo o para coger ideas y meterselo a tu libreria.

https://github.com/pilas-engine/pilas-engine/releases

Re: Test de mi gameEngine en processing.

PostPosted: Tue Aug 07, 2018 7:07 am
by erkosone
Ok hokuto, dame un poco mas de tiempo que no veas XD.. anoche y ahora por la madrugada he estado liado con la formula del angulo de rotación del srpite, sabes que pasa? que como la rotación se calcula desde una clase que no es un sprite tengo que referenciar todo como si se hiciera desde el sprite y en algunos casos los angulos dan negativos y se visualizan mal, pero ya tengo la corrección, es la misma que una que postee en este foro para gemix hace unos años en la libreria de fisica que hice.

Creo que para esta noche o quizá mañana lo tenga listo y pasamos a otro tema ;)

Gracias por el apoyo tio.

Re: Test de mi gameEngine en processing.

PostPosted: Tue Aug 07, 2018 11:31 am
by Hokuto7
Ok,no te preocupes y sin prisa. :)

Por cierto te paso un video donde se explica mejor como ver el codigo interno de pilas engine 2,el video lo ha hecho el creador de pilasengine,solo dura 5 minutos.

https://www.youtube.com/watch?v=ASKYT7OoLos

Por ultimo comentarte que mi apoyo lo vas a tener siempre y personalmente te estoy cogiendo aprecio y tambien al resto de gente del foro.

Ademas que aunque tengamos distintos puntos de vista y discrepamos en muchas cosas para mi esto es positivo,porque cada uno pensamos diferente y eso beneficia a la libreria.Cada uno tiene sus ideas de como debe ser la libreria y eso hace que se mejore con el tiempo,si todos pensaramos igual pues la libreria no mejoraria y seguiria siempre igual.

Bueno dejo de enrrollarme y animo y sin prisa. ;)

Re: Test de mi gameEngine en processing.

PostPosted: Tue Aug 07, 2018 8:22 pm
by erkosone
Parecia facil XD..

Ya lo tengo, para el FORWARD que es el primer modo de desplazamiento ya esta conseguido..

Tio son 4 modos internos de programarlo XD.. con o sin rotacion, y dentro de esas dos, con o sin cuerpo fisico.. para que todo quede abstraido al programador tela marinera jajaja..

tenenseño el codigo preliminar del modo FORWARD..

Source Code (Javascript) [ Download ] [ Hide ]
  • move(type_){
  •         switch(type_){
  •             case FORWARD:
  •                 switch(this.fst){
  •                     case 0:
  •                         if(!this.rotation){
  •                             var angle = _id_actual_sprite_runing_.getAngle(this.points[this.pos].x, this.points[this.pos].y);
  •                             _id_actual_sprite_runing_.advance2(this.vel, angle);
  •                            
  •                         } else{
  •                             var angle = _id_actual_sprite_runing_.getAngle(this.points[this.pos].x, this.points[this.pos].y);
  •                             if(_id_actual_sprite_runing_.body_created){
  •                                 _id_actual_sprite_runing_.setAngle(angle);
  •                                 _id_actual_sprite_runing_.advance2(this.vel, angle);
  •                             } else{
  •                                 _id_actual_sprite_runing_.angle = angle;
  •                                 _id_actual_sprite_runing_.advance(this.vel);
  •                             }
  •                         }
  •                        
  •                         var d = dist(_id_actual_sprite_runing_.x, _id_actual_sprite_runing_.y, this.points[this.pos].x, this.points[this.pos].y);
  •                         if(d <= this.lastDist){
  •                             this.lastDist = d;
  •                         } else{
  •                             if(_id_actual_sprite_runing_.body_created){
  •                                 _id_actual_sprite_runing_.translate(this.points[this.pos].x, this.points[this.pos].y);
  •                             } else{
  •                                 _id_actual_sprite_runing_.x = this.points[this.pos].x;
  •                                 _id_actual_sprite_runing_.y = this.points[this.pos].y;
  •                             }
  •                             this.lastDist = 999999999999;
  •                             this.fst = 10;
  •                         }
  •                         return false;
  •                         break;
  •                     case 10:
  •                         if(this.pos+1 < this.points.length){
  •                             this.pos ++;
  •                             this.fst = 0;
  •                             return false;
  •                         } else{
  •                             return true;
  •                         }
  •                         break;
  •                 }
  •                 break;



Vale.. el codigo es bastante feo.. pero funciona bien jeje.. haber si termino los 3 modos restantes y lo publico y pasamos a los nivels ;)

Re: Test de mi gameEngine en processing.

PostPosted: Wed Aug 08, 2018 11:11 am
by Hokuto7
Madre mia,cuanto codigo,menos mal que estas tu para hacer eso,si tuviera que hacerlo yo me volveria loco. :lol:

Re: Test de mi gameEngine en processing.

PostPosted: Sun Aug 12, 2018 9:39 am
by erkosone
Buff.. esto es demasiado dificil jajajaja.. el tiempo que tengo ahora mismo disponible es limitado, estoy en un proyecto grande en el trabajo y estamos actualizandolo ahora en verano y me consume todo el tiempo practicamente, voy a rehacer la función de los caminos simplificando el codigo y desechando por ahora la opcion de la rotación, se podrá hacer con una función aparte, por que si hay que tomarla en cuenta en los calculos de avance la verdad es que todo se vuelve oscuro y comienzan a tronar rayos y centellas :lol:

Aún así es una sugerencia buenísima Hokuto, la voy a dejar bastante decente y para cuando coja las vacaciones me siento y la rehago de nuevo con rotación, esto requiere de una buena sesión de pizarra y diseño del algoritmo de avance con o sin física y con o sin rotación.

Me pongo manos a la obra en reescribir el codigo.

Re: Test de mi gameEngine en processing.

PostPosted: Sun Aug 12, 2018 10:11 am
by Hokuto7
No te preocupes Erkozone,si no puedes meter lo de la rotacion pues no pasa nada,tal y como esta ahora esta bastante bien.Este es un comportamiento que no corre prisa,lo puedes dejar para el final si quieres. ;)

Lo de la rotacion no lo tiene ningun engine,se me ocurrio porque creo que quedaria muy chulo,pero si no se puede pues no hay problema. :cry:

Entonces ahora que!,vas a rehacer el codigo de los caminos,te vas a poner con la estructura de niveles o quieres que te vaya diciendo las nuevas funciones que se me han ocurrido,algunas de estas funciones van unidas con la estructura de niveles para que quede mas sencillo. :angel:

Tambien estan algunas funciones que ya vienen en processing pero que dijistes que le ibas a dar un toque div para que queden mas chulas y sencillas. :0'

Tal vez prefieres tomarte un descanso y retomarlo en vacaciones o despues de vacaciones,entonces dime que hacemos ahora,lo dejamos por un tiempo o seguimos con otras cosas mas sencillas. 8-)

Como siempre te digo no hay prisa,la libreria puede tardar en estar lista,desde mi punto de vista es mejor tomarselo con calma y presentar la libreria cuando este completa. :)

Re: Test de mi gameEngine en processing.

PostPosted: Sun Aug 12, 2018 10:39 am
by erkosone
jeje, Hokuto soy demasiado cabezta como para pasar a algo mas sencillo XD..

No me gusta darme por vencido facilmente, estoy re escribiendo el codigo de los caminos, ahora está mucho mas ordenado y sencillo, y sobre todo mas eficiente, sabes que pasa.. que intento reutilizar codigo siempre que puedo, pero para este tipo de cosas tan especificas es mejor crear codigo nuevo y limpio por que no siempre se adapta lo que tienes al 100% con lo que quieres conseguir nuevo. :)

Nada que me he puesto a rehacer las formulas del getAngle() y del advance() con y sin fisica pero esta ver sin tener en cuenta el angulo de orientación del sprite, así primero lo muevo sin mas y luego lo roto como dios manda..

Ya tengo el codigo escrito para los modos FORWARD y FORWARD_LOOP y queda muy limpio, me encanta como me ha quedado jeej.. creo que en una media hora o así tendré el resto y entonces miraré la rotación que ahora si que va a ser algo simple simple..

Por ciento.. le he añadido una nueva feature.. la propiedad "pause" que si la pones a true el sprite no continua su camino, y cuando la pones a true continua donde se quedó :0' :0'

Re: Test de mi gameEngine en processing.

PostPosted: Sun Aug 12, 2018 11:42 am
by Hokuto7
Veo que eres tan cabezota como yo. :lol:

Lo del pause es estupendo,esto te lo dije al principio que era el stop,fantastico. :claphands:

Una cosa que te comento,he estado rotando el sprite de forma manual con advance(),pero hay un fallo,he utilizado una variable para cambiar el angulo cada x tiempo pero no funciona,solo funciona cambiando directamente la variable angle.

Este funciona
Code: Select all
 function Miobjeto(){
    var objeto = new Sprite();
    objeto.graph = img[1];
    objeto.x = 320;
    objeto.y = 240;
    objeto.angle = 0;
    objeto.frame = function(){
        objeto.advance(1);
        if(frameCount >= 100){
            objeto.angle += 1;
            if(objeto.angle >= 90){
                objeto.angle = 90;
            }
        }
        screenDrawText("Arial",28,"fps: "+frameCount,CENTER,320,420,255,255);
    }
}


Este no funciona
Code: Select all
 function Miobjeto(){
    var objeto = new Sprite();
    objeto.angulo = 0;
    objeto.graph = img[1];
    objeto.x = 320;
    objeto.y = 240;
    objeto.angle = objeto.angulo;
    objeto.frame = function(){
        objeto.advance(1);
        if(frameCount >= 100){
            objeto.angulo += 1;
            if(objeto.angulo >= 90){
                objeto.angulo = 90;
            }
        }
        screenDrawText("Arial",28,"fps: "+frameCount,CENTER,320,420,255,255);
    }
}

Re: Test de mi gameEngine en processing.

PostPosted: Sun Aug 12, 2018 12:04 pm
by erkosone
el metodo advance() ya rota el Sprite Hokuto, para esto preparé el advance2() que avanza sin rotación en un angulo especificado como parametro.

Veo que estas probando ya cosillas.. bien! gracias tio! la verdad es que así se depura mucho mas facil y rapido.

Te publico la nueva libreria con la corrección del sistema de caminos ya implementada :D

Espero que te guste, voy a ver como le añado ahora la rotación y listos!!

Las teclas para cambiar de movimineto son: A S D F

Ahora el cambio de movimiento es instantaneo, antes el sprite debia alcanzar el punto destino antes del cambio de trayectoria ;)