(Scratch) Movimiento Horizontal y Rozamiento
En el anterior tutorial Scratch: Caída libre y Salto comenzábamos la serie dedicada a la plataforma de fisicas introduciendo conceptos como la detección de colisiones, caída libre y saltos..
Hoy vamos a ampliar el tutorial introduciendo movimiento horizontal y rozamiento:
A medida que vamos añadiendo más y más funcionalidad y los programas van creciendo, cada se hace mas complicado obtener una imagen total del programa, así que
¡Vayamos por partes!
Contenido:
- Nuevas variables: “aceleracion”, “rozamiento” y “velocidad_maxima”
- Aceleración: movimiento a diestra y siniestra.
- Rozamiento: frenaaando el movimiento.
- Centinelas: atravesar objetos es sólo para fantasmas.
Nuevas Variables: “aceleracion”, “rozamiento” y “velocidad_maxima”
Lo primero que vamos a hacer es definir 3 nuevas variables para el objeto Cuadrado. Creamos las variables marcándolas como “* solo para este objeto” y las convertimos en deslizadores usando el menú que aparece al pulsar con el botón derecho del ratón sobre el display de la variable en el escenario, si tienes dudas puedes consultar el anterior tutorial
Inicializamos las variables al inicio de nuestro programa (“al presionar
Aceleración: movimiento a diestra y siniestra.
Utilizaremos las teclas de
La estrategia seria como sigue:
- si
= falso -
si se pulsa
y si la velocidad_x es menor que la velocidad máxima - entonces incrementar la velocidad_x (acelerar)
-
si se pulsa
- sino (tocando derecha = verdadero)
- fijar la velocidad_x = 0 (frenar)
Al listado anterior se le suele llamar pseudocódigo, veamos como quedarían en bloques de código de Scratch:
Aceleración derecha
Aceleración izquierda
Análogamente tendríamos la implementación de la aceleración a la izquierda. Ten en cuenta que el valor de velocidad_x es un numero negativo cuando se mueve a la izquierda.
NOTA: Usamos una fracción de la aceleración para poder adaptarla al tamaño de la pantalla, ya que el ancho del escenario es de 480 puntos (240×2)
Rozamiento: frenaaando el movimiento.
Ahora vamos a implementar algo que frene nuestro objeto, cuando este en contacto con el suelo y no se estén pulsando las teclas
- Si no están pulsadas
o - si esta tocando el suelo
- reducimos la velocidad en función del rozamiento del suelo (rozamiento/20)
- sino (esta en el aire)
- reducimos la velocidad en función del rozamiento del aire (rozamiento/200)
- si esta tocando el suelo
Como puedes ver hemos implementado el rozamiento del aire dividiendo el valor del rozamiento por 200 en lugar de 20, es decir el rozamiento del aire frena el objeto 10 veces menos que en el suelo.
Centinelas: atravesar objetos es sólo para fantasmas.
Recuerdas como habíamos utilizado el detector “interior abajo” para evitar que el Cuadrado atravesase el suelo. De manera similar vamos a utilizar los detectores “interior izquierda” e “interior derecha” para evitar que atraviese los bordes laterales.
En el siguiente tutorial estos centinelas nos servirán para evitar que el Cuadrado atraviese otros objetos o pisos intermedios. ¿Te apetece añadir otras paredes y pisos intermedios? Pues permanece atento al próximo tutorial de Scratch.
¡¡Salud2 compañero programador de Scratch!!
Latest posts by José Manuel Tejeda (see all)
- [Libro] Mindset: La Actitud del Éxito de Carol Dweck - June 20, 2017
- Nuevo Grupo de Desarrollo Personal a través del Entrenamiento Mental - May 19, 2017
- 9 Actitudes Mindfulness para una vida mas plena y consciente… - May 16, 2017
Leave a Reply
Want to join the discussion?Feel free to contribute!