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]

Véase también

Referencias