From Test-Scratch-Wiki
Si toca un borde, rebotar | |
si toca un borde, rebotar | |
Categoría | Movimiento |
Forma | Apilable |
El bloque si toca un borde, rebotar es un bloque de movimiento y un bloque apilable. El bloque comprueba si el objeto seleccionado está tocando el borde de la pantalla, y en ese caso, apunta al objeto en una dirección que refleje a la original. Usa el borde como un espejo para establecer la dirección de salida. El bloque también empujará al objeto fuera del borde de la pantalla.
Usos de ejemplo
- Evitar que un objeto salga parcialmente de la pantalla (habitualmente, seguido del bloque apuntar en direción () para evitar que la dirección se refleje)
- Reflejos
- Juegos como Pong
- Permitir a los objetos botar fuera de la pantalla
- Cuando el usuario quiere que un objeto determinado esté en la pantalla pero sin tocar el borde
al presionar bandera verde por siempre mover (10) pasos si toca un borde, rebotar end
- También funciona para juegos como fish
al presionar bandera verde por siempre girar a la derecha (número aleatorio entre (-10) y (10)) grados mover (3) pasos si toca un borde, rebotar esperar (0.01) segundos end
Código alternativo
Este bloque puede ser replicado detectando si el objeto está más allá del borde de la pantalla, y cambiando su dirección en este caso:
si <(240) < ([valor absoluto v] de (posición en x))> entonces apuntar en dirección ((0) - (dirección)) end si <(180) < ([valor absoluto v] de (posición en y))> entonces apuntar en dirección ((0) - (dirección)) end
De todos modos, este código alternativo no es perfecto, ya que no empuja al objeto hacia fuera del borde de la pantalla. Además, como la dirección del objeto no cambia según su forma real sino según sus coordenadas, objetos con disfraces no centrados alrededor del centro del disfraz pueden quedarse atascados en el borde de la pantalla en vez de rebotar de él.
Bloque rebotar
Algunos usuarios en el foro de sugerencias han pedido un bloque de rebotar::motion
generalizado, que permita a los objetos rebotar al encontrarse con otro objeto o con colores.[1][2][3] Sin embargo, esto ha sido rechazado, dada la ambigüedad en la implementación de este bloque.[4][5]