Test de mi gameEngine en processing.

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

Re: Test de mi gameEngine en processing.

Postby Hokuto7 » Sun Apr 21, 2019 3:46 pm

Madre mia!,cuantos fallos hay!.A mi cuando hice el juego no tuve ningun problema.

Eso te pasa por usarla tanto,dejala descansar un poco no vaya a ser que explote.Lo mejor es que el proximo juego que hagas,hazlo con carton,a nintendo le va muy bien con el carton labo. :lol:
User avatar
Hokuto7
 
Posts: 1396
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en processing.

Postby erkosone » Sun Apr 21, 2019 3:56 pm

Esto me pasa por hacer juegos xD..

La verdad es que estoy poniendo a prueba todas las capacidades de la libreria.. y oye.. tu sugerencia de los path.. no me cansare de agradecertelo.. todavia no lo tengo añadido a java.. pero voy a por ello ya mismo por que lo voy a usar en el juego jeje..

También he estado hablando con ray sobre la raylib para Android.. y bueno.. me ha contado que ha añadido un script para compilar para Android directamente desde windows, así que es muy probable que retome el por en C++ y lo lleve al siguiente nivel jeje..

Por trabajo no sera no..
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en processing.

Postby Hokuto7 » Sun Apr 21, 2019 6:57 pm

Cuando quieras mas sugerencias no hace falta que me lo digas,te pasas por la seccion de sugerencias de gemix que tienes para aburrirte. :o

No veo que se haya actualizado raylib a la 2.5,preguntale cuando va a arreglar lo del sonido y asi podras actualizar la gamelibzeroC++,que es lo unico que le falta para hacer cositas con ella.
User avatar
Hokuto7
 
Posts: 1396
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en processing.

Postby erkosone » Sun Apr 21, 2019 8:55 pm

El dia 25 me dijo que la publica.
Ha cambiado todo el sistema de audio.. haber que tal funciona cuando lo publique.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en processing.

Postby erkosone » Sun Apr 21, 2019 10:13 pm

Añadidos los metodos para sprites:

+ brakeVx(float percent);
+ brakeVy(float percent);
+ brakeVelocity(float percent);

Todo lo que avancé en la versión C++ está de vuelva en la versión java con processing ;)
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en processing.

Postby erkosone » Tue Apr 23, 2019 12:49 am

Y como dijo Picasso.. Los listos copian, los genios roban.
Añadidos eventos de colisión a la libreria exactamente igual que unity.. pero ahún mas sencillos si toca..

Estoy pensando en la mejor manera de publicar esto en la libreria.. ya que para un uso interno yo lo tengo ordenado de una manera bastante sencilla para mi, pero no para todo el mundo, se aceptan sugenrecias..

Lo que esta claro es que lo que hace falta en el lenguaje de juegos es algo simple que permita crear simples cajas o circulos y dejarlos en el escenario a modo de "event watcher", de tal forma que cuando se produzca la colisión entre este objeto y el objeto indicado por parametros, este objeto "event watcher" lance un evento dentro del juego que sea facilmente capturable y que permita procesar la información de la colisión.

Por poner un ejemplo, creamos una casa, la añadimos a una escena en nuestro juego, ahora simplemente creamos un evento rectangulo y lo colocamos en la puerta de la casa.. y a esperar que el ID que hemos indicado por parametros al crear el evento pase por encima.. o el tipo de proceso también podría ir bien..

Los eventos que genera este "event watcher" son los siguientes:

.onCollisionStart()
.onCollisionExit()
.onCollisionStay()

Casualmente los mismos que genera Unity XD..

El concepto de esto es tan simple como lo siguiente:
Source Code (Java) [ Download ] [ Hide ]
  • new event(535, 330, 100, 40, "casa 1", idPersonaje);


Y el codigo para recojer los eventos del juego es este:
Source Code (Java) [ Download ] [ Hide ]
  • void eventManager(String name, int type){
  •     switch(name){
  •         case "casa 1":
  •             if(type==COLLISION_EXIT){
  •                
  •             }
  •             break;
  •     }
  • }


El codigo del event_watcher() es el siguiente, se aceptan sugerencias eccetera.. ya que esto de los eventos es algo relativamente nuevo para mi, pero realmente veo que es la manera mas ordenada de trabajar en proyectos grandes.
También hay que reconocer que si Unity lo gestiona así.. será por que esta ampliamente contrastado que es una buena solución.

Que os parece?
las tres constantes para ver el tipo de evento recivido son:
Source Code (Java) [ Download ] [ Hide ]
  • final int COLLISION_ENTER = 1;
  • final int COLLISION_EXIT  = 2;
  • final int COLLISION_STAY  = 3;


