Page 41 of 92

Re: Test de mi gameEngine en processing.

PostPosted: Sun Aug 19, 2018 9:43 am
by Hokuto7
Hola Erkozone,ayer estuve toda la tarde intentando crear una estructura de niveles con gemix, como yo creo que deberia ser y he conseguido algo cercano a lo que yo quiero,te voy a pasar el ejemplo que he hecho con gemix para que lo estudies y ahora te voy a comentar como lo he hecho.

He creado dos procesos que se encarga cada uno de los niveles y otros cuatro que son objetos para cada nivel y en el proceso principal he puesto el codigo para salir de la aplicacion si se pulsa escape.

En el proceso nivel 1 le he puesto que si pulsas enter haga un let_me_alone,delete_text,nivel()2 y un break para matar el proceso,el problema es que el let_me_alone me mataba el proceso principal y no podia salir de la aplicacion,entonces estuve mirando en el foro si habia alguna forma de que el proceso principal ignorara el let_me_alone.

Encontre algo,y lo que encontre fue el .
Source Code (Gemix) [ Download ] [ Hide ]
  •      signal(all_process,s_kill);
  •  

Este hace lo mismo que el let_me_alone,pero lo bueno es que se puede usar con otra funcion que es esta.
Source Code (Gemix) [ Download ] [ Hide ]
  •      signal_set_behaviour(id,s_kill,s_behaviour_ignore);
  •  

Esta funcion sirve para que el proceso que le digas ignore el signal,gracias a esto pude hacer que el proceso principal ignorar el signal.

Luego esta el pulsar la tecla "R",con esta tecla reiniciamos el nivel,le puse lo mismo que en la tecla enter,solo que en vez de pasar al otro nivel pues me cargue el mismo nivel,le he puesto al
objeto que se pueda controlar con la teclas para moverlo y que cuando reinicias pues se vea que vuelve a la posicion inicial

Resumiendo,hay que usar signal() y signal_set_behaviour(),lo bueno de esta segunda funcion es que no solo sirve para ignorar el s_kill ,si no ,que tambien sirve para ignorar el s_sleep,s_freeze,s_wakeup y mas cosas,mira la documentcion txt de gemix para ver mas sobre esta funcion.

Pero lo bueno de signal_set_behaviour(),es que con esto podemos hacer el pause que tu quieres,podemos congelar todos los procesos y usar esta funcion para que los procesos que tu quieras ignoren la señal.
---------------------------------------------------------------------------------------------------------
Comentarte que sigo pensando que lo mejor es crear una clase especial solo para los niveles y que esta clase tenga funciones para pasar de nivel,reiniciar el nivel,pausar el nivel,hacer un fade en el nivel etc...

Te pongo el codigo hecho con gemix para que lo estudies,es poco codigo y lo he intentado hacer lo mas facil posible.
https://drive.google.com/file/d/1cFa29h ... sp=sharing

Re: Test de mi gameEngine en processing.

PostPosted: Tue Aug 21, 2018 11:19 am
by Hokuto7
Hola Erkozone,te a servido el ejemplo que te he hecho con gemix.

Re: Test de mi gameEngine en processing.

PostPosted: Tue Aug 21, 2018 3:23 pm
by erkosone
Si tio, estoy discurriendo como simplifico esta manera de hacer niveles, estoy en la fase de diseño en pizarra.
Supongo que este fin de semana ya tendré algo para pasarte y enseñarte el sistema haber que te parece ;)

Re: Test de mi gameEngine en processing.

PostPosted: Tue Aug 21, 2018 4:16 pm
by Hokuto7
Estupendo,no tengas prisa. :)

Dime que te parece esta funcion que te puse.
Source Code (Gemix) [ Download ] [ Hide ]
  •  signal_set_behaviour(id,s_kill,s_behaviour_ignore);
  •  


