Posiciones aleatorias

hola necesito ayuda quiero hacer un juego rpg en donde podemos crear un mundo y que salga un mundo aleatorio es como minecraft pero quiero saber como hacer que un objeto ejemplo un arbol o una roca que cuando creamos un mundo se unan en conjunto pero diferente como otro se puede? ayuda

Hola @Xavier_Perez en pilas están las funciones azar().


      this.pilas.azar(0,10);
      this.pilas.azar_desde_lista([elemento_1, elemento_2,...])
      this.pilas.azar_excluyendo_un_valor(1,10,3);

La primera saca un número del 1 al 10, la segunda saca un elemento de la lista y la ultima es como la primera pero va a excluir al número 3.
Ahora bien, si quisieras que una ciudad se genere al azar, podrías guardar una lista con las posiciones de cada casa.

casas_a_ubicar = ["casa_1", "casa_2", etc....]
posiciones_de_las_casas = [pos_1_x, pos_1_y, pos_2_x, pos_2__y,  pos_3_x, pos_3_y, etc....]

Luego desde el iniciar en el código de la escena haces algo como:

let num_azar = this.pilas.azar(1,2);
if (num_azar == 1) {
    this.pilas.clonar_en("casa_1", pos_1_x, pos_1 _y);
    this.pilas.clonar_en("casa_2", pos_2_x, pos_2 _y);
    this.pilas.clonar_en("casa_3", pos_3_x, pos_3 _y);
    //y así sucesivamente
}
if (num_azar == 2) {
    this.pilas.clonar_en("casa_1", pos_2_x, pos_2 _y);
    this.pilas.clonar_en("casa_2", pos_3_x, pos_3 _y);
    this.pilas.clonar_en("casa_3", pos_1_x, pos_1 _y);
    //y así sucesivamente
}

En el primer condicional, si el número al azar es 1, estoy mandando a la casa 1 a la posición 1. Y en el segundo condicional, si el número es 2, estoy mandando la casa 1 a la posición 2.
Hay maneras de optimiza esto como usar un SWICH o un BUCLE FOR. Pero la esencia es la misma.
Como verás, hacer un mundo totalmente al azar será muy fastidioso ya que debes repetir este proceso para cada elemento del mundo. Habrá algunos elementos que puedas usar la función:

this.pilas.clonar_en_posicion_al_azar()

Pero el mundo de un RPG debe guardar una estructura, imagínate que los árboles se crean en medio del río. O que las casas se ponen sobre la ruta.
Minecraft no es un RPG por lo que no le importa y por eso, a veces, verás aldeas que están a medio construir, árboles que estan sobre el río y esas cosas.

oh gracias amigo por la ayuda

1 Like