Página 1 de 1

Aleatoriedad

Publicado: Dom Nov 08, 2015 6:13 am
por FRANJO
¿Es posible en BGE que un objeto aparezca en diferente sitio cada vez que arranca el juego???

Intención: búsqueda de objetos, pero que no se sepa previamente donde están.

Seria necesario poder limitar la ubicación para que no se salga del entorno de búsqueda o establecer una serie de coordenadas (tabla) donde aleatoriamente podría estar.

Re: Aleatoriedad

Publicado: Dom Nov 08, 2015 7:32 am
por soliman
Poder se puede..
No es nada fácil explicarlo pues entra en juego el mezclar diferentes bloques de lógica entre sí, pero poder, se puede.
Hay dos tipos de RANDOM
Hay uno en Sensores (Sensors) y otro en Actuadores (actuators).

La primera sería el activar el Random de Actuators (como ejemplo) desde un simple plano, y que al presionar una tecla (o cualquiere otro tipo de sensor) se active el random y le ponga una valor aleatorio.
Antes hay que `ponerle al plano una property de por ejemplo un Integer con valor cero.

Esto haría que se cambiaran los valores (del 1 al 9 en este caso), de la propiedad del plano.
Un vez tenemos estos valores, se tratarís de poner varios EMPTY en la escena, con una propiedad cada uno....
Luego sigo.

Re: Aleatoriedad

Publicado: Dom Nov 08, 2015 7:40 am
por soliman
Luego se trata de poner emptys en las zonas donde quieres que aparezca el objeto.
A cada empty se le pone una propiedad y un valor cero.
Y se añade un sensor de propiedad que al tener un cierto valor (en este caso para el primero el 1, para el segundoserá el 2, etc) se active el objeto (Edit Object < add object

Re: Aleatoriedad

Publicado: Dom Nov 08, 2015 7:51 am
por soliman
Y ahora la parte mas liosa, pues se trata de poner un sensor de tipo PROPERTY al PLANO donde se le indica que cuando el valor sea 1 le ponga un valor de 1 a la propiedad punto1 ( o sea que le pondrá el mismo valor que tenga (PLANO) y por lo tanto con un sensor de propiedad donde le pongamo que cuando su valor sea uno, añada el objeto a la escena ya tendremos configurada la primera parte, luego solo hay que repetir lo mismo en el empty segundo y con valor de propiedad 2, etc, etc.

Re: Aleatoriedad

Publicado: Dom Nov 08, 2015 8:05 am
por soliman
Blend
Hay que presionar la barra espaciadora varias veces..
He puesto el valor del aleatorio de 1 a 5 por lo que en pocos clics tendría que salir todos los objeto.
Les he puesto un valor de vida de 120 (dos segundos) y luego ya desaparecen.
Una vez que han salido y desaparecido ya no vuelve a cargar el mismo,

Re: Aleatoriedad

Publicado: Dom Nov 08, 2015 9:37 am
por FRANJO
Muchas gracias. Es espectacular y muy complicado.

Yo en mi parco conocimiento había intentado por otro medio: un objeto se mueve aleatoriamente al inicio del juego, lo hace siempre diferente pero no he sabido como detenerlo, si esta función se pudiera hacerla funcionar por un tiempo limitado el objeto quedaría siempre en un sitio diferente al inicio del programa.

Re: Aleatoriedad

Publicado: Dom Nov 08, 2015 10:03 am
por soliman
Con un DELAY que le puedes poner a cada movimiento e indicandole los segundos que tiene que durar..
60 delays son un segundo

Re: Aleatoriedad

Publicado: Dom Nov 08, 2015 10:10 am
por FRANJO
Gracias, muy bueno, Asi queda mucho mas sencillo, no hay que tocar ninguna tecla, y el solo se ubica en el entorno, ahora hay que jugar con los desplazamientos para que quede dentro del espacio previsto.

Re: Aleatoriedad

Publicado: Dom Nov 08, 2015 5:24 pm
por juani
Buenas, no te compliques con los desplazamientos, haz el cubo dinamic y selecciona las aristas del plano y las extruyes en el eje z, así el cubo no se saldrá de la escena.Por cierto al extruir las cuatro aristas, estas crearán una cara, la seleccionas y la eliminas pulsando x faces.

Re: Aleatoriedad

Publicado: Dom Nov 08, 2015 5:26 pm
por soliman
juani escribió:Buenas, no te compliques con los desplazamientos, haz el cubo dinamic y selecciona las aristas del plano y las extruyes en el eje z, así el cubo no se saldrá de la escena.Por cierto al extruir las cuatro aristas, estas crearán una cara, la seleccionas y la eliminas pulsando x faces.
No creo que le funcione así... seguramente las traspasará.

Re: Aleatoriedad

Publicado: Dom Nov 08, 2015 5:32 pm
por juani
Buenas Soliman, he probado lo que habeis hecho y con el cubo dinamico funciona bien.
Saludos

Re: Aleatoriedad

Publicado: Dom Nov 08, 2015 5:33 pm
por FRANJO
Eso ya lo hice, pero hay un pequeño problema si los desplazamientos son muy grandes 0.45 o mas de x e y, el objeto atraviesa todo lo que le pongas delante, hace caso omiso de la opción dinamic y no respeta las colisiones, es extraño. Si los desplazamientos son del menos de 0.40 parece que respeta las colisiones. Valores con los que funciona sin atravesar ningún objeto +- 0.35 para x , +- 0.35 para y, la frecuencia a 15.

Re: Aleatoriedad

Publicado: Dom Nov 08, 2015 5:51 pm
por juani
Yo le he hecho en el blend que has mandado tu y el el de Soliman y me va bien, no le pongas colisiones. Solo selecciona el cubo y lo pones dinamic no selecciones colission bounds.
Ha de ser dinamic para que no tenga rotaciones.

Re: Aleatoriedad

Publicado: Sab Nov 21, 2015 5:32 am
por FRANJO
Bueno después de muchas pruebas, y con problemas de escape del entorno, que no se porque a veces lo hace bien en otras salta las vallas, o se mete en el interior de objetos que hay en el juego, he encontrado otra manera sencilla de hacer aparecer aleatoriamente un objeto, aun así surge un problema y es que aunque el objeto quede invisible a efectos de colisiones o iteraciones permanece con lo que hay que añadir un desplazamiento para que quede fuera del entorno. He intentado hacerlo editando objeto pero no me ha funcionado correctamente. Los objetos aparecen siempre en el mismo sitio, se podría también añadir algún pequeño movimiento pero no lo veo muy efectivo por lo dicho anteriormente. Lo dejo para si le sirve a alguien en algún juego lo pueda utilizar. He añadido un contador de objetos activos.

Re: Aleatoriedad

Publicado: Sab Nov 21, 2015 7:50 am
por soliman
Descargado.. y luego lo miro, que ahora estoy a tope.
Saludos