Creo que es buena idea para el sistema de pausa que tenias pensado,con esto puedes hacer que los objetos que tu quieras no les afecte el congelado,la verdad es que esta funcion esta muy bien,yo la descubri este sabado cuando me puse a programar el ejemplo de niveles.

Re: Test de mi gameEngine en processing.

PostPosted: Tue Aug 21, 2018 4:45 pm
by erkosone
ya te digo, pero esto de la pausa tiene un problema tio..
la fisica..
tengo que mirar muy a fondo como hacer una pausa con el motor de fisicas, haber.. esta tirado.. dejo de actualizar el engine y listos. pero me quedo sin colisiones..
entonces tengo que crear un subEngine de fisica que entre en acción cuando la pausa está activa.. esto es un poco hardcore pero se puede hacer.. si no tubiera que tener en cuenta la fisica estaria completamente hecho ya, es una chorrada..

hostia...
se me acaba de ocurrir jaja.. cuando hago una pausa cojo el cuerpo fisico y hago una copia de su estado y lo destruyo.. y cuando quito la pausa creo de nuevo el cuerpo tal y como estaba antes de la pausa.

Voy a investigar este camino, creo que es el mejor y mas acertado. :)

Re: Test de mi gameEngine en processing.

PostPosted: Tue Aug 21, 2018 5:00 pm
by Hokuto7
Me parece muy buena idea :) ,de todas formas a mi con que congele todo me basta,yo no necesito que quede nada activo.

Aunque tu si lo quieres,porque supongo que querras hacer algunas cosas muy profesionales y que queden interesantes,pero como te he dicho para mi con congelar todo de golpe ya me quedo mas que contento.

Por si te sirve,tanto contruct2 como unity,para pausar tienes que poner el time scale a 0,siempre esta en 1.0 para que los juegos funcionen bien y si lo reduces se va ralentizando el juego.

Por ejemplo,en contruct 2 que es el que mas conozco,se puede poner el time scale del juego a 0 para pausar todo lo que hay en pantalla,pero si quieres puedes manipular de forma independiente el time scale de cada objeto,y poner a 0 el objeto que tu quieras y lo demas seguira en movimiento.

Re: Test de mi gameEngine en processing.

PostPosted: Wed Aug 22, 2018 10:29 am
by erkosone
Pues si que me ha servido de idea si, aunque tienes razon, voy a hacer un sistema de pausa sencillo, que pause todo a una y ya esta, solo quedará funcionando el proceso principal y el proceso que realiza la llamada a pause() si es que se hace desde un proceso.

Gracias por la info tio!

Re: Test de mi gameEngine en processing.

PostPosted: Wed Aug 22, 2018 11:02 am
by Hokuto7
De nada. ;)

Es lo mejor,hacer un sistema de pause sencillo que congele todo de golpe,y el que quiera algo mas elaborado pues que se lo haga el mismo.

Una preguntita sobre brackets,como ya sabes cuando ejecuto el codigo se activa el navegador,pero le he puesto como navegador principal el firefox,sin embargo siempre se ejecuta con chrome,hay alguna forma de poder elegir el navegador con el que se ejecuta el codigo.

Re: Test de mi gameEngine en processing.

PostPosted: Thu Aug 23, 2018 1:28 pm
by erkosone
Hola hokuto. Pues la verdad es que no tengo ni idea. Supongo que deberia poderse pero no lo se. Yo solo uso crome y me funciona muy bien la.verdad.

Re: Test de mi gameEngine en processing.

PostPosted: Thu Aug 23, 2018 4:05 pm
by Hokuto7
He leido que solo se puede usar con chrome,ahora estoy descargando otras versiones de brackets y otros editores,porque la que tengo solo me da problemas.

Cada vez que cargo un ejemplo de tu libreria no me carga a la primera y tengo que estar saliendome del programa y cargando dos o tres veces hasta que funciona.

Por cierto ya he hecho funcionar las funciones de sonido,pero tendras que meter las de keypressed,keyreleassed,mouse pressed etc..Porque como estan hechas en processing es un poco rebuscado. ;)