Meta: Añade sonido y muchos colores mientras la espiral crece.
Vocabulario: note
to spiral :length :pitch :whatcolor
pd
if :length > howbig [stop]
setc :whatcolor
setpensize howthick
fd :length rt angle
carefully [note :pitch 3] [ ]
spiral :length + howtight :pitch - 1 :whatcolor + 1
end
to reset
cg
end
Notas Puedes añadir sonido al proyecto con el comando note.
- Note recibe dos entradas. La primera fija el tono y la segunda fija la duración de la nota (en décimas de segundo). Los sonidos no son muy fuertes, así que posiblemente necesites subir el volumen de los parlantes. Si el tono es demasiado alto o demasiado bajo, el oído humano no lo puede escuchar.
- Podemos colocar dos o más variables en la línea que nombra el procedimiento. Todas estas variables pueden cambiar su valor en la llamada recursiva (donde el nombre del procedimiento es usado nuevamente dentro del procedimiento).
- En este proyecto, añadimos una variable llamada pitch (tono) y la usamos como primera entrada a note para controlar el tono de la nota. (Podríamos llamarla cualquier cosa, pero el llamarla pitch nos recuerda su función).
- También añadimos una variable llamada whatcolor. Nota que todavía necesitamos un control whatcolor, y que usamos su nombre en el botón spiral. Esto fija el color inicial al valor del control whatcolor.
Pero en el procedimiento en sí, cuando colocamos dos puntos antes de whatcolor dentro del procedimiento, la computadora ignora el control whatcolor. En vez de esto, incrementa el valor de whatcolor en 1 cada vez que spiral es llamado. (Quizá encuentres esto menos confuso si cambias el nombre, ya sea a la variable whatcolor o al control whatcolor, pero los hemos mantenido aquí iguales para demostrar que es possible!)
- Spiral necesita tres entradas en este proyecto. Debemos incluir tres entradas en el botón spiral.
La primera entrada fija la longitud de la primera línea.
La segunda entrada fija el tono del la primera nota.
La tercera entrada fija el color inicial.
- También debemos asegurarnos de incluir tres entradas en la última línea donde spiral es llamada.
En la llamada recursiva, note decrece en valor. Las notas se vuelven más graves mientras la espiral se hace más grande.
- ¡Pero necesitamos ser cuidadosos! El tono no puede ir por debajo de 1, si lo hace obtendremos un mensaje de error. Así que colocamos el comando note dentro de un comando carefully. (Revisa Espirales 2). Si el valor de pitch se hace menos que 1, carefully realiza la segunda entrada. En este caso, la segunda entrada es simplemente una lista de instrucciones vacía. Esto significa que no pasará nada. Pero permite a la espiral seguir creciendo en silencio sin producir un mensaje de error.
Si creas una espiral grande con este proyecto, podrás notar que las notas se vuelven demasiado graves para ser audibles, y luego cuando la espiral continúa creciendo lentamente, de repente se acelera. Cuando esto sucede, sabemos que el valor de pitch ha caído por debajo de 1, así que el comando note ya no se realiza y la espiral ahora crece más rápidamente ya que no necesita detenerse por la duración de cada nota.
¿Qué pasa si?
¿Cuál es el tono más alto y el más bajo que puedes escuchar? (En el Centro de Comandos, escribe diferentes comandos note así note 120 5.)
Desafío
Cambia el botón y la última línea del procedimiento para que las notas se vuelvan más agudas en lugar de más graves.
|