From Test-Scratch-Wiki

Translate: - English - Español - 한국어 
La forma general de un bloque apilable.

Un bloque apilable es un bloque diseñado para poder conectarse tanto por arriba como por abajo a otros bloques. La mayoría de bloques de Scratch son apilables, y están presentes en todas las categorías salvo en los Bloques operadores y los Bloques de PicoBoard.

Proceso de ejecución

Cuando se conectan varios bloques apilables formando un script, sus instrucciones se ejecutan en orden de arriba a abajo. Toda la pila se ejecuta en un fotograma. Por ejemplo, en el siguiente script:

reiniciar cronómetro
mover (10) pasos
mover (10) pasos
mover (10) pasos
mover (10) pasos
mover (10) pasos
fijar [tiempo transcurrido v] a (cronómetro)

la variable tiempo transcurrido mostrará que la pila se ha ejecutado en 0 segundos. Así pues, aunque hay cinco bloques de movimiento, no se observa al objeto hacer cinco movimientos de 10 pasos, sino un único movimiento de 50 pasos. Desde luego, un script especialmente largo puede necesitar más tiempo para ejecutarse, por lo que el tiempo transcurrido podría ser mayor.

Tomemos ahora el siguiente código. Aunque parece equivalente, solo que utilizando un bucle, esta vez no se ejecuta en un solo fotograma:

reiniciar cronómetro
repetir (5)
  mover (10) pasos
end
fijar [tiempo transcurrido v] a (cronómetro)

En este caso sí se sucederán cinco movimientos independientes de 10 pasos cada uno, y el script necesitará cinco fotogramas para ejecutarse. La variable tiempo transcurrido debería mostrar 0.166 segundos (1/6, o 5 fotogramas a 30 por segundo). Esto sucede por cómo funciona el bucle de repetición: cada iteración se ejecuta en un fotograma distinto. De hecho, la única manera de evitar este comportamiento es colocando el bucle dentro de un bloque personalizado y marcando la casilla "Correr instantáneamente".

Bloques apilables con retardo

Algunos bloques apilables, desde luego, sí fuerzan una pausa antes de que el siguiente bloque se ejecute. Bien fijando un tiempo en segundos o en pulsos:

o bien esperando hasta que se dé algún evento o condición:

Bloques

Hay 77 bloques apilables en Scratch:

  • ...

Forma

Los bloques apilables están diseñados de manera similar a una pieza de puzle: la parte superior tiene una hendidura, y la inferior un saliente. Debido a esta forma, se pueden conectar unos a otros, y los scripts se pueden extender indefinidamente.

Esta forma les permite conectarse en cualquiera de estas areas:

al presionar bandera verde
decir [¡Hola Mundo!] por (2) segundos
  • Encima o debajo de otros bloques apilables:
ir a x: (0) y: (0)
bajar lápiz
mostrar
decir [¡Adiós!] por (2) segundos
detener [este programa v]
por siempre
  si <(puntos) = (0)> entonces
    enviar [game over v]

Uso

Dado que estos bloques se pueden apilar entre ellos, se usan prácticamente en todas partes en un script. Cualquier script debe contener al menos un bloque apilable para ser funcional. Un ejemplo:

al presionar bandera verde
subir lápiz
ir a x: (0) y: (0)
apuntar en dirección (0 v)
bajar lápiz
repetir (4)
  mover (100) pasos
  girar a la derecha (90) grados
end
decir [¡Cuadrado terminado!] por (2) segundos
detener [este programa v]

Obsérvese que los bloques apilables constituyen todos los comandos del script.