5. Crear Terreno
Descripción
En esta actividad, crearás tu propio terreno.
Proyecto de ejemplo: https://staging.slnova.org/Yasmin/projects/691764/
Editar el Terreno
Con las funciones de StarLogo Nova versión 3, podemos usar bloques para crear montículos y cráteres, controlar mejor el color de los patches, y ajustar la iluminación del mundo.
Parte 1: Crear Colinas
Bloques de Código Útiles
| Bloque | Cajón | Uso |
|---|---|---|
![]() | Environment | Eleva un montículo en el terreno con una altura dada por la primera entrada y un ancho dado por la segunda entrada |
![]() | Environment | Crea un cráter con una profundidad dada por la primera entrada y un ancho dado por la segunda entrada |
![]() | Environment | Restablece los rasgos del Patch: se puede elegir entre restablecer el color, la altura, los rasgos personalizados, o todo. |
Código de Configuración

Agrega una nueva raza y nómbrala Terrain.

En la página World, crea 50 "Terrains" que se dispersarán, construirán un montículo, se dispersarán de nuevo, cavarán un cráter, y luego se eliminarán. Asegúrate de restablecer el terreno antes de crear los nuevos agentes para que cada vez que presiones setup, no construyas sobre las colinas anteriores.
¡Verifica tu Progreso!
Cuando hagas clic en setup, ¿notas una deformación en el terreno? Aumenta la altura de tus montículos para hacer el terreno más montañoso, o disminúyelos para hacerlo más ondulado.
Parte 2: Crear Lagos

Crea un nuevo widget de deslizador y renómbralo a Water Level. Redefine los límites para que vayan de -10 a 10.

Agrega una nueva raza y nómbrala Water.

En la página World, crea 1 Water. Establece su color a azul, su forma a Ocean Floor 1, y su tamaño a 40. Asegúrate de agregar un bloque delete everyone para que no se agreguen más agentes de agua innecesariamente cuando hagas clic en setup.

En la página Water, establece su z para que siempre sea el valor del deslizador "Water Level".
¡Verifica tu Progreso!
Cuando hagas clic en setup y muevas el valor del deslizador, ¿notas que aparecen lagos?
Parte 3: Colorear los Patches
Los Patches representan las cuadrículas que dividen el SpaceLand. SpaceLand está compuesto por 101x101 patches, y cada patch tiene coordenadas de -50 a 50 (inclusive), con el patch (0, 0) en el centro. Con las funciones de Patch en StarLogo Nova versión 3, los patches ahora pueden ejecutar código. Esto nos permite controlar fácilmente el color de los patches según su altura.
Camino de Tierra o Río

Crea un nuevo widget de botón y nómbralo "Color Terrain".

En la página Patch, establece el color de los patches a marrón/azul si su z está entre 1 y 2. Agrega un bloque que establezca el color de los patches a verde de antemano para que el color se restablezca cada vez que presiones Color Terrain y antes de hacer los cambios.
¡Verifica tu Progreso!
Cuando hagas clic en setup y luego en Color Terrain, ¿ves un camino/río en el terreno? Intenta ajustar el rango del camino de 1-2 a algo diferente y observa qué cambia.


Montaña Nevada

Continúa agregando a when "Color Terrain" pushed en la página Patch con bloques que establezcan los patches por encima de cierta altura para que tengan probabilidad de ser marrones o grises. A cierta altura por encima de eso, haz que los patches sean probablemente blancos.
Árboles del Bosque

En la página Patches, dentro de when "Color Terrain" pushed, agrega bloques que le den al patch un 5% de probabilidad de hacer crecer un árbol si está por encima del nivel del agua y no es azul (no es un río). Ajusta los rasgos del árbol para que tenga tu forma, tamaño y color preferidos. Aumenta el % de probabilidad para hacer los árboles más densos.
¡Verifica tu Progreso!
Haz clic en setup, ajusta tu deslizador a tu nivel de agua preferido, luego haz clic en Color Terrain.


