Cómo hacer un videojuego de plataformas en Scratch 3 - 1(Gravedad, fricción, colisiones, movimiento)

Cómo hacer un videojuego de plataformas en Scratch 3 - 1(Gravedad, fricción, colisiones, movimiento)

hola a todos y bienvenidos a este vídeo en el que explicaremos si recrearemos algunas mecánicas de un videojuego de plataformas en scratch antes que nada los videojuegos de plataformas son un género de videojuego en el que tenemos a un personaje caminando o corriendo sobre una plataforma y adicionalmente se le pueden agregar enemigos objetos a coleccionar un movimiento horizontal de fondo cabe recalcar que casi todas estas mecánicas son muy sencillas de recrear e implementar en scratch entonces el día de hoy les enseñaré a recrear el movimiento vertical horizontal y las colisiones sin nada más que decir empecemos lo primero que tendremos que hacer es borrar este objeto que no nos sirve de nada vamos a dibujar un nuevo objeto ya que dentro dibujaremos a nuestro personaje en este caso yo no quiero hacer un personaje complejo así que simplemente voy a dibujar un cuadrado ya que tengan a su personaje pueden empezar a dibujar su escenario o plataforma entonces vamos a pintar un nuevo objeto ya que ustedes lo que harán será dibujar su escenario o plataforma en este caso de igual manera yo voy a hacer una plataforma simple una plataforma aquí abajo para probar el piso otra plataforma por aquí para probar la colisión vertical y una plataforma aquí arriba para probar la colisión vertical pero coleccionando hacia arriba ya que tenemos diseñados nuestro personaje y nuestro escenario empezaremos a programar el movimiento vertical y el movimiento horizontal del personaje para esto vamos a más bloques y crearemos primero el movimiento vertical y a la vez el movimiento vertical estará compuesto de dos bloques llamados colisión vertical y gravedad entonces creamos estos bloques y los ponemos dentro del movimiento vertical [Música] ponemos también la gravedad y empezaremos a programar la gravedad y la colisión vertical la gravedad es una función muy simple que lo que hace es modificar la velocidad del personaje entonces para esto tendremos que crear la variable de velocidad [Música] creamos la variable velocidad y también crearemos la variable velocidad de nx ya que también estaremos usando esta variable [Música] entonces cada vez que se ejecuta la función gravedad lo que hará es sumarle a la variable velocidad en menos 1 ahora empezaremos a programar la colisión vertical la colisión vertical es lo que ocurrirá cuando el personaje esté tocando la plataforma por ejemplo el personaje se encuentra aquí salta y cae aquí si se dan cuenta así es que acá aquí lo que ocurre es que el personaje tiene medio cuerpo metido en la plataforma y para esto sirve la colisión vertical para que el personaje solamente pueda colisionar encima de la plataforma [Música] entonces si el personaje está tocando el escenario y la velocidad de nye es menor que cero es decir si el personaje está cayendo y a la vez está tocando el escenario vamos a sumar a la posición en que el valor de uno y vamos a repetir esto hasta que esté tocando de la plataforma y ahora tendremos que crear otra variable llamada edad sobre la plataforma [Música] esta variable la usaremos para saber si el objeto está sobre la plataforma o no está sobre la plataforma entonces una vez que se termine de ejecutar este bucle lo que hará es cambiar el valor de la variable sobre la plataforma así y ahora crearemos un código similar pero este código nos servirá en el caso de que el personaje salte y golpee la plataforma por debajo en el caso de que el personaje golpee la plataforma por debajo quiere decir que está saltando y por ende la velocidad de nieve es mayor que cero y como está golpeando la plataforma por debajo en vez de sumar uno a la posición en que vamos a restar uno a la posición en que quitamos esto y al finalizar ambos casos vamos a darle a la velocidad el valor de cero ya que tenemos la colisión vertical vamos a crear un evento para incorporar el movimiento vertical jalamos el por siempre ya que dentro ponemos el movimiento vertical vamos a probar esto haciendo click en la bandera vale lo más importante de todo esto es que al iniciar el movimiento vertical vamos a cambiar la posición de iu para esto vamos a sumar a la posición de y la velocidad en y finalmente antes de hacer clic en la bandera tenemos que fijar la velocidad en acero para que no nos ocurra ningún error entonces fijamos la velocidad en cero y ahora si hacemos clic sobre la bandera además voy a inicializar la posición en cero para ver cómo queda el efecto varias veces vamos a aumentar el valor de g para ver si ocurre algún error y como ustedes pueden ver aquí cada vez que hago clic en la bandera el objeto cae y se incrustó un poco dentro de la plataforma para posteriormente salir lentamente esto sucede porque se está ejecutando este bucle que lo que hace es tomarle a la posición en uno hasta que no esté tocando la plataforma y si ustedes se fijan eso es lo que está ocurriendo ahora ya que el personaje está un píxel de distancia de la plataforma y en realidad nunca le está tocando para hacer que este evento ocurra al instante lo que haremos será evitar la colisión vertical y le daremos a ejecutar al instante haremos lo mismo con un movimiento vertical y con esto ya tenemos terminada la colisión y el movimiento vertical ahora empezaremos a programar el movimiento horizontal y para esto crearemos sus respectivos bloques le pondremos por adelantado el ejecutar al instante y el movimiento horizontal tendrá dentro de sí a la fricción ya la colisión horizontal también le pondremos ejecutar al instante y ya lo que hará la función fricción es reducir la velocidad en x hasta llegar a 0 para esto vamos a cambiar la velocidad en x y le daremos el valor de la misma velocidad en x pero multiplicado por 0.8 esto lo que hace es reducir el valor de x al 80% es decir si x será 10 entonces lo reduce a 8 y ese 8 lo reduce otra vez y otra vez a través hasta llegar a cero ahora empezaremos a programar la colisión horizontal la colisión horizontal es prácticamente la colisión vertical pero con los valores de x en vez de y entonces copiamos este bloque y le cambiamos la velocidad de inia por la velocidad en x hacemos lo mismo con esto [Música] y aquí también le ponemos sumar a x menos 1 quitamos esto y finalmente cambiamos esta variable por la variable de x entonces si el personaje está dirigiéndose a la izquierda en otras palabras la velocidad en x es menor que cero y toca el escenario lo que hará este bucle es sumar a x1 hasta que no esté tocando el escenario y de igual manera si la velocidad de nx es mayor que 0 en otras palabras se está dirigiendo a la derecha y toca el escenario lo que hará este bucle es restarle a x menos 1 hasta que no esté tocando el escenario y al finalizar esto pues vamos a fijar la velocidad en x al valor de 0 finalmente ponemos estos dos bloques dentro del movimiento horizontal ponemos el movimiento horizontal dentro del bloque principal y finalmente vamos a crear un bloque para que el personaje o el jugador pueda moverse por la plataforma es decir que puede modificar la velocidad de nx o la velocidad en otras palabras moverse a la derecha a moverse a la izquierda y saltar entonces vamos a crear aquí el bloque quitamos esto y lo que sucederá si es que se está tocando la flecha derecha es que vamos a sumar a la velocidad en x1 y si es que se está presionando la flecha va mos a restar a la velocidad en x menos 1 de igual manera si es que se está presionando la tecla espacio vamos a sumar hay 10 pero además de presionar se la tecla espacio tiene que cumplirse otra condición para esto jalamos este conector y la condición es la siguiente entonces para que el jugador pueda saltar tiene que cumplirse la condición de que se esté presionando la tecla espacio y además la variable sobre la plataforma sea igual a sí y si se cumple esta condición entonces vamos a sumar a la velocidad en 10 y además vamos a darle a la variable sobre la plataforma el valor de no ya que una vez que se realiza el salto el personaje no estará tocando la plataforma vamos a probar el juego para ver cómo nos ha quedado y una cosa importante que nos habíamos olvidado es actualizar o cambiar la posición en x dentro de la función del movimiento horizontal entonces vamos al movimiento y vamos a sumar en x la velocidad en x vamos a poner esto por aquí y con esto ya tendríamos el juego terminado para poder pasar este obstáculo vamos a cambiar este valor a 15 de esta manera el salto será más grande ya que se realizará con más fuerza como pueden ver ya podemos pasar estos obstáculos y las colisiones es tanto en horizontal como en vertical son colisiones perfectas intentamos saltar aquí y como pueden ver las colisiones también contra las plataformas que se encuentran encima del personaje son colisiones perfectas hasta que llegó esta pequeña introducción acerca de los juegos de plataformas aprovecho para informarles que dentro de algunas semanas iniciará la serie de vídeos tutoriales de cómo hacer un juego de plataformas en scratch intentando recrear el videojuego super mariobros si es que te interesa la idea darle like al vídeo comparte y suscríbete es que no lo has hecho hasta que llega el vídeo de hoy y conmigo será hasta la próxima [Música]

Noticias relacionadas