17. Hazlo tuyo: fuegos artificiales¶
Paso 5/5 de práctica 3 "Fuegos artificiales"
El programa está completo. Ahora es tu turno de tomar decisiones para diferenciarlo. Ordena las ideas de menor a mayor dificultad.
Color¶
El código ya usa colorMode(HSB). Experimenta con los valores de
saturación y brillo de cada chispa para conseguir efectos distintos:
chispas pálidas (baja saturación) o muy brillantes (brillo 100).
Haz que las chispas cambien de tono según su vida, usando map()
como viste en la práctica 1 Color que cambia con el ratón:
// El tono va del naranja (30) al rojo (0) conforme la chispa se apaga
let tonoChispa = map(ch.vida, 0, 255, 0, 60);
stroke(tonoChispa, 90, 100, ch.vida);
Comportamiento¶
Cambia el fondo de background(0, 0, 0, 40) a
background(240, 30, 10, 40) para un cielo oscuro con toque azulado.
Haz que la potencia del cohete dependa de la posición vertical del clic: cuanto más abajo hagas clic, más sube el cohete:
vy: map(mouseY, 0, height, -4, -10)
Lanza un cohete automáticamente cada 90 fotogramas, además de los
cohetes manuales. Puedes usar frameCount como viste en la
Entrega y reto extra de la práctica 1 de la práctica 1:
// En draw(), antes del bucle de cohetes:
if (frameCount % 90 === 0) {
cohetes.push({
x: random(width),
y: height,
vx: random(-2, 2),
vy: random(-10, -6),
tono: random(360),
explotado: false,
chispas: []
});
}
Ampliación¶
Añade una propiedad tipo a cada cohete ("estrella" o
"cascada") y cambia la distribución de velocidades de las chispas
según el tipo. En "cascada" las chispas tienen vy siempre
positiva, de modo que caen hacia abajo desde el punto de explosión:
// En explotar(), según el tipo:
vy: c.tipo === "cascada" ? random(1, 5) : random(-4, 4)
Entrega¶
Cuando tu composición esté terminada:
Guarda el proyecto en el editor de p5.js (necesitas cuenta para guardarlo online).
Copia el enlace del proyecto (botón Share en el editor).
Entrega el enlace respondiendo a las preguntas de la ficha:
Título de tu composición |
|
¿Qué diferencia notaste al usar un objeto en lugar de variables sueltas? |
|
¿Qué variación añadiste en «Hazlo tuyo»? |
|
¿Qué fue lo más difícil de esta práctica? |
|
¿Qué añadirías si tuvieras más tiempo? |
Resumen de lo aprendido en esta práctica¶
Elemento |
Para qué sirve |
|---|---|
|
Agrupa propiedades relacionadas en un objeto literal. |
|
Accede o modifica una propiedad con notación de punto. |
|
Añade un objeto nuevo al final del array. |
|
Elimina el elemento en la posición |
|
Hace las chispas más transparentes conforme se apagan. |
|
Booleano que actúa como interruptor de un solo uso en |
|
Se ejecuta cada vez que se hace clic; aquí lanza un cohete nuevo. |
Bucle al revés |
Recorrer el array de |
Función auxiliar |
Extraer lógica repetida a una función hace |