Opcional: Colores RGB
Haz que los colores sean más variados o específicos con el bloque RGB.
Para hacer que el pasto sea tonos aleatorios de verde:
Para hacer que el camino de tierra sea tonos aleatorios de marrón rojizo:


Parte 4: Iluminación del Mundo
Bloques de Código Útiles
| Bloque | Cajón | Uso |
|---|---|---|
![]() | Environment | Establece el brillo de la luz direccional que ilumina el terreno a una intensidad dada por la entrada (por defecto tiene una intensidad de 1) |
![]() | Environment | Cambia el color de la luz que ilumina el terreno. |
![]() | Environment | Establece la dirección y el ángulo de la luz que ilumina el terreno. La dirección determina de dónde vendrá la luz (0 grados siendo desde la derecha y en sentido antihorario). El ángulo determina el ángulo con el que la luz incide sobre el terreno (90 grados siendo directamente sobre el terreno). |
Intensidad de Luz

En la página World, dale a la luz direccional una intensidad (el valor por defecto es 1). Prueba con proyección de sombras y sin ella y observa la diferencia.
Ciclo Día/Noche

En la página World, actualiza continuamente el ángulo de la luz direccional estableciendo su ángulo a clock mientras forever esté activado. Esto hace que la luz direccional rote a través del mundo con cada tick del motor, creando un efecto de noche y día.
Botones de Día/Noche

Crea dos nuevos widgets de botón de alternancia y nómbralos Daytime y Nighttime. Establece Daytime para que se active cuando el ángulo de la luz direccional sea 0 y Nighttime para que se active cuando el ángulo de la luz sea 180.

Colores de Atardecer/Amanecer

Durante el amanecer y el atardecer, la luz solar parece más anaranjada porque pasa a través de más atmósfera de la Tierra, dispersando más longitudes de onda azules y verdes. Para crear un efecto similar en la simulación, establece el RGB de la luz direccional a (255, 80, 10) cuando el ángulo de la luz sea 140 (justo antes del atardecer) y de vuelta a blanco (255, 255, 255) a 20 (justo después del amanecer).
¡Verifica tu Progreso!
Cuando tengas forever activado, ¿notas la diferencia entre el día, el atardecer y la noche? Intenta aumentar la velocidad del motor para acelerar el ciclo de noche/día.
Día

Atardecer

Noche

Extensiones Opcionales
Transición Gradual de Atardecer/Amanecer
Haz que la transición de color durante el atardecer y el anochecer sea gradual.
Usa variables, yield, bloques repeat, y el bloque RGB. En un cierto momento (ángulo de luz) disminuye/aumenta el valor verde y azul de la luz en cierta cantidad, yield, y luego repite muchas veces (asegúrate de mantener el rango RGB 0-255).
Comportamiento de Agentes Día/Noche
Agrega agentes que tengan diferentes comportamientos durante la Noche vs el Día. Por ejemplo: Pájaros que vuelan durante el día, pero duermen en un árbol durante la noche.
Usa los bloques while Daytime/Nighttime toggled en la página del agente.
Más Ideas
- Agrega un "reloj" a un databox que indique la hora según el ángulo de la luz direccional (ej: 12:00 cuando está directamente sobre el terreno, y aumentando en 1 cada 15 grados, hasta que vuelva a 0:00 después de 23:00)
- En lugar de un terreno montañoso, crea un terreno de playa arenosa con un nivel de agua que sube y baja con el tiempo para imitar las mareas del océano. Haz que los patches que se sumergen en el agua sean más oscuros que los que nunca son alcanzados por la marea.
- Puebla tu terreno con diferentes agentes, algunos siendo nocturnos, otros diurnos, con diferentes comportamientos durante la noche vs el día. Ejemplo: https://staging.slnova.org/Yasmin/projects/691770/
- En lugar de un terreno montañoso, crea un desierto, isla, bosque, etc.
- Haz un juego o simulación usando tu terreno como escenario.
Copyright 2024 MIT Scheller Teacher Education Program. Distribuido bajo la licencia Creative Commons CC BY-NC 4.0.