Y el codigo por curiosidad de quien se tercie sobre como gestiono las colisiones y lanzo los eventos mediante este sistema es el siguiente:
Source Code (Java) [ Download ] [ Hide ]
  • class event extends sprite{
  •     int st = 0;
  •     int w, h;
  •     String eventName;
  •     boolean lastCollisionStatus = false;
  •     boolean nowCollisionStatus = false;
  •     sprite id_;
  •     event(float x, float y, int w, int h, String eventName, sprite id_){
  •         this.x = x;
  •         this.y = y;
  •         this.w = w;
  •         this.h = h;
  •         this.eventName = eventName;
  •         this.id_ = id_;
  •     }
  •     //......................................
  •     void frame(){
  •         switch(st){
  •             case 0:
  •                 setGraph(newGraph(w, h, BLACK));
  •                 createBody(TYPE_BOX, TYPE_SENSOR);
  •                 st = 10;
  •                 break;
  •             case 10:
  •                 nowCollisionStatus = collision(id_);
  •                 if(nowCollisionStatus!=lastCollisionStatus){
  •                     if(nowCollisionStatus==true){
  •                         onCollisionEnter();
  •                     }else{
  •                         onCollisionExit();
  •                     }
  •                 }else{
  •                     if(nowCollisionStatus==true){
  •                         onCollisionStay();
  •                     }
  •                 }
  •                 lastCollisionStatus = nowCollisionStatus;
  •                 break;
  •         }
  •     }
  •     //......................................
  •     void onCollisionEnter(){
  •        eventManager(eventName, COLLISION_ENTER);
  •     }
  •     //......................................
  •     void onCollisionExit(){
  •         eventManager(eventName, COLLISION_EXIT);
  •     }
  •     //......................................
  •     void onCollisionStay(){
  •         eventManager(eventName, COLLISION_STAY);
  •     }
  •     //......................................
  • }



Personalmente me parecen mucho mejones los nombres:
COLLISION_START
COLLISION_PERSISTS
COLLISION_END
Que opinais sobre estos nombres?

Una imagen que explique toda esta movida seria la siguiente:
You do not have the required permissions to view the files attached to this post.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en processing.

Postby Hokuto7 » Tue Apr 23, 2019 10:11 am

Te estas metiendo en camisa de once varas jeje.

El nombre de eventManager() mejor llamalo trigger() que es como se llama en unity y unreal o algo mas pequeño, y las sugerencia que pides sobre esos metodos de como hacerlo pues dejalo como esta en unity y que sea lo mas corto posible y super simplificado.

Lo que si veo y esto es ya obligatorio es que metas el metodo initialize() para tener todo mas ordenado porque cada vez le estas metiendo mas cosas a la clase y se esta volviendo un poco engorroso y si a esto le añadimos los switch() obligatorios se vuelve mas engorroso.

El switch() tiene que ser usado solo cuando se necesite y no todo el rato,en serio....Con tantos metodos que veo ahora el switch() empieza a chirriarme bastante.

Por cierto muy buena idea lo de los trigger(),pero esto es algo que se usa mucho en clickteam fusion y contruct 2 desde la epoca de lo dinasaurios XD.

Otra cosa,tal y como lo veo implementado creo que tendras que hacer un pequeño video para explicar bien esto.
User avatar
Hokuto7
 
Posts: 1396
Joined: Mon Aug 28, 2017 10:14 am

Re: Test de mi gameEngine en processing.

Postby erkosone » Tue Apr 23, 2019 12:21 pm

Gracias por tu opinion hokuto, si, montaré un video sencillo o un ejemplo en codigo simple para que se vea la idea, es simple simple. :)
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en processing.

Postby erkosone » Thu Apr 25, 2019 2:15 pm

Con motivo de poner a prueba en el mundo real al motor para hacer juegos 2d que ando desarrollando voy a participar en un game jam con un sencillo minijuego..

El motivo es ver realmente si el motor está a la altura de las circunstancias, y la verdad es que el participar en el game jam me está forzando a dejar el motor de jugos bien pulido.
A disfrutarlo!

Cuando termine el concurlo publicaré el juego con source incluido. ;)
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Test de mi gameEngine en processing.

Postby erkosone » Sat Apr 27, 2019 10:56 pm

Hokuto tienes el codigo de los path a mano? estoy buscandolo para portarlo a processing pero no lo encuentro :shock:
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

PreviousNext

Return to Offtopic

Who is online

Users browsing this forum: No registered users and 6 guests