Aprende a programar desde cero con Scratch | Stephan Haewß | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Aprende a programar desde cero con Scratch

teacher avatar Stephan Haewß

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción

      1:16

    • 2.

      Abre e instala Scratch

      3:20

    • 3.

      Descripción general de la interfaz de usuario

      22:45

    • 4.

      Primer juego, primer código

      11:38

    • 5.

      Mejora del movimiento del globo

      9:25

    • 6.

      El evento en el que se hace clic

      4:03

    • 7.

      Reproduce el sonido y cuenta la partitura

      9:41

    • 8.

      Hacer más globos

      9:56

    • 9.

      Agregar retraso a los globos

      8:39

    • 10.

      Crea una cuenta para almacenar y compartir en la nube

      5:20

    • 11.

      Nuevo juego de control de la nave espacial

      13:26

    • 12.

      Añadir el fondo

      9:14

    • 13.

      Movimiento del fondo

      6:51

    • 14.

      Segundo sprite de fondo

      6:41

    • 15.

      Primer obstáculo: la roca

      8:28

    • 16.

      Golpear la roca

      4:11

    • 17.

      Daños y reparaciones

      7:38

    • 18.

      Posición de inicio aleatoria y bloques personalizados

      10:56

    • 19.

      Clonación de nuestra roca

      14:07

    • 20.

      Retardo aleatorio

      4:39

    • 21.

      Coleccionismo de estrellas

      9:37

    • 22.

      Aterrizaje en un planeta

      15:40

    • 23.

      Refactorización del guion de nave espacial

      6:35

    • 24.

      Cambio de fondos

      7:03

    • 25.

      Compra de reparaciones

      12:19

    • 26.

      Variación del precio al azar

      16:06

    • 27.

      Corrección del código de fondo

      7:34

    • 28.

      Sal de la pantalla de negociación

      14:55

    • 29.

      Nuevo juego Controla el personaje principal

      5:28

    • 30.

      Animación de caminar

      9:38

    • 31.

      Configuración de la primera habitación

      8:09

    • 32.

      Mostrar información de clave

      5:28

    • 33.

      Recoger la clave

      3:01

    • 34.

      Mover la clave del inventario

      8:13

    • 35.

      Desbloqueo de la puerta

      4:01

    • 36.

      El menú de acción

      7:17

    • 37.

      Desbloqueo de la puerta con la acción de uso

      5:51

    • 38.

      Bloque de habla personalizado

      13:27

    • 39.

      Cambiar la habitación

      8:06

    • 40.

      Cambio de objetos de juego a clones

      8:04

    • 41.

      Introducción de listas

      11:37

    • 42.

      Colocación de los objetos

      4:44

    • 43.

      Lista de inventario

      4:11

    • 44.

      Colocación de objetos en el inventario

      10:18

    • 45.

      Corrección de descripciones de objetos

      3:28

    • 46.

      Mostrar la descripción en el inventario

      3:35

    • 47.

      Corrección de la lógica del juego

      9:58

    • 48.

      Colocación de Avery en el lado correcto

      4:15

    • 49.

      Agregar la mochila

      8:54

    • 50.

      Colocación correcta del uso de button

      9:38

    • 51.

      Visualización de diferentes mensajes para cada uso de objetos

      6:38

    • 52.

      Verifica las condiciones de salida

      6:57

    • 53.

      Nuevo juego Jump 'n Run

      5:36

    • 54.

      Simula la gravedad

      5:19

    • 55.

      Excavación del gato

      7:27

    • 56.

      El gato salta

      6:45

    • 57.

      Movimiento del gato a la izquierda y a la derecha

      4:34

    • 58.

      Orientación correcta y fijación de doble salto

      4:30

    • 59.

      Corrección de la detección de colisiones

      13:33

    • 60.

      Corrección de movimiento horizontal

      4:12

    • 61.

      Golpea la caja, no el gato

      10:58

    • 62.

      Puzzle y segunda habitación

      14:26

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

52

Estudiantes

1

Proyectos

Acerca de esta clase

Sumérgete en el emocionante mundo de la programación con este curso para principiantes. Perfecto para aspirantes a codificadores de todas las edades, este curso te presenta los fundamentos de la programación con Scratch, un lenguaje de programación visual vibrante e intuitivo.

Lo que vas a aprender:

  • Conceptos básicos de los conceptos de programación a través de la experiencia práctica
  • Cómo usar el entorno de codificación basado en bloques de Scratch
  • Fundamentos del diseño y desarrollo de juegos
  • Habilidades de resolución de problemas y pensamiento computacional
  • Creación de animaciones e historias interactivas

Resaltado del curso:

¡Crea tu primer juego desde cero! En este curso, crearás un juego de "estallido de globos" atractivo en el que los jugadores deben estallar globos a medida que se elevan desde la parte inferior de la pantalla. Este proyecto te enseñará conceptos esenciales de programación, entre ellos:

  • Configuración de entornos de juego
  • Creación y manipulación de sprites
  • Implementación de interacciones de usuario
  • Agregar aleatorización para un juego atractivo
  • Mantener la puntuación y administrar los estados de juego con variables

¿Por qué Scratch?

Scratch es el punto de partida perfecto para los nuevos programadores. Su interfaz visual de arrastrar y soltar te permite centrarte en la lógica y la creatividad sin que te agobies por una sintaxis compleja. Las habilidades que aprendas aquí sentarán una base sólida para futuros esfuerzos de programación.

¿A quién está dirigido este curso?

  • Principiantes absolutos sin experiencia previa en programación
  • Estudiantes que buscan explorar la informática
  • Educadores que buscan introducir la programación en su plan de estudios
  • Cualquier persona que tenga curiosidad por el desarrollo de juegos y la narración interactiva

No se requiere experiencia previa en programación, ¡solo trae tu curiosidad y creatividad!

Acompáñame en este emocionante viaje al mundo de la codificación. Al final de este curso, habrás creado tu primer juego y ganado la confianza necesaria para explorar proyectos de programación aún más complejos. ¡Comencemos hoy mismo tu aventura de codificación!

Conoce a tu profesor(a)

Teacher Profile Image

Stephan Haewß

Profesor(a)
Level: Beginner

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • Sí
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. 01 Introducción: Bienvenidos a este curso. Es el curso para principiantes definitivo para todos los que quieran sumergirse en el mundo de los juegos de codificación y programación. Hola ahí. Soy tu instructor y estoy emocionado de guiarte a través de este divertido e interactivo viaje hacia la programación. Ya sea que nunca antes hayas escrito una línea de código o estés buscando repasar lo básico, este curso es perfecto para ti. En este curso, aprendes a crear cuatro emocionantes juegos desde cero a cero, un juego de Malon, un juego de exploración espacial, una aventura de apuntar y hacer clic, y un juego aventura de apuntar y hacer clic, básico de saltar y correr En el camino, te presentaremos conceptos esenciales de programación como variables, mensajes, estructuras de control, como if then y repeat, listas y clonación. Ya ves como estos conceptos cobran vida en tus juegos. Con las instrucciones paso a paso y los proyectos prácticos, ganarás la confianza y las habilidades para crear tus propios juegos y proyectos en cero. ¿Estás listo para comenzar tu aventura de codificación? Únete a mí en la programación con Scratch, hagamos que la codificación sea divertida y accesible para todos. Y rueda ahora y comienza tu viaje hacia el apasionante mundo de la programación con scratch. 2. Abre e instala Scratch: Aquí está la página web scratch, y este es el lugar donde necesitas ir en tu navegador favorito, qué navegador estoy usando Chrome aquí. Realmente no importa cuál uses, pero tal vez para una característica, me gustaría mostrarte al final de este video, posible que quieras usar Chrome o edge. No sé exactamente si esto también es posible en otros navegadores. A lo mejor Safari también. Pero comencemos aquí en esta página y necesitas ir a esta URL scratch it dot U. Así que pon eso en tu barra de direcciones en tu navegador favorito. Como dije, aquí estoy usando Chrome . Pero no debería importar. Entonces tenemos esta bonita página de scratch aquí, has destacado proyectos que puedes investigar, y también tienes tutoriales aquí. Pero por el momento, lo que es realmente importante es este botón de aquí, empieza a crear. No necesitas crear una cuenta, no necesitas registrarte. Sin embargo, puedes hacer esto. Pero vamos a hacer esto sin registrarnos, sin unirnos a scratch. Esto es aquí este botón. Puedes hacer una cuenta y luego guardar tus proyectos en esta cuenta y luego puedes editar los proyectos como quieras. Pero por el momento solo estamos usando este año Empieza a crear, solo haz clic en esto. Y luego te meterás en el estudio, el estudio scratch, y aquí tienes tu UI, tu Canvas, y este será tu lugar de trabajo, por así decirlo. Explicaré para qué sirven las diferentes regiones aquí y cómo funcionan en el siguiente video. Pero por ahora, hay una cosa más que quiero mostrarte cómo puedes instalar en e esta app, o ¿cómo puedes hacer una app, una aplicación web a partir de ella? Esto está aquí en Chrome, por lo que debes presionar sobre este botón de menú aquí. Entonces abres este menú y luego Safe and share es el elemento de menú correcto aquí, Safe and share, y luego Install page as app. Así que da click sobre esto. Y entonces también puedes nombrarlo aquí, renombrarlo. Ya se llama Scratch Imagine Program Share. Así que haz clic en Instalar. La página web se abrirá en una nueva ventana como una aplicación web. Y aquí puedes, por ejemplo, maximizar la ventana, no tienes la barra de direcciones aquí. Tienes mucho espacio para tus proyectos, y además puedes fijarlo a la barra de tareas o al dock en Mac y simplemente usarlo como un programa normal. No tienes que hacer eso. También puedes usarlo en tu navegador. Pero prefiero usarlo así. En edge, es un poco diferente, así que esto estará en algún lugar aquí debajo las aplicaciones instalar el sitio como una aplicación, algo así. En Safari y Firefox. Soy honesto. Simplemente no sé cómo hacer eso ahí, pero creo que puedes entenderlo. Bien, aquí lo tenemos. Este es nuestro lugar de trabajo aquí, y comenzamos a crear proyectos. Pero antes de eso, te mostraré por aquí y te mostraré cómo puedes darle sentido a todas estas regiones y todas estas pestañas y los elementos del menú aquí. Entonces nos vemos siguiente vide. 3. Descripción general de la interfaz de usuario: Entonces aquí estamos en cero, y esta es la versión de la app, la versión de la aplicación web, pero también puedes hacerlo, claro, en el navegador. Eso no es problema. Acabo de instalar la app tal como te dije antes para tener más espacio y tener una ventana extra en la barra de tareas o en el dock en la ma. De todas formas, puedes hacerlo en el navegador, puedes hacerlo en la app. Se trata de la interfaz de usuario de scratch, y lo primero que quiero mostrarte es cómo establecer el idioma correcto aquí. Esto se establece en inglés, por supuesto, porque este es un curso de inglés, pero puedes configurarlo de manera diferente. Para hacer eso, solo tienes que pasar por la configuración. Aquí, este menú, menú desplegable, haz clic en él, y luego tienes este globo con idioma. Y aquí tienes muchos muchos idiomas, por ejemplo, español o el alemán, porque soy alemán, solo lo cambiaré ahora al alemán. Entonces tienes todas las cuerdas aquí, todos los textos aquí en alemán. También los bloques. Verás, hay un engranaje, S ahora Schritt. Esto es alemán. Yo se lo dije al inglés, De nuevo, entonces he movido diez pasos, giro 15 grados, y todo aquí en estos bloques, que serán los bloques de construcción para nuestros guiones, claro, todo está en el idioma que elegiste aquí. Aquí es donde eliges tu idioma favorito en el que quieres programar porque todo estará entonces en inglés, incluyendo todos los bloques aquí. Entonces la primera sección y el primer concepto que quiero mostrarles aquí en scratch en el Scratch I es el concepto de Sprites Para eso, solo cierro este video tutorial aquí. Así que simplemente haz clic en esta X aquí, cierra y luego desaparecerá. También puedes verlo, claro, y obtener la primera impresión de los mecanismos aquí en el Scratch. Pero, vamos a llegar a los Sprites. Los sprites están aquí y Estos son los personajes o como las cosas que tienes en tu juego Por ejemplo, este gato aquí es el sprite predeterminado aquí. Puedes seleccionar los sprites aquí. Si tienes múltiples, entonces puedes seleccionar cada uno. Puedo hacer uno nuevo, pero vamos a comprobar el primero, el sprite por defecto aquí, el gato Puedes ver al gato por aquí, y este es el lienzo del juego, así puedes ver un avance de tu juego aquí. Este será el aspecto de tu juego cuando empezaste, y aquí también podrás mover al gato aquí, mover el sprite a donde quieras Entonces aquí tendrás todos tus sprites, y estos son, por así decirlo, los personajes principales de tu juego Entonces todo lo que se mueve, todo lo que se controla, todo lo que sea dinámico en tu juego será un sprite Entonces aquí tienes la lista de sprites, y luego puedes nombrar a los sprites Entonces aquí puedes cambiar el nombre del sprite. Puedo llamarlo el gato, por ejemplo. Entonces aquí en la lista también estará el gato. Aquí es un clavo para el pulgar. También puedes borrar el sprite aquí, pero no hagamos esto en este momento Aquí puedes establecer la posición como números. La posición por el momento es -46, y puedo mover al gato por aquí en este lienzo, y verán que esto también cambia Entonces esto es -149 ahora. Pero llegaremos a eso más adelante solo para mencionar aquí que puedes establecer las coordenadas la posición del gato en el Lienzo aquí. Arrastrando al gato aquí arrastrando el sprite, o también puedes cambiar estos números aquí, x e y Así que esto es posible aquí, y luego puedes mostrarle al gato o esconderlo. Así que esto es posible aquí, y luego puedes mostrarle al gato o esconderlo Si quieres que sea invisible, entonces tienes que elegir esta i que es tachada, o si quieres que sea visible, entonces elige la i. Entonces aquí, tienes una talla, esta es 100%. Si quieres que sea la mitad del tamaño, debes ingresar aquí el 50%, entonces es solo la mitad del tamaño o también puedes elegir que sea el doble del tamaño. Entonces tienes 200%. Entonces seremos el doble del tamaño del sprite predeterminado normal aquí Entonces este es el tamaño predeterminado, 100, y luego 200 será el doble del tamaño. Un cuarto será 25 aquí, así que solo una cuarta parte del tamaño predeterminado. Y también, claro, 400% será cuatro veces más grande, y entonces tienes aquí a este gato gigante Bien, pero vamos a ponerlo de nuevo a 100, y aquí también puedes rotarlo. Entonces este es el ángulo predeterminado aquí. Y mientras arrastro esto aquí, esta flecha, la arrastro aquí en este círculo. Ves que el gato está rotando aquí. Entonces este será el ángulo cero aquí, así que apuntando hacia arriba y luego apuntando a la derecha con 90 grados, 180 serán Apuntando hacia abajo y luego hacia la izquierda. Es un número negativo, por lo que -90 será en sentido antihorario, 90 grados Entonces el gato está boca abajo y apuntando a la izquierda. Vamos a ponerlo a los 90 grados otra vez. También puedes cambiarlo aquí con tu teclado, claro, 90 será exactamente este 90 grados, y también puedes voltearlo Así puede tipo de espejarlo. Entonces entonces se reflejará aquí a la izquierda o a la derecha Entonces esto cambia el modo aquí, por así decirlo, de la rotación al espejado, a la izquierda o a la derecha Y aquí lo vuelvo a cambiar a rotación. Y aquí puedo apagar la rotación por completo. Entonces no hay más cambios aquí si cambio la dirección. Bien, pero vamos a llegar a eso más adelante, también, sólo para decir que aquí, se puede cambiar la dirección. Pongámoslo a 90 grados y la rotación, nuevamente, los valores predeterminados aquí. Y aquí lo tienes. Tus sprites, y yo puedo hacer uno nuevo aquí Entonces solo presiona este botón. Y luego tienes algunos presets para elegir. También puedes buscar aquí o elegir una categoría. Por ejemplo, todos los animales, un oso, gato volador, pollito, dinosaurio, pato, lo que quieras, o tal vez quieras gente, una persona, o fantasía como dragones y elfos Y así sucesivamente. También puedes tener cartas aquí. Si quieres escribir algo en tu pantalla, puedes elegir estas letras aquí. Pero tal vez tomemos un globo, y ahora tenemos aquí un sprite de globo Tenemos el gato y el globo. Ahora también podemos eliminar el gato aquí. Ya no lo necesitamos. Porque nuestro primer juego será sobre globos, eliminemos al gato. Ahora sólo tenemos el globo. Si accidentalmente borraste algo o cambiaste algo y quieres que se revierta para que se deshaga, entonces puedes presionar el control Z o el comando Z, o también puedes elegir aquí este menú agregado y luego restaurar sprite en este caso, y luego tenemos el Aquí tenemos nuestros sprites, y volveré a borrar al gato porque ya no lo necesitamos Aquí, también podemos mover el globo, claro, aquí arrastrándolo sobre el Lienzo, y ya ves que también, todos estos números aquí, así que x e y también cambiarán igual que con el gato Bien, eso es todo para la sección Sprite. Pasamos a la siguiente sección. Pasemos a la siguiente sección y esta será la sección de código aquí. Está relacionado con Sprites. Si tienes un sprite aquí y seleccionaste, entonces realmente lo agregarás aquí el código para este sprite Eso significa que este código aquí, el script que estás creando aquí se adjuntará al sprite También puede adjuntar un guión a un fondo. Entonces aquí tienes escenario de telón de fondo. Entonces aquí está el escenario. Esta es otra sección, y esta es una especie de fondo de tu juego, y aquí puedes tener múltiples fondos y luego intercambiarlos dinámicamente con código también. Y también puedes tener múltiples antecedentes, como dije, y luego dependiendo de lo que selecciones aquí. Entonces, si seleccionas etapa, entonces agregarás el código para esta etapa aquí, o si seleccionas Sprite aquí, y agregarás el código para este sprite aquí y agregarás el código para este He seleccionado globo, como puedes ver aquí, esa es la diferencia. Aquí he seleccionado telón de fondo, y aquí he seleccionado el sprite, y ahora puedo dit el código, el script, por así decirlo, para este sprite Para eso, tienes todos estos bloques aquí. Así que desplázate por él completamente aquí con la barra de desplazamiento. Entonces todo estará aquí, pero también puedes cambiar a categorías, así puedes saltar a la categoría de eventos, por ejemplo, o a la categoría M bloques eligiendo una categoría aquí. Entonces primer movimiento de categorías. Aquí encontraremos todo lo que está relacionado con el movimiento del sprite, moverlo para girarlo también Así que también puedes establecer la rotación aquí dinámicamente durante el tiempo de ejecución de tu juego. Tenemos miradas, todo lo que se relaciona con el look de tu sprite aquí Por ejemplo, puedes dejar que el globo diga algo, así tienes este llamado entonces, o puedes cambiar el disfraz para hacer animaciones aquí. Puedes establecer también el tamaño aquí dinámicamente, para que puedas hacerlo más pequeño, hacerlo más grande, puedes mostrar y ocultar y así sucesivamente. Aquí tienes sonido, para que puedas reproducir un sonido. Por ejemplo, si se hace clic en el sprite con un botón del mouse, podrías reproducir un sonido aquí Aquí tienes eventos. Cuando ocurren ciertos eventos. Por ejemplo, cuando se inicia el juego, este es este evento aquí. Se puede utilizar para activar diferentes bloques entonces. Pero lo voy a mostrar más tarde. Aquí tienes controles, así que todo lo que esté relacionado con loops o condicionales. Si este es el caso, entonces haz esto, esas cosas que puedas hacer encima Entonces tenemos detección. Si el sprite toca algo o toca un color, por ejemplo, o toca otro sprite, entonces esto se puede encontrar aquí Operadores, muy importantes, operadores matemáticos, por ejemplo, iguales o menores que mayores que todo o escogiendo número aleatorio, muy importante para los juegos, para hacerlo más interesante, para que no sea determinista, esto lo puedes encontrar aquí Entonces también variables muy importantes, y por supuesto, voy a explicar variables más adelante. Pero aquí, variables muy importantes. Puedes almacenar valores en variables y almacenar un estado en una variable, por ejemplo, y eso es esencial para un juego. Sin variables, no se puede hacer gran parte de un juego ni siquiera con scratch. Aquí bajo mis bloques, puedes definir tus propios bloques que contienen diferentes subbloques, por así decirlo. Pero eso cubrirá, por supuesto, más adelante. Y aquí, también puedes agregar plugins. Aquí tienes estas extensiones, así que algo así como texto a voz, puedas dejar que el motor del juego hable algo, así que un texto que ingreses puede ser hablado luego por una voz artificial, o puedes tocar instrumentos y tambores, puedes dibujar y así sucesivamente, también traducir, y también puedes usar todo este código scratch para controlar realmente un robot o algo así así con pierna o minetormas Si agregas una extensión aquí, esta será una nueva categoría aquí, y luego puedes elegir. Entonces por ejemplo, si elijo música aquí, Habrá una nueva categoría de música, el final, y luego se puede utilizar, por ejemplo, para tocar un sonido de batería. Bien, entonces ese es el código de aquí. Pasaremos mucho tiempo aquí en esta sección de código. Esto es muy importante, claro, pero también hay otras secciones, y a continuación serán los disfraces. Disfraces por aquí, justo al lado del código. Podemos seleccionarlo, y luego podrá ver el caso. Esta es la apariencia de tu sprite, los gráficos para tu sprite Y en este caso, es un globo. Aquí es un gráfico vectorial, así que no es píxel a píxel, sino que está compuesto fuera de forma, por sino que está compuesto fuera de forma, lo que también puedes agregar una forma aquí, por ejemplo, un círculo. Simplemente haz clic en este ícono aquí, y luego puedes hacer un círculo arrastrando este rectángulo aquí Ni siquiera es un círculo. No, es un círculo. Bien. Entonces puedes hacer círculos o elipses o algo así, o también puedes por supuesto, escribir algo aquí, un texto Entonces globo, por ejemplo, en diferentes colores. Cubriremos todo eso en capítulos posteriores. No te preocupes si no obtienes todo esto. Esto es solo una visión general. Aquí puedes elegir qué aspecto tiene tu Sprite, y también lo que puedes hacer es hacer animaciones Aquí tienes todos los fotogramas para animaciones, y puedes en el código luego cambiar al siguiente fotograma, por ejemplo. Puedes hacer cosas como en un bucle, luego recorrer todas estas animaciones aquí. Entonces esto también es muy importante para las animaciones aquí. Puedes agregar muchos, muchos, muchos marcos aquí. Todos pueden verse diferentes, entonces puedes cambiando, recorriendo todos estos marcos aquí, luego puedes dejar que parezca una especie de movimiento, un movimiento, algo así. Entonces esto es animación aquí, pero por el momento, solo tenemos aquí este primer fotograma, también podemos eliminar los otros fotogramas para que no nos confundamos. Entonces ahora solo tenemos un fotograma, así que no hay animación por el momento. Aquí tenemos este globo, también puedo eliminar. Así puedes seleccionar las formas aquí con este cursor de selección. Entonces selecciona herramienta, seleccionada aquí con este rectángulo, y luego puedo eliminarla, por ejemplo, con este botón aquí o presionando la tecla de borrar. Ahora ya se ha ido y también este texto, también puedo borrar aquí. Entonces se ha ido. Bien. Y también, puedes hacer algo como voltear esta vertical horizontalmente y también copiarla y luego pegarla nuevamente, y todos lo cubriremos más adelante. Este es el vestuario muy importante, también para la aparición de tu sprite, el look de tu sprite Entonces en este caso, aquí se trata de un globo hecho de diferentes formas. También puedes simplemente pintar algo aquí. Por ejemplo, por lo que también es posible pintar de forma libre. Eso no es problema. Para revertir algo, también puedes usar estas flechas aquí para que yo pueda revertir todo lo que he hecho hasta ahora Entonces rehazlo de nuevo. Vamos a deshacernos de estos puntos aquí. Ahora tenemos de nuevo nuestro globo, sólo un globo, y eso es todo. Eso es todo por ahora para los disfraces y más sobre esto más adelante. La siguiente sección serán los sonidos. Entonces los sonidos están por aquí justo al lado de disfraces, y aquí puedes agregar más sonidos a los sprites Un sprites puede tener sonidos. Aquí tenemos este sonido pop. Puedes tocarlo con este botón de reproducción aquí, y escuchas este pop. También muy importante para los juegos son los sonidos para que tengas una retroalimentación, también retroalimentación acústica de tus acciones como jugador. Aquí también puedes agregar tantos sonidos como te guste. Entonces, por ejemplo, aquí puedes agregar un nuevo sonido. Aquí hay algunos sonidos predefinidos. También puedes reproducirlos aquí pasando el cursor sobre este botón de aquí, este botón de reproducción También, la música estará ahí o simplemente diferentes sonidos, clang, acorde Y el chasquido suena, o estos también piano o saxofón, batería, trompeta Tantos, muchos sonidos aquí para elegir, pero también puedes subir tus propios sonidos. Así que también puedes grabar tus propios sonidos aquí. Entonces, si tienes un micrófono conectado a tu computadora, y puedes grabar algo aquí o puedes elegir un sonido aleatorio, o puedes subir un sonido arbitrario que hayas grabado en otro lugar o que hayas descargado en algún lugar, y luego puedes subirlo aquí y usarlo en tu juego como sonido aquí. Y luego puedes activar los sonidos del código de esta sección aquí. También está esta categoría de sonido, y ahí se puede reproducir el sonido. Pop, por ejemplo, aquí sólo hay este sonido. Pero si agregas uno, agreguemos uno Por ejemplo, este. Ahora tenemos dos sonidos, y luego se puede escuchar tocar sonido, también guitarra eléctrica. Yo solo puedo mover esto aquí, y luego puedes elegir no solo pop, sino también el segundo sonido, una guitarra eléctrica. Entonces si presionas en este bloque que acabo de colocar aquí, acabo de arrastrar esto aquí a esto también una especie de lienzo aquí, donde viven todos tus bloques, donde vive tu código Y luego cuando haga clic en él, se ejecuta de inmediato, y ya va a reproducir el sonido aquí. Eso es todo para sonidos como disfraces, pero acústicos, para que puedas activar ambos, o puedes cambiar de vestuario por código. También puedes activar sonidos por código. Ahora lo que queda es lo que ya he mencionado también es esta etapa aquí telones de fondo, y aquí puedes tener múltiples telones de fondo Podemos hacer uno nuevo aquí, por ejemplo, un dormitorio, tal vez, y luego podemos elegir otro, tal vez una playa. Entonces aquí, si seleccionamos esta etapa, podemos echar un vistazo a los telones de fondo, y esto es algo así como para los disfraces, pero solo con los fondos Entonces puedes elegir qué fondo aquí quieres, y luego cambiará aquí, y también puedes, por supuesto, cambiar de código aquí, el fondo para que cambie dinámicamente. Entonces primero, tenemos un fondo vacío, luego tenemos esta recámara, y luego esta playa. Así que solo elige escenario aquí, y luego tienes bajo telones de fondo todos estos diferentes telones de fondo, igual que con los sprites Entonces selecciono globo nuevamente, nuestro sprite, y luego puedes tener diferentes disfraces aquí Entonces el primero será el globo. También puedes cambiar el orden aquí arrastrándolo. Podemos cambiarlo a esta chica de aquí. Es casi lo mismo aquí con telones de fondo. Solo selecciona escenario, y luego tienes todos estos fondos aquí También eliminar. Ahora el último, no podemos eliminar. Solo tomemos otro, tal vez cielo azul que se ajuste a nuestro globo. Entonces tenemos un globo sobre un cielo azul. Eso es un poco agradable. Así que solo lo dejé así. Y aquí en los telones de fondo, tienes casi las mismas posibilidades que para los disfraces de tu globo, por ejemplo Casi lo mismo o es lo mismo. También puedes nombrar el disfraz o nombrar el telón de fondo aquí. Eso es todo para escenario y telones de fondo. Casi como un sprite. Tienes los sprites, y luego tienes el escenario, y el escenario puede tener diferentes telones de fondo, que puedes cambiar luego durante el final del juego Bien, entonces estas son las secciones, y claro, esta sección muy importante, puedes correr el juego aquí con esta bandera. Entonces, si presionas la bandera, se ejecutará el juego, por el momento no hay código, así que aquí no hay nada que ejecutar. Así que simplemente se queda así. Pero si agregamos código, notarás entonces que tendrás también el botón de parada aquí donde podrás detener el juego, detener la ejecución del código, con por el momento, no tenemos ningún código. Entonces esto no está haciendo nada, y también puedes hacerlo un poco más pequeño aquí con esto o hacerlo un poco más grande o incluso hacerlo a pantalla completa. Entonces tienes juego de pantalla completa aquí, casi a pantalla completa. Todavía tienes estos botones aquí, claro, para iniciar y detener el juego, y luego un botón para salir de la pantalla completa aquí. Bien, ese es tu Canvas, tu lienzo de juego aquí, donde se renderizan todos tus gráficos de juego. Esto es básicamente para la interfaz de usuario de scratch del editor de scratch aquí. Y también tienes estos menús aquí. Esto es muy importante tu archivo, por lo que puedes hacer un nuevo juego, y también puedes cargar algo desde tu computadora, desde tu disco duro, o puedes guardarlo. Y esto es muy importante. Siempre debes guardar el juego aquí. Entonces entonces se descargará a tu carpeta de descargas, y luego podrás volver a subirlo con este menú aquí, cargarlo desde computadora. Entonces puedes volver a subir este archivo y luego volver a tener tu proyecto de juego completo. Y aquí puedes restaurar el disfraz. Entonces, por ejemplo, he eliminado el telón de fondo del discurso, y luego puedo restaurarlo aquí. Así que deshaga la eliminación aquí de este telón de fondo. Y también de tus sprites, lo mejor si borro el sprite, puedo borrar el sprite, y luego puedo restaurar el Entonces eso es todo para el breve resumen del scratch que aquí, y vamos a entrar en cada sección con más detalle, por supuesto, en la sección de código. Esta será la sección principal que tienes que tratar, pero también disfraces, por supuesto, para animaciones y otras cosas. Y los sonidos también serán importantes y también el telón de fondo, claro. Pero lo más importante será el código porque este es el lugar donde realmente programas tu juego y realmente lo haces dinámico, lo haces interactivo, y lo haces divertido, por supuesto. 4. 04 Primer juego, primer código: Entonces estamos comenzando con nuestro primer juego y este juego será un juego de globos, así que se trata de globos levantándose y moviéndose de abajo hacia arriba para que pueda mostrarlo aquí con el ratón arrastrando Deberían moverse o este globo debería moverse de aquí. A lo más alto, y luego debería desaparecer, y el jugador tiene que hacer click sobre él para hacerla estallar, algo así. Y entonces él debería obtener puntos, o ella debería obtener puntos por ello. Entonces también debería haber varios globos luego al final, y cuantos más globos puedas hacer estallar, más puntos obtendrás. Entonces este es nuestro reto aquí. Entonces tenemos que mover este globo desde el fondo. Colócala tal vez por aquí hasta la cima en un movimiento constante, diría yo. Este es nuestro primer reto y lo podemos hacer. Podemos lograr esto usando un fragmento de código o script, por así decirlo, un programa Tenemos que programar aquí. Este es nuestro primer programa que nosotros w. Y esta es la posición inicial de nuestro globo aquí. Entonces, si quieres seguirlo, entonces solo coloca el globo en algún lugar de aquí, tal vez, entonces esto debería estar bien. Entonces, ¿cómo podemos iniciar nuestro código? ¿Cómo podemos iniciar nuestro guión? La mayoría de las veces, quieres iniciarlo con un evento. Entonces en este caso, es el evento de inicio. Así que cada vez que el jugador haga clic en start on Go here on the flag, obtendremos este evento. ¿Y eso qué significa? Entonces, cada vez que se hace clic en la bandera, se ejecuta el código que está debajo de esto aquí Así que he arrastrado esto cuando ir clicked de eventos. Ir a la categoría de eventos, y luego el primer bloque aquí es este cuando ir clicked bandera verde, y esto es como correr, ejecutar el juego Esto quiere decir que cada vez que se inicia el juego, se hace clic en ese ir, que se ejecutará el código que hay debajo de aquí Esto es lo que hacemos ahora. Agregamos aquí otro bloque. Así es como se codifica en scratch. Entonces agregas estos bloques aquí, así que tal vez podamos ir al movimiento aquí, por ejemplo, y luego podemos decir, ir a posición aleatoria, por ejemplo, solo para mostrarlo. Entonces, cada vez que se haga clic en este botón de ir, vaya a la posición aleatoria. ¿Qué significa eso? El globo irá a una posición aleatoria. Veamos cómo se ve eso. Entonces hacemos click en go y vemos que este globo va se coloca en una posición aleatoria aquí. Podemos hacerlo de nuevo, y cada vez, es una posición diferente, una posición aleatoria. Esto no es lo que queremos, claro, porque queremos un movimiento de abajo hacia arriba. Y no es así como lo haces, sino solo para mostrarte cómo se hace la codificación aquí. Tenemos que apilar estos bloques aquí. Después de eso, tal vez podamos hacer lo mismo. Por ejemplo, podemos hacer esto dos veces. Esto no hará ninguna diferencia porque esto irá a una posición aleatoria, pero no la verás porque directamente después de eso, irá a una posición aleatoria diferente. Eso no es muy bueno o no tiene ningún sentido. ¿Qué hacemos? Podemos hacer un retraso aquí en el medio. Vamonos al control. Y luego vemos que el primer bloque aquí bajo control es el peso. Eso es lo que queremos. Controle el peso, y luego arrastre esto aquí por aquí. Ves este chasquido aquí. Esto se romperá aquí y queda un poco gris para que veas que, si lo sueltas, terminará en esta posición aquí, debajo de la posición de ir a aleatoria. Entonces esto se colocará por debajo del peso un segundo. Si quieres desmontar esto, puedes simplemente arrastrarlo lejos. Y entonces todos los bloques que están debajo de eso aquí, el primero en el que hiciste clic se moverán, y luego podrás arrastrarlo aquí Y entonces ya no se ejecutará porque aquí no hay conexión con este evento. Entonces, si acabo de comenzar un juego, no hay código ejecutado porque aquí no hay nada por debajo. Entonces necesito conectar esto a esto cuando vaya haga clic. Otra vez. Y ahora podemos ver que primero, el globo va a una posición aleatoria y luego espera 1 segundo y luego va a otra, una posición diferente Entonces esto tampoco es lo que queremos. Queremos un movimiento continuo. Entonces, vamos a deshacernos de eso aquí. Cómo deshacerse de él, cómo eliminar, puede hacer clic derecho sobre él, y luego puede eliminar bloque. Entonces eso borraría solo el bloque en el que hiciste clic, y luego puedes eliminar todos los bloques aquí Pero lo más conveniente es simplemente arrastrar esto aquí a un lado, y luego soltarlo aquí, y luego se ha ido también. Y te mueves por este lienzo aquí, tu área de código arrastrando aquí, para que puedas ver, También puedes usar la rueda del mouse, claro, o puedes arrastrar, y luego puedes llegar a diferentes posiciones aquí, y también puedes acercar y alejar con estos botones aquí con las lupas Y esto restablecerá la posición y el zoom aquí. Este botón. Así es como navegas aquí en el área de código. Así que pongamos eso por aquí. Y qué hacemos para mover esta cosa aquí. Lo que podemos hacer es colocarlo aquí otra vez, quizá aquí, lo que tenemos que hacer. Primero, necesitamos posicionar el globo nuevamente en esta posición porque esta es la posición inicial, pero cuando el programa mueve el globo, tal vez termine aquí, y luego simplemente se quedará ahí. Entonces necesitamos restablecerlo cada vez que se haga clic en ir. Entonces tenemos que establecer la posición inicial. ¿Y cómo se hace eso? ¿Tan solo arrastrarlo a donde quieras? Entonces tal vez, por ejemplo, aquí, y luego tenemos la x y aquí, y eso es lo que podemos usar ahora. Entonces vayamos a la moción. Entonces tienes esto ir a X, ir a y, y esto es lo que usamos aquí, vamos a x, vamos a Y y usamos estas dos coordenadas aquí. Convenientemente, estos ya están aquí llenos, así que no necesitamos cambiar nada. Simplemente arrastre este bloque aquí para cuando vaya haga clic y todo se configurará en esta ubicación aquí Puedo cambiarlo ahora a tal vez aquí. Entonces cuando haga clic en ir, se restablecerá a esta posición inicial. Eso es bueno. Eso es lo que necesitamos también. Ahora tenemos que mover el globo a la parte superior, y eso es lo que hacemos en el siguiente video. Pero para aquí en el movimiento, estos bloques son todos para mover tu sprite o rotar tu sprite Por ejemplo, aquí has establecido el estilo de rotación, así puedes cambiar de izquierda a derecha a, tal vez no rotar o por todas partes. En un ángulo, esto será más como espejar, así aquí, esto será espejar o voltear, esto será una rotación, y esta no será Y lo mismo aquí, puedes establecer este estilo también aquí. Eso es lo mismo que aquí. Esto es solo un ejemplo, y también puedes usar algo como establecer y en una posición o establecer x en una posición, o puedes establecer ambos en un bloque. También puedes deslizarte a una posición aleatoria. Podemos probar esto tal vez, ponerla en una posición inicial, y luego después, simplemente nos deslizamos tal vez como 4 segundos a una posición aleatoria o al puntero del mouse También podemos hacer eso. Probemos esto. Esto en realidad no es lo que queremos, pero de todas formas, probémoslo y veamos cómo se ve esto. 4 segundos, este globo irá a una posición aleatoria. Entonces, cada vez que empiezo por aquí, irá a una posición diferente, pero siempre toma 4 segundos ir ahí. Eso es bastante agradable. Tal vez podríamos usarlo y luego el usuario tiene que hacer clic en él para obtener los puntos. Pero no lo sé. A lo mejor no es tan interesante hacer el juego así. Pero esto nos vendría bien. Pero esto va a ser bastante fácil. En fin, tenemos que ocultar el globo cuando llegue a la posición aleatoria aquí. De lo contrario, sería demasiado fácil para la obra hacer clic en ella. Podemos simplemente tal vez ocultarlo después de 4 segundos, o tal vez hagamos 2 segundos y luego será más rápido. Aquí, y esto será más rápido. Pero también depende de la posición misma, claro. Si la posición no está muy lejos de la posición inicial, será lenta si está muy lejos de la posición inicial, entonces es rápida. Esto será fácil de hacer clic y es un poco más difícil así o tal vez así. También podemos reducirlo a 1 segundo, o también podemos usar números decimales como 1.5, por ejemplo, Eso es un poco más rápido porque era un largo camino por recorrer para el globo, otro largo camino y este es un camino corto. Ocultemos el globo cuando llegue a la posición aleatoria aquí. ¿Cómo lo hacemos? Esto está bajo la categoría looks. Vamos a Ls y aquí al final, casi al final, tienes espectáculo y te escondes. Esto es lo que necesitamos. Simplemente arrastra el pellejo a esta posición aquí después del planeo, y luego cuando llegue a esto aquí, esta posición aleatoria, debería esconderse Vamos a probar eso. Ahora desaparece. Hagámoslo otra vez. Bien. Entonces ves que no ves nada. Se ha ido. Está oculto. ¿Y por qué es eso? Sea que lo hayamos ocultado. Entonces con este escondite, lo ocultarás, y no se restablecerá para mostrarlo. Pero podemos hacer eso, simplemente mover show o drag show aquí al principio. Entonces cuando se hace clic en go, luego mostrar el globo, luego ir a la posición inicial, y luego deslizarse a estas posiciones aleatorias aquí y luego ocultar el Entonces probemos esto. Entonces se muestra. Va a la posición inicial y luego se desliza a la posición aleatoria Y luego se oculta. Y luego cada vez que haga clic en G, se volverá a mostrar, y esto se ejecutará aquí. Por supuesto, el código siempre se ejecuta de arriba a abajo. Entonces este es el evento de inicio cuando se hace clic en go, luego hay show, ir a x e y, posición inicial, luego deslizarse en esta cantidad de tiempo a una posición aleatoria, y luego Entonces eso está bien. Podríamos usar esto como punto de partida para nuestro juego. Probablemente no lo mantendremos así, pero es una especie de comienzo. Entonces entonces tenemos que, por supuesto, hacer que suceda que el jugador pueda hacer clic en el globo, y luego se detenga, y luego el jugador obtenga puntos por ello. 5. 05 Mejora del movimiento del globo: Seguimos con nuestro juego y en el último video, teníamos nuestro globo aquí pasando de esta primera posición a una posición aleatoria, y aquí hemos hecho este pequeño guion, y este es nuestro primer programa o primer guión. Siempre que se haga clic en el botón de inicio, mostramos este globo, luego vamos a esta posición inicial del globo Este -207 y f x y -200 534, y, y luego de ahí nos deslizamos a una Esta siempre será una posición diferente cada vez que corremos el juego y el tiempo que lleva deslizarse a esta posición es de 1.5 segundos aquí. Entonces cuando llega a la posición, entonces escondemos el globo. Ahora quiero intercambiar esto aquí, el planeo a posición aleatoria con un bloque similar, y este es este Ya he preparado esto Así que esto es planeo en cantidad de segundos dos x e y Hay una posición predefinida aquí a la que podemos deslizarnos, y no será la posición aleatoria. Hay una posición predefinida aquí a la que podemos deslizarnos, y no será la posición aleatoria Debido a que el problema con la posición aleatoria es que a veces es más difícil y a veces más fácil golpear el globo o hacer clic en el globo, porque de eso se trata el juego, hacer clic en el globo o hacer clic en todos los globos que puedas hasta que se hayan ido todos. Este es el problema con la posición aleatoria. No van hacia arriba, sino en tal vez en esta dirección o dirección o lo que sea. No está claro a dónde van los globos con la posición aleatoria, así que lo cambiamos por una posición fija. Este es el bloque para la posición fija, y estoy arrastrando este escondite aquí lejos y el planeo también, y podemos deshacernos de este bloque de planeo simplemente arrastrándolo por aquí y Este bloque se elimina. Ahora podemos tomar este bloque, ponerlo aquí, para que encaje ahí y luego volver a poner el bloque hide nuevamente para que lo tengamos así Empecemos el juego y veamos cómo se ve. Verás, siempre es el mismo movimiento aquí cada vez que empiezo el juego. El globo siempre subirá en 2 segundos hasta esta posición de aquí, y siempre es lo mismo. Esto es mucho mejor porque el globo irá solo hacia arriba, pero también es más fácil porque ya sabes de dónde va el globo y hacia dónde va. Esto es bastante fácil de jugar a este juego, pero vamos a estar teniendo más globos, no sólo un globo, esto va a ser un poco más difícil de golpear a todos los globos. A lo mejor esto ya está bien y ya es un juego divertido. Pero necesitamos algo que sea más aleatorio aquí. Digamos que no es la posición objetivo del globo, pero también puede ser la inicial La posición inicial, la posición x aquí podría ser aleatoria, y el globo comenzaría entonces tal vez una vez de aquí, una vez de aquí. Eso dependería la posición que se elija al azar entonces. ¿Cómo lo hacemos? un número aleatorio para la coordenada x. Comprobemos cómo se hace esto. Vamos a operadores aquí y allá lo tenemos ya escoge al azar un número aleatorio entre y luego puedes establecer entre qué dos números se debe escoger el número aleatorio. Arrastremos esto aquí a nuestro lienzo, nuestro guión Canvas, y luego podemos colocarlo en algún lugar de este bloque. Podemos colocarlo aquí para ir a x y luego este campo aquí. Vamos a probarlo. Lo arrastramos por aquí y luego lo soltamos y ahora lo tenemos en nuestra coordenada x. La coordenada x será 1-10. Esto no es muy bueno, Digamos tal vez -200 102 más 210, ese será el rango Probemos esto. Empecemos, y luego tenemos una posición inicial aleatoria. Esto es lindo. A veces empieza desde aquí desde la x por aquí o tal vez por allá. Por lo que el jugador nunca sabe de donde empieza el globo. Eso es mejor. Pero también la posición objetivo es siempre la misma, y eso es un problema aquí porque siempre sabemos que el globo va a ir por aquí. Esta es la posición objetivo para que podamos colocar nuestro cursor del mouse aquí, y luego podríamos hacer clic justo aquí cuando se trata de esta posición aquí. Eso no es tan agradable, así que necesitamos establecer el objetivo x esto aquí al mismo valor que este año. Podríamos usar una variable para eso y primero asignar esta variable aleatoria número dos A y luego usar esta variable en estos dos lugares. Primero aquí en este bloque, ir a x y luego variable, y luego deslizarse en 2 segundos dos x, y luego la variable Pero no vamos a hacer esto porque esto es un poco avanzado y lo haré en variables en un capítulo posterior. Aquí hacemos otra cosa. Hay un bloque otro bloque aquí bajo movimiento, y este es este bloque aquí, posición x, y puedes arrastrar esta posición x aquí a cualquier lugar que quieras en estos campos redondeados. Por ejemplo, aquí en este campo x, así que desliza en 2 segundos dos x, y luego x posición. ¿Qué es la posición? posición X es la ex posición del sprite en este punto en el tiempo cuando llega a este bloque aquí Esto siempre se actualizará si el globo se mueve. O cambia su posición x, entonces esta siempre será la posición x actual. Y también puedes mostrarlo solo hacer clic aquí en esta casilla de verificación Entonces solo verificando esto aquí lo mostraremos aquí, y entonces siempre podremos ver el valor actual de los globos x posición. Bien, entonces, ¿qué tenemos ahora? Vamos a una posición x aleatoria aquí y una posición y fija. Entonces la posición y será -253, y la posición x será aleatoria Entonces eso significa que el globo comienza en algún lugar entre aquí y aquí. Y luego irá a esta posición y -253 y luego manteniendo la posición x Entonces establecemos la posición x aquí con este número aleatorio, y luego esta posición x será la misma. Se queda igual, así que no se cambia después. Siempre será esto aquí. Por esto, estamos estableciendo la posición x en un número aleatorio, y entonces esto estará en este bloque aquí en este bloque de posición. Entonces el globo siempre subirá. Y aquí también podemos ver. También puedes arrastrar esto a donde quieras aquí. También podemos ver que esta x siempre será la misma, pero se establecerá aleatoriamente al inicio del juego. Entonces esta vez fue -166, y la próxima vez es -107, y la próxima vez es Pero aquí estamos deslizándonos a la misma posición x que fuimos aquí aleatoriamente Bien, creo que esto está claro, debería ser claro. Entonces esta x es solo mantener la posición x y la y y la posición objetivo de 200 aquí. Y de esta manera, este es una especie de juego que tenía en mente al principio. Entonces tenemos un globo comenzando desde una posición aleatoria yendo hacia arriba, y luego el usuario o el jugador tiene que hacer clic en él. Entonces también podemos entrar a pantalla completa y ver cómo se ve eso, así que iniciando el juego, y luego el usuario necesita hacer clic en él, y luego debería desaparecer, y el usuario obtiene puntos por ello. Entonces nosotros en este momento, tenemos sólo un globo, no muy interesante, pero si tenemos, digamos, cinco globos. Será bastante difícil hacer clic en todos los globos antes de que lleguen aquí al objetivo. Bien, así que eso es todo para mejorar el movimiento del globo, y creo que podemos mantenerlo así, y solo podemos hacer más globos. Y entonces la lógica del movimiento aquí será, por supuesto, la misma. Pero antes de hacer eso, necesitamos implementar la lógica de clic para que cuando el jugador haga clic en el globo, desaparezca, y luego el usuario obtenga puntos, por ejemplo. Bien, así que hagamos esto en el siguiente video. 6. 06 El evento en el que se hace clic: Ahora que tenemos el movimiento de los globos en su lugar, puedo mostrarlo nuevamente aquí. El globo va desde una posición horizontal aleatoria recta hacia arriba, y luego desaparece Desaparece aquí fuera de límites. Ahora que tenemos esto, lo único importante que falta es, de co, que el jugador necesite hacer clic en el globo y el globo desaparecerá luego y el jugador obtenga puntos. Eso es bastante fácil. Solo necesitamos dos bloques para el click y luego el ocultamiento del globo, y podemos encontrar el primer bloque aquí en eventos, porque el click del globo de este Sprite aquí es un evento Tenemos esto cuando flag, cuando se hace clic en go ya aquí, pero ahí debajo es cuando este Sprite hizo clic, y aquí también tenemos cuando pulsamos la tecla de espacio Esto es para eventos de teclado, pero esto aquí es para el evento click. Arrastramos esto a nuestro Canvas aquí, y luego tenemos este evento. Cuando se hace clic en este sprite, entonces haz lo siguiente y lo que hay que hacer aquí, necesitamos ocultar el sprite Esto es muy fácil. Ya teníamos esto. Tenemos espectáculo aquí y luego una piel al final, vamos a miradas otra vez, y después tenemos esconderse aquí. Simplemente arrastra la piel a esta posición aquí, y ya podemos probarla. Así que vamos. Y luego le damos click. Oh, me lo he perdido aquí. Pero ahora he logrado darle click y ya ves que el globo desaparece aquí, está oculto. Bien. Hagámoslo otra vez. Entonces esta vez estaba mejor preparada. Por lo que no es muy difícil golpear el globo. Pero si tienes, digamos cinco globos aquí, todos en posiciones aleatorias, entonces tal vez sea un poco más difícil. Entonces esto es bastante fácil. También podemos usar la pantalla completa, y luego Podemos probarla bajo condiciones de juego reales. Eso es bastante fácil con un globo. También podemos usar, por supuesto, una mayor velocidad, una mayor velocidad. ¿Cómo lo hacemos? Simplemente cambiamos el tiempo aquí, el lapso de tiempo se desliza 2 segundos a x, así podemos hacerlo un poco menos de 2 segundos, 1.5 segundos, y luego la velocidad debería ser más rápida, y también podemos usar Intentemos 1 segundo, y luego será bastante rápido, y luego también será muy difícil golpearlo. A ver. Ya lo he logrado. Ahora bien, esta me perdí, otra vez. Hagámoslo otra vez. Sí. Eso es bastante difícil. A lo mejor es demasiado difícil, pero dejémoslo así. Y ahora tenemos la mecánica básica del juego en su lugar. El globo empieza a elevarse, y luego podremos darle click y luego desaparecerá. Es posible que queramos agregar más tarde una animación para que el globo aparezca. Por el momento, simplemente se esconde aquí con este bloque. Así que cada vez que se hace clic en el sprite, entonces se oculta el globo Ahora lo que tenemos que hacer es, claro, el jugador necesita obtener puntos por esto para que al final, cuando se hayan ido todos los globos, el jugador pueda ver cuántos puntos obtuvo. Esto servirá en el siguiente video porque no es tan fácil. Necesitamos usar variables para eso. Ya he mencionado variables, pero este es un concepto bastante importante, así que esto será en un video extra, y luego también podremos contar los puntos y luego mostrar la puntuación. 7. 07 Reproduce el sonido y cuenta la partitura: Ahora que hemos ocultado nuestro globo, cuando el jugador hace clic en él, necesitamos contar la puntuación. Pero primero, voy a presentar otra característica aquí, así que tenemos que tocar un poco de sonido aquí cuando el globo estalla, luego necesitamos tocar un sonido pop. Los sonidos que tienes aquí bajo la categoría sonidos, solo arrastra este bloque aquí debajo de la altura. Después de la altura, necesitamos tocar un sonido aquí. Esta es la guitarra eléctrica. Este no es el sonido correcto, así que tenemos que cambiarlo a pop, y luego puedes escuchar esto tocará un bonito sonido pop. Cuando el jugador haga clic en el globo, se reproducirán este sonido, así que intentemos trabajar bien. Bien, eso es todo por el sonido por ahora, entremos en variables y contando la partitura aquí. ¿Qué son las variables y por qué las necesitamos aquí? Al menos necesitamos una variable aquí, y necesitábamos contar la puntuación. Cada vez que el jugador golpea el globo explota el globo, entonces debería haber un digamos, deben agregar diez puntos a la puntuación y el puntaje debe mostrarse en alguna parte. Ya tenemos una variable aquí y ya se muestra aquí. Esta es la exposición del globo, tenla aquí. ¿Y cómo lo conseguimos? Está aquí bajo movimiento, entonces movimiento de categoría, y luego tenemos esta casilla de verificación que lo mostrará. También podemos mostrar la posición y y también la dirección. Vamos a sumar todos estos y volvemos a nuestras variables. Estas también son variables, pero no podemos establecer las variables. No podemos cambiar el valor de estas variables aquí directamente. Esto es interno al sistema de juego aquí. Pero es similar a una variable porque esto aquí representa un valor y un valor que puede cambiar. Podemos usar esto en todas partes donde estén estos campos redondeados. Podemos simplemente dejarlo ahí, y este es un marcador de posición para un valor Este -210, por ejemplo, es un valor. Este es un valor fijo. Sabemos cuál es el valor, -210. Pero aquí, esto no es obvio qué posición será esta solo está clara en tiempo de ejecución o solo se define en tiempo de ejecución. Por el momento, la posición se determinará en este momento. También podemos mostrarlo aquí, pero si ejecutamos el juego, entonces esto va a cambiar. Variable. También, por supuesto, el nombre significa valor variable, por lo que puede cambiar y tiene que cambiar para que sea realmente útil. Una variable es un marcador de posición para un valor que cambiará, es decir, variable Hagamos nuestra propia variable, y necesitamos nombrarla de alguna manera. Entonces hacemos una nueva variable llamada score. Hacer una variable es el botón aquí. Vaya a las variables aquí, las variables de categoría. Ya tenemos uno aquí. Está predefinido. También podemos eliminar esta variable porque no la necesitamos. Así que haga clic derecho sobre esta variable predefinida y elimine la variable my variable. Hagamos uno nuevo make variable. Y entonces podemos elegir un nombre. Entonces elegimos la puntuación del nombre. También podemos escribirlo así. Entonces también puedes decidir si esta variable es para todos los sprides, o solo para este spride Yo diría que como tenemos más de un spride, deberíamos definir aquí la variable score para todos los Sprides. ¿Qué significa eso? El valor de la partitura estará disponible para todos los Sprits, no solo para este spride Eso es lo que queremos, no sólo para este srt, porque queremos demostrarlo. mejor queremos usarlo en un spr diferente tal vez en un guión para un spride diferente, así que vamos a definirlo para todos los En K, y ahora tenemos esta variable aquí bajo variables, y se ve similar a este movimiento x posición aquí, y posición. También redondeé aquí, rectángulo redondeado, las esquinas redondeadas, esto es azul, pero esto es naranja, entonces esta es nuestra propia variable. Podemos usar esta variable cualquier lugar que queramos en estos campos redondeados, por ejemplo, aquí, aquí, podemos ver que podemos dejarla caer por todas partes aquí. Bien, entonces esta casilla de verificación también está aquí, para que puedas mostrar el valor, el valor actual de esta variable también haciendo clic aquí, y luego aparecerá en el juego Vamos a deshacernos de esta posición de globo. Así que solo quita la casilla de verificación aquí. Ya no necesitamos eso. Pero la partitura, debemos mostrar, así que mantén marcada aquí la casilla de verificación Ahora tenemos el puntaje mostrado aquí, pero es cero. Este es el valor predeterminado, el valor inicial. Y si hacemos clic en el globo, escuchamos el sonido. Pero claro, el puntaje sigue siendo el mismo. Ahora que tenemos nuestra variable, podemos usarla. Podemos cambiar el valor en tiempo de ejecución. Para esto están estos bloques. Este es uno de los bloques establecidos score, en este caso, 20 o cambiar puntaje por uno con estos dos bloques, se puede cambiar el valor de la variable. ¿Qué necesitamos? ¿Cuál de estos bloques necesitamos ahora? Bueno, necesitamos el segundo porque el primero fijará la puntuación en un valor fijo, pero necesitamos aumentar el valor de la puntuación en cierta cantidad. Usemos este bloque, arrástralo aquí. Justo debajo, digamos después de esconderse. Sólo déjalo caer aquí. Cambiar la puntuación por uno. Veamos qué hace esto y para que sea un poco más fácil para mí, voy a cambiar o aumentar esta vez aquí, tal vez digamos 5 segundos, y eso sería muy fácil entonces porque el globo es muy lento. Vamos a reventarlo y ya ves que tenemos dos. ¿Por qué tenemos dos? Porque cada vez que haga clic aquí en esto, esto aumentará, y solo lo hice clic una vez, y luego comencé el juego y me reventé el globo Entonces tenemos dos. Pero claro, tenemos que restablecer el marcador al inicio del juego. Entonces eso es lo que tenemos que hacer. Para ello, necesitamos Usar el primer bloque aquí. Así que establece la puntuación a cero, que ya es kag lo puso aquí justo después de que se haga clic en go, déjelo caer aquí, y luego el puntaje se pondrá a cero Así que cada vez que iniciamos el juego, empezamos con una puntuación de cero, claro. Y luego reventamos el globo y tenemos uno. Entonces como solo tenemos un globo, no puedo obtener más de una puntuación de uno en este momento. Pero de todos modos, esto funciona muy bien aquí. Entonces me reventé el globo, obtengo una puntuación de uno. Entonces, si tuviéramos dos globos, entonces el jugador sería capaz de obtener una puntuación de dos. Así es como se usan las variables. Se puede cambiar la variable por un cierto valor. En este caso, uno, también puedo usar tal vez diez. Entonces, cuando haga pop el globo, obtendré diez puntos, no mucha diferencia, pero tal vez haya globos más grandes que solo le den cinco puntos al jugador, así que puedes usar diez y luego cinco para los más grandes porque son más fáciles de golpear. Eso es todo para las variables. No es todo lo que necesitas saber sobre las variables, sino cómo usarlas. Entonces puedes establecerlos aquí a un cierto valor. También puede establecerlo en un valor aleatorio. Entonces, por ejemplo, tal vez puedas ir aquí, escoger al azar 1-10. Así que solo déjalo caer aquí. Y entonces la puntuación se fijará en un número aleatorio, no muy útil en este caso, sino para mostrar el punto. Esto ahora serán cinco y otra vez seremos diez, otra vez seremos seis. Si pop es el globo, se incrementará en diez aquí. Podemos venderlo a valor fijo o a este valor aleatorio aquí también, y podemos aumentarlo en cierta cantidad. O también podemos aumentarlo por una cantidad aleatoria. Puedes poner esta selección al azar aquí también en este cambio por campo. Vamos a probar esto. Pop it y conseguimos cuatro puntos, y después conseguimos tres puntos. Y la próxima vez, conseguimos nueve puntos. Aquí no es muy útil, pero de todas formas, esto es posible, deshagámonos de eso y usemos diez aquí. Así que cada vez que hacemos reventar el globo, el jugador saca el globo, entonces él o ella obtiene diez puntos aquí. 8. 08 Creación de más globos: Nuestro juego está trabajando con un globo. No es tan interesante, tampoco tan difícil también, pero está funcionando, y también tenemos el marcador. Pero necesitamos más globos y ¿cómo lo hacemos? Es bastante fácil. Sólo tenemos que duplicar nuestro primer globo Haga clic derecho sobre la s aquí en la lista. Entonces Globo uno, click derecho, doubl y tenemos un segundo globo aquí Probemos qué pasa si ejecutamos el juego. Tenemos dos globos. Y podemos saltarlas a las dos. Y siempre conseguiremos 20 puntos como anotación, claro, porque siempre hacemos reventar los dos globos. Entonces esto es bastante agradable porque acabamos de duplicar este globo, y todo funciona. Entonces no hubo necesidad de cambiar nada aquí en el guión, pero tal vez podamos cambiar el color del globo. Vamos a entrar en el globo dos seleccionado aquí, y luego vamos al vestuario, y luego tenemos este globo azul, el mismo que el primero, así que tenemos que cambiarlo aquí. Vamos a este pequeño botón de aquí, y luego se expande con esta lista, para que podamos subir un nuevo disfraz Podemos conseguir uno al azar, o podemos pintarlo, o podemos elegir un disfraz. Eso es lo que hacemos. Escojamos un disfraz, y luego buscamos aquí el globo, ahí tenemos los globos. Ya tenemos el globo azul. Vamos a usar un globo amarillo aquí, y ahí tenemos el globo amarillo. Podemos deshacernos del primero aquí del primer disfraz aquí en la lista porque aquí solo necesitamos este globo amarillo. Eso es. Ahora tenemos dos globos, uno azul, uno amarillo, y comencemos un juego. Para que quede más bonito con dos colores aquí. Podemos hacer más de estos, por supuesto. También podemos hacerlo más difícil problema es que ahora necesitamos cambiar dos de estos sprites aquí porque cada sprite tiene su propio script aquí, así que necesitamos cambiar ambos Por ejemplo, 5 segundos aquí es un poquito demasiado, así que lo configuramos en dos, pero ahora necesitamos cambiar ambos scripts porque si solo cambio el uno por el globo amarillo, entonces solo lo hemos cambiado por el globo amarillo, claro, no por el azul. Entonces cambiemos al azul y también lo pongamos en dos aquí. Ahora se establece en ambos scripts en ambos códigos, tenemos la misma cantidad de tiempo o la misma velocidad aquí. Esto se pone más difícil ahora, pero sigue siendo factible Pero si tuviéramos un tercer globo, entonces realmente sería difícil hacerlo. Tenemos dos globos ahora, pero tenemos el problema de que necesitamos cambiar el guión de cada globo aquí, de cada uno para hacer cambios como la velocidad aquí o tal vez si queremos cambiar el sonido aquí por uno diferente, uno que subimos, tal vez. También podemos grabar un sonido aquí. Tenemos que hacerlo aquí dos veces. Eso es un problema. Por el momento, la solución será preparar aquí un sprite y preparar un guión Y si realmente estás seguro de que este es el guión final, entonces duplica el sprite Entonces digamos que aquí tenemos el guión final. No hace falta cambiar nada aquí. Entonces podemos duplicarlo. Digamos, cuatro veces. Ahora, comencemos el juego. Entonces tenemos tres globos amarillos y un globo azul aquí. Pero también podemos cambiar, claro, aquí, el disfraz del tercero. Vamos a entrar en disfraces. Hoose un disfraz. Búsqueda de globo. Ahí lo tenemos. Toma esta morada. Facilita el primero aquí y aquí. Bueno, hagamos lo mismo. Búsqueda de balon. Pero aquí sólo tenemos estos tres colores . Eso es un problema, tal vez. Así que volvamos y cambiemos el color aquí. Así que selecciona el globo o la parte principal del globo, y luego vamos a llenarlo y cambiarlo un poco. Pongámoslo más al rojo. Tenemos un color más rojizo aquí, y también puedes cambiar este Por ejemplo, también hazlo un poco más rojo, así Sí, está bien. También puedes por supuesto, cambiarte el disfraz aquí o puedes cargar uno diferente a tu gusto. Ahora tenemos cuatro globos aquí, y veamos si podemos reventar todos. No, no exitoso. Pasemos al modo de pantalla completa. Sí. 40 es el puntaje máximo que podemos llegar aquí en este juego, y esto es bastante agradable. Pero si los globos están más separados, tal vez, entonces eso no es posible hacerlos reventar a todos. He logrado hacerlo. Se perdió uno. Sí. Ahora tengo todos los globos. Bien, entonces yo diría que eso es todo para nuestro primer juego. Pero hay una cosa más que puedo hacer para configurar aquí el número de segundos. Cada globo tiene que llegar al destino. Podemos usar también variables, por supuesto. Entonces hagamos una nueva variable aquí. Hacer una variable aquí, bajo las variables de categoría. Hagamos uno nuevo, y también para todos los sprites, porque queremos usarlo en todos los sprites Entonces lo llamamos velocidad, solo lo llamamos velocidad. No es exacto porque son varios segundos, pero de todos modos, llamémosle velocidad, y cuanto menor sea el valor, mayor será la velocidad. Pero de todos modos, creo que está bien. No necesitamos mostrarlo aquí, así podemos quitar la casilla de verificación y luego queda goe ¿Qué tenemos que hacer? Tenemos que reemplazar estos dos aquí, deslizarse 2 segundos dos x e y, necesitamos reemplazarlo por una variable Entonces la variable de velocidad aquí, Así que vamos a arrastrar esto sobre esto aquí, y luego soltarlo y tenemos segundos de velocidad de deslizamiento a esta posición Entonces tenemos que establecer, por supuesto, la variable aquí, el valor de la variable, a, digamos, 1.5, y podemos hacer esto aquí cuando vaya haga clic. Aquí, arrastramos este conjunto variable dos valor, y luego elegimos velocidad y aquí en el campo de valor, solo ingresamos 1.5. Eso es. Este brit de aquí tiene ahora este 1.5, éste, así que vamos a comprobar esto Uno es más rápido, ya ves, y esto tenemos que hacer para todos los globos aquí. Ahora solo tenemos que poner la variable de velocidad aquí en este lado. Eso es fácil, ve al globo morado y luego arrastra la variable de velocidad aquí para deslizarse, y luego para el globo amarillo igual, y para el globo azul también Entonces cada globo tiene la misma velocidad aquí. Vamos a probarlo. Ahora se pone muy difícil reventar todos los globos, así que probémoslo. Sólo uno también uno, tres, eso es puntaje alto. Ahora, tres es mi puntuación más alta aquí. Es casi imposible hacer las cuatro. De todas formas, ahora podemos usar esta variable aquí, y también necesitamos establecer el valor de la variable aquí en la primera o en la cuarta aquí mismo en el globo cuatro. Realmente podemos usar esta velocidad establecida a 1.5 en cualquier lugar aquí, pero solo necesitamos hacerlo en un sprite Dejémoslo aquí, y no necesitamos poner la puntuación a cero en cada sprite, así que también podemos deshacernos de esto tal vez Retirarlo aquí y eliminarlo aquí. También puedes dejarlo ahí No es tan importante, pero no es necesario configurarlo en cada sprite aquí en cada guión Así que solo necesitamos configurarlo aquí en un sprite. Y lo mismo para la velocidad, la velocidad y la puntuación se establecen en el último sprite aquí en el sprite rojo, y luego cualquier otro sprite puede usar Vamos a probarlo. Trabajando. Se utilizaron variables aquí en dos lugares. En el primer lugar estaba esta puntuación que se incrementaba en diez cada vez que el jugador choca con un globo, chasqueaba un globo, y el segundo lugar estaba aquí en planeo y la cantidad de segundos que se utiliza para llegar a la posición objetivo, por así decirlo la velocidad del globo Eso es todo por esta parte. Ahora también podemos mejorar el juego a bit, por ejemplo, podemos usar un retraso aleatorio para cada globo para que no todos los globos se muevan al mismo tiempo. Esto lo hacemos en la siguiente. 9. 09 Cómo agregar retraso a los globos: A. Entonces Hagamos el juego un poco más interesante retrasando cada movimiento, cada movimiento de globo por un tiempo aleatorio Eso es lo que hacemos, y esto es bastante fácil porque aquí tenemos este bloque. Bajo control. Ir al control de categoría y luego al primer bloque de peso número segundos. Este aquí puede ser un número fijo, por ejemplo, un segundo, 2 segundos, lo que sea. Podemos probar esto primero. Hagamos esto en el globo cuatro en el globo rojizo. Podemos simplemente insertarlo aquí. O tal vez deberíamos simplemente moverlo aquí debajo de estos bloques variables establecidos. Entonces, antes de iniciar el movimiento, esperamos 1 segundo, y vamos a comprobar qué hace esto. Y vemos que el globo rojo se retrasa 1 segundo. Eso es fácil. Pero esto no es muy interesante porque cada vez que iniciemos un juego, esto siempre será de 1 segundo, por lo que es predecible. No queremos que eso sea predecible porque es un juego, y debería ser divertido, claro. Entonces arreglemos esto. Es fácil. Vamos a operadores y este bloque aquí, escogemos al azar de uno a diez selecciones un número aleatorio. Nosotros solo lo ponemos aquí en peso en este campo redondeado aquí, y después tenemos pick de peso al azar uno a diez. Diez es un poco largo, 10 segundos. Entonces digamos solo cuatro, 4 segundos, y luego intentamos esto. Entonces cada vez que iniciamos el juego, debería ser uno, dos, 4 segundos al azar, y aquí lo tenemos. Esto es tal vez fueron 4 segundos. Vamos a intentarlo de nuevo. Y ahora tenemos tal vez 3 segundos. Hagámoslo otra vez. 4 segundos, y volvamos a hacerlo. También podemos hacerlo 0-4. ver si hago eso, entonces se ve que el reset de la posición aquí siempre va a suceder después del peso aquí. Creo que tenemos que mover eso aquí. Vamos a mover eso ir a x e y por encima del peso. Inmediatamente se restablecerá a esta posición aquí y luego esperará y luego se deslizará Eso es mejor. Y ahí está el globo. Bien, entonces tenemos este mecanismo de ponderación aquí para el globo rojo Lo necesitamos también para los otros globos. Entonces te voy a mostrar algo para que puedas copiar un bloque, un bloque complejo como este, como este peso con un número aleatorio de segundos a los otros globos. Para eso, solo extrae esto aquí. Simplemente podemos separar esto y luego arrastrarlo hacia afuera. Entonces este bloque aquí puede simplemente arrastrar a los otros sprites aquí Por ejemplo, este es se menea un poco, entonces puedes soltarlo aquí y de esta manera, se copiará Este bloque aquí se queda aquí, pero también se copiará aquí a este sprite Aquí lo tenemos, y ahora podemos Simplemente ponerla aquí justo antes del planeo y luego de vuelta al globo rojo, y luego también podemos arrastrarlo aquí al segundo spride, soltarlo, y también al primer Ahora tenemos que colocarlo en la posición correcta aquí. Justo antes del planeo, esperamos un número aleatorio de segundos. Lo mismo para el globo azul aquí. Justo antes del planeo, esperamos un número aleatorio de segundos. Eso es. Intentemos y vemos que los globos esperan un número aleatorio de segundos. Otra vez, claro, el globo rojo ya no está funcionando porque hemos arrastrado esto, así que solo volvamos a ponerlo aquí Juntos de nuevo de esta manera, el globo rojo también funcionará ahora Hay un problema. Puede que ya lo hayas visto. Si vuelvo a empezar, ya ves que todos los globos están esperando subir aquí. Eso es demasiado fácil porque el jugador puede simplemente sacarlo ahí en la parte inferior. Tenemos un pequeño problema aquí, pero simplemente es fácil de arreglar. Veamos qué tenemos aquí. Estamos poniendo la puntuación a cero aquí en nuestro guión de globo rojo, estamos estableciendo la velocidad en 1.5, y vamos a esta posición inicial aquí, y luego la mostramos. Después de haber mostrado el globo, estamos esperando. El problema es que aquí en este punto, ya se muestra el globo, y luego espera, digamos máximo de 4 segundos, y en este tiempo, el jugador puede ver el globo El arreglo es muy sencillo, cambia el orden aquí. Tenemos que mostrar el globo justo antes de este planeo aquí, y esto tendrá que hacer en cada sprite Hemos insertado el peso en la posición equivocada. O el espectáculo está en la posición equivocada ahora, Corregamos esto. Eso es todo para el globo morado, y nosotros hacemos lo mismo con el globo amarillo aquí y para el azul también. El espectáculo debería ser justo antes de que tengamos el planeo. Aquí, eso es correcto. Comprobemos de nuevo, muéstralo justo antes del planeo Entonces eso debería ser correcto. Vamos a probarlo. Los globos no se muestran antes de que comiencen a moverse. Eso es más agradable ahora, y puedo tratar de reponer los globos. Sí, sí. No. Sí. Eso fue una falta. Vamos a intentarlo de nuevo. Esta vez. Tengo la puntuación máxima de 40. Ahora tenemos un juego bonito y es bastante entretenido, y no es tan fácil golpear todos los globos, estallar todos los globos. Por ejemplo, ahora, solo tengo 30, y también puedes, por supuesto, duplicar aquí más globos para que puedas tener tal vez diez o lo que sea. También este retraso podría ser un poco más largo o este retraso aleatorio podría ser tal vez 5 segundos para que sea más fácil hacer estallar los globos o más difícil como quieras. Pero creo que esto debería concluir nuestro primer juego. En mi opinión, esto es bastante agradable, o tal vez deberíamos deshacernos de este año. No es necesario que se muestre esta posición en Y. Esa es una vez más. Empecemos el juego. Ya faltó un globo. Ahora tengo también 30 como marcador. Por favor, siéntase libre de jugar con él y divertirse. A lo mejor puedas mejorar en una u otra cosa aquí. Puede mejorar quizá un poco en la mecánica del juego, puedes doblar más globos para que puedas hacerlo más difícil o el juego sea largo que si tienes más y más retraso también, entonces el juego se alarga, claro También se puede cambiar el vestuario aquí. Si no te gusta este globo, puedes dibujar el tuyo propio o puedes importar un disfraz nuevo, subir el disfraz aquí y luego elegir, por ejemplo, un PNG JPEG o un SVG, entonces puedes reemplazar este globo aquí tu propio globo o tal vez también puedas cambiarlo. Con los trajes preestablecidos aquí. Esto concluye nuestro primer juego y el siguiente juego comenzará en la siguiente sección. 10. 10 Crea una cuenta para almacenar y compartir en la nube: Antes de continuar con nuestro próximo proyecto de juego, te mostraré cómo unirte a scratch y cómo hacer una cuenta para que puedas almacenar tus proyectos, tus juegos en línea, y también compartirlos con otros para que otros puedan jugarlos, y también puedan echar un vistazo al código de nuestros guiones y luego hacer ajustes al juego, hacer su propio juego basado en tu juego y todas estas cosas geniales. Hagamos esto. Tienes que hacer clic en Unirse a Scratch aquí, y luego ingresar un nombre de usuario. Por ejemplo, pongo en juego Def profesor y luego una contraseña, Así que tal vez quieras desmarcar esta casilla de verificación aquí para no mostrar tu contraseña, pero también puedo dejarla marcada que todo lo que escribas aquí sea visible, no estoy haciendo eso, así que voy a crear una nueva cuenta aquí y luego usar una contraseña aleatoria No voy a mostrar. Entonces tienes que escribir tu contraseña dos veces para asegurarte de que la has escrito correctamente, y por supuesto, tienes que recordar la contraseña Así que ponlo tal vez en un gestor de contraseñas, algo así, o escríbalo y escóndalo. Entonces entonces si tecleaste correctamente las dos contraseñas, contraseñas idénticas aquí Puedes hacer clic en siguiente, y luego tienes que elegir tu país. Entonces estoy eligiendo Alemania porque ese es mi país, pero por favor elige tu propio año y mes de tu cumpleaños. Entonces eso es mío aquí. Soy un correo, y luego el siguiente. ¿Cuál es tu correo electrónico? Y luego scratch te mantendrá informado sobre cosas nuevas agregadas a scratch, algo así. Así que solo pon tu dirección de correo electrónico. Pondré el mío aquí, y luego crearé tu cuenta con este botón de aquí. Y toma un poco. Entonces bienvenido a la maestra de Scratch Game Df. Entonces ahora estoy encerrado aquí. También estoy teniendo este menú aquí, perfil configuración de la cuenta MyStuff Entonces vayamos primero al perfil. Aquí está mi perfil. Puedes escribir algo sobre mí, en lo que estoy trabajando, y también puedes cambiar tu imagen aquí. Simplemente deshazte de esto confirma tu correo electrónico para habilitar el uso compartido. Para compartir un proyecto, tienes que hacer clic en un enlace en el correo electrónico que has recibido. Debería haber recibido a estas alturas, simplemente voy a hacer clic en eso de distancia y puedes ingresar aquí tu sobre mí, en qué estoy trabajando, y también cambiar tu foto aquí. También aquí, tienes una lista de tus proyectos compartidos, de tus proyectos favoritos y rasguños que estás siguiendo. Pero eso no es tan importante. Tienes un mensaje aquí. Aquí hay mensajes desde cero. Bienvenido después de hacer proyectos y comentarios, recibe mensajes sobre ellos aquí, ve a explorar y hacer un proyecto. Eso es lo que haremos. L et's volver a nuestro proyecto aquí. Consulta nuestra página de proyecto aquí, y también podemos guardar ahora aquí, o podemos guardar como copia. Para que se haga una copia de su proyecto. Pero por ahora, guardamos proyecto guardado, y luego podemos echar un vistazo a nuestra página de proyecto. Aquí está. También puedes cambiar, claro, el nombre aquí, globos pop, y aquí también puedes jugar el juego. Y las instrucciones son instrucciones para jugar el juego, y también se pueden ingresar otras notas y créditos aquí. Pero por ahora, esto no se comparte. Tienes que hacer click en compartir, y luego otros rasguños también pueden ver el proyecto y también jugarlo y editar el proyecto a quien les guste. Volvamos aquí, cierra este tutorial. Estamos conectados en nuestra cuenta, y como dije, puedes guardar en línea. No tienes que descargar. También puedes descargarlo, claro, y cargarlo desde tu computadora, subir un proyecto, pero también puedes guardar ahora en línea en la Nube, por así decirlo. O también puedes hacer una copia. Ahora hemos hecho una copia y el nombre cambia a Globos pop copy. Ahora tienes dos proyectos. Aquí, si haces clic en aquí, este botón, podrás ver tus cosas. Mis cosas son dos proyectos no compartidos, cero proyectos compartidos porque no he compartido ningún proyecto aquí Esto es privado ahora aquí, pero también puedes eliminar los proyectos aquí, ver adentro para editarlos, reproducirlos y compartirlos. Eso es lo que quería mostrarte. Volvamos a nuestros globos. Pop. Y aquí tenemos nuestro proyecto. Así que cada vez que inicias sesión en otra computadora, tal vez, entonces todavía puedes editar tus proyectos aquí porque se guardan en línea. 11. 11 Nuevo juego de control de la nave espacial: Entonces aquí estamos. Este es el comienzo de nuestro nuevo juego, y este juego se llamará Space Explorer, y el jugador controla un cohete espacial que viaja por el espacio y se encuentra con cosas como meteoroides, rocas, algo así Pero también tal vez recursos de materia prima, algo valioso por lo que el jugador luego obtiene puntos, y si el jugador, el cohete golpea un meteoro, por ejemplo, entonces, habrá daños, y esta será la idea Y comencemos. Así que tenemos este año CATs. He empezado un nuevo proyecto. Podemos eliminar el gato y crear un nuevo sprite aquí, elegir un sprite de los recursos aquí de los sprites predefinidos, y podemos buscar un cohete, y ahí lo tenemos, nuestro Simplemente haga clic en él. Se puede ver también que tiene una animación. Así que vamos a revisar los disfraces aquí. Y se puede ver que aquí tiene cinco fotogramas, animación para cinco fotogramas, y podemos usar esto para hacer las imágenes un poco más interesantes para tener una animación del objeto jugador aquí, la nave espacial Pero primero, vayamos a controlar la nave espacial. La idea es que puedas controlar la nave espacial usando las teclas del cursor, las teclas flecha hacia arriba moverán la nave cohete hacia abajo a la izquierda A la izquierda y derecha a la derecha. Fácil, pero tenemos que aprender un nuevo concepto. Entonces hagamos que nuestra nave espacial aquí un poco más adecuada para el juego Hagámoslo un poco más pequeño, tal vez como 30, pongamos el tamaño en 30, entonces esto será mucho más pequeño, pero también habrá más espacio para otras cosas como meteoroides y otras cosas Aquí lo tenemos, y vamos a saltar al código aquí. Vayamos a la sección de eventos y luego movemos esto vaya haga clic aquí a nuestro guión Canvas. Bien. Cuando vaya clicado, entonces qué, tenemos que establecer la posición inicial Vamos al movimiento y luego vamos dos y después a la posición inicial. Yo sugeriría que empezarás desde el centro de la pantalla, y el centro de la pantalla es cero, cero, esa será la posición de inicio. Justo en el centro, entonces aquí irá a los ys positivos y aquí al ys negativo. Puedes verlo aquí si solo voy a y posición y marco esta casilla de verificación aquí. El valor se mostrará aquí. el momento, es cero, claro, porque empecé el juego y este bloque aquí lo está poniendo a cero, y además la x será cero. También te puedo mostrar la x aquí. Si muevo esto a la cima aquí, se puede ver que la y se mete más en los valores positivos. Si lo muevo hacia abajo, verás que esto es menos algo. Esto es positivo y, esto es negativo y, y a la izquierda, también se puede ver para la x, esto es x negativo, y esto es x positivo a la derecha. Bien, entonces ahora tenemos esto. Estamos centrando el cohete y ahora tenemos que dejar que el jugador controle la nave Vamos a deshacernos de estos, así que desmarca estas dos casillas aquí, y luego tenemos más espacio para el resto Entonces, ¿cómo lo controlas? Estamos introduciendo aquí algo que podrías llamar un bucle de juego. ¿Y qué es un bucle de juego? Game loop es algo que hace un bucle para siempre. No para siempre, pero mientras el juego se ejecute, simplemente girará infinitamente. Entonces, ¿dónde está eso? Vamos bajo control, y entonces tenemos esto para siempre. Y también se llama para siempre. Entonces solo para arrastrar esto aquí debajo de esto, vaya a x, vaya a y. Y aquí tenemos este bucle, y ¿qué significa loop? Significa que todo dentro se repite infinitamente. Entonces, si haces algo después de esto aquí, nunca se ejecutará. Entonces si hago algo como esto aquí, muevo diez pasos, por ejemplo, ni siquiera puedo adjuntarlo aquí porque scratch sabe que después de este bucle para siempre, no tiene ningún sentido poner algo ahí porque esto no se ejecutará. Entonces esto no es posible. Solo puedes mover esto dentro del bucle forever. Entonces, ¿qué pasa si hago esto? Así que mueve diez pasos. Hagamos esto. Empecemos esto, y ves que va a la derecha. Y luego sí, está algo atascado aquí, así que no puedes moverlo más que esto. Entonces la x será de máximo 242 aquí. Entonces moviendo esto más a la derecha, no funciona. Entonces esto es para siempre haciendo esto aquí. Y si haces dos cosas al bucle, hará estas dos cosas también para siempre. Entonces hagamos otra cosa. a ir a la posición aleatoria después de mover diez pasos. Ejecuta esto y verás que va por todo el lugar lo más rápido que pueda. Eso no es muy útil, pero también podemos insertar un retraso aquí. Vamos al control, y aquí tenemos el bloque de espera 1 segundo, o podemos esperar 1 segundo o dos o lo que sea. Vamos a probar esto. Ves que se mueve diez, luego espera 1 segundo, y luego se mueve a una posición aleatoria Pero de todos modos, no necesitamos esto aquí. Lo que necesitamos es otra cosa. Espero que entienda el punto de que todo lo que hay dentro aquí se repetirá para siempre. No hay salida. Siempre se repetirá y repetirá y repetirá. También hay un bucle diferente aquí. Se puede repetir diez veces. Entonces solo lo repetirá diez veces. O puedes tener repetir hasta, y esto repetirá los bloques internos aquí hasta que se cumpla una condición, y luego saldrá. Y te das cuenta de que estos tienen estos pequeños notch aquí. Entonces puedes hacer algo después de eso. Pero en el forevep, no tienes eso, no hay forma de adjuntar algo aquí después de siempre, lo cual es algo lógico, así que pero hay que tener en cuenta que nunca saldrás de este bucle para siempre Por lo que siempre estará aquí. Pero también puedes agregar un evento diferente aquí. Entonces, cuando quiera hacer algo en paralelo, siempre puede arrastrar otro cuando vaya haga clic aquí y luego agregar un script después de eso. Eso es posible. Puedes tener dos cosas corriendo a la vez, o tres o cuatro o lo que sea, cuántas te gusten. En esta lupa para víspera, ¿qué hacemos? La idea es que comprobemos si se presiona una tecla, y este bloque está bajo detección. Tenemos presionado este espacio de teclas y podemos arrastrarlo al lienzo aquí. Pero necesitamos algo más, también. Necesitamos algo que también esté bajo control. En inglés, podemos decir, si se presiona tecla, entonces haz algo, y aquí en scratch, es lo mismo si algo, entonces haz algo. Esta condición aquí después del si, este puede ser este bloque aquí. Pongamos esto aquí después del si. Sólo déjalo caer aquí. Entonces tienes si el espacio de teclas presionado entonces, y luego bajo esta condición, si se presiona la tecla de espacio, entonces podemos hacer algo aquí. Pero no queremos la tecla de espacio aquí, necesitamos, digamos que empezamos con la flecha hacia arriba. Si se presiona la tecla de flecha hacia arriba, entonces haz algo. ¿Qué hacemos entonces? Por supuesto, movemos la nave espacial Comprobemos cómo se hace esto. Cambiamos Y. Cambiamos la posición y por una cierta cantidad. Entonces, sigamos con los diez aquí, cambiemos y por diez. Entonces cada vez que se presiona la tecla de flecha hacia arriba, luego cambia y por diez. Y diez medios a la cima, por lo que se incrementará la y. Así que vamos a comprobar si esto funciona. Presiona ir, y luego estoy presionando la flecha hacia arriba aquí, y vemos que esto funciona. No puedo bajar, pero puedo subir. Entonces necesito detenerlo y reiniciar, y entonces y luego puedo hacer esto de nuevo. Bien, así que hagamos la bajada también. Haga clic aquí en el if, botón derecho del mouse, y luego puede decir Duplicar, y luego tiene que poner este segundo duplicado si bloquear aquí justo debajo justo después del if. Esta es la flecha hacia arriba, y esta será la flecha hacia abajo. Si se presiona la flecha hacia abajo, no la flecha hacia arriba, entonces necesitamos cambiar y en la dirección opuesta. Aquí esto es positivo porque queremos que la nave espacial suba y aquí esto tiene que ser negativo, y luego bajará la y de la nave espacial. Vamos a probar esto. Estoy presionando hacia arriba Ahora estoy presionando hacia abajo. Esto parece funcionar, muy bonito. Ahora tenemos que moverlo de izquierda a derecha. Nuevamente, duplique este bloque. Tienes esto si, y luego cambiamos la clave aquí. Empecemos con una tecla de flecha izquierda, y luego cambiemos no y en este tiempo porque left es x, y también a la derecha será x Eliminemos esto aquí, lo borremos, y aquí tomamos el cambio x y, ponemos eso aquí, y esta vez, x se cambiará por diez. Intentemos esto y va a la derecha. Esto está mal. Esta tiene que ser la flecha derecha. Intentemos esto de nuevo a la derecha sí, presionando la tecla derecha, la tecla de flecha derecha. Esto funciona. Lo único que queda queda, y volvamos a duplicarlo una vez más. Ponlo después del si anterior, y ahora si se presiona la tecla flecha izquierda, luego cambiamos x por, y ahora necesitamos moverlo hacia la izquierda, eso significa que tenemos que restar diez aquí Vamos a cambiarlo por menos diez. Nuevamente, probémoslo, izquierda, derecha, arriba y abajo, y esto funciona. Para que la obra pueda controlar la nave espacial. Si esto es demasiado rápido, tal vez no lo suficientemente suave, entonces necesitamos cambiar estos valores aquí. A lo mejor podamos decir, pongamos aquí cinco, y eso será entonces menos cinco. Y esto será cinco, esto será menos cinco. Ahora la velocidad será un poco menor. Intentemos esto de nuevo, y ahora la velocidad es más lenta. Ahora, tenemos el control de la nave espacial. Este es un paso muy importante aquí. Repasemos de nuevo el código. Cuando se hace clic en go, estamos poniendo la nave espacial en la posición inicial, la posición inicial aquí, y esto es cero y cero, x es cero e y cero Entonces tenemos un bucle. Bucle a través de estos bloques aquí dentro para siempre, así que repita esto para siempre o mientras el juego se ejecute. Lo que hacemos es que estamos comprobando en cada iteración aquí si se presiona la tecla, error arriba, el error abajo, error derecho, y la flecha izquierda, o el error izquierdo Y si este es el caso, estamos cambiando y y x aquí en este caso. Dejemos que eso entre un poquito. Esto es muy importante. Esta es la forma en que haces el movimiento, el movimiento del controlador. Esta es la forma estándar de hacerlo. Tienes este bucle para siempre, que es como un bucle de juego en juegos más sofisticados. Esto siempre se repite lo más rápido posible, y aquí estamos detectando qué tecla se presiona y luego cambiando la posición x o la y de nuestra nave espacial aquí Entonces en el siguiente video, reemplazaremos este valor constante aquí, este cinco en este caso con una variable para que podamos cambiar la velocidad aquí a nuestros gustos. No hay que cambiar cuatro valores aquí todo el tiempo. A lo mejor hay algo como un power up o algo que pueda aumentar la velocidad, así que necesitamos reemplazar estos valores constantes aquí por una variable. Pero hagámoslo en el siguiente video. 12. 12 Adición del fondo: Estamos aquí en nuestro juego de explorador espacial y ahora se trata de hacer el fondo. Se podría pensar, es el fondo, así que tenemos que ir a las gotas de atrás aquí. Pero hay una razón para no hacer eso. Lo estamos haciendo con otro sprite. Vamos a crear otro sprite. Aquí tienes esto elige un sprite, o también puedes pintar un sprite, y esto es lo que hacemos Por supuesto, también hay estas opciones para subir una imagen de sprite, SVG, algo así Y también conseguir una sorpresa y tener algo. Hagamos esto, vamos a conseguir un sprite aleatorio aquí. Esto no es lo que queremos, claro, pero por supuesto podemos borrarlo de nuevo. Este es nuestro sprite aleatorio. Si lo vuelves a hacer, obtienes uno diferente. Esta vez es un tazón. Esa es la opción sorpresa, y podemos comprobar aquí si encuentras algo como espacio o universo o estrellas, pero aquí no encontrarás nada. Encontramos un sol, pero eso no es lo que queremos. Queremos un fondo negro con puntos claros en él, blanco, tal vez puntos blancos en él, y esto no está en la biblioteca aquí. Hagámoslo nosotros mismos solo elige la pintura aquí. Entonces podemos pintar nuestro fondo. Empecemos con un rectángulo. Elige esta herramienta rectangular aquí, y luego elegimos un color diferente, claro, debería ser negro. Ponemos el brillo a cero, y eso es negro. Si quieres el blanco, tienes que establecer el brillo a 100 y la saturación a cero, y ahora tienes el blanco. Pero aquí queremos el negro, así que el brillo a cero hará que todo sea negro. No importa lo que pongas aquí o aquí. Todo será negro si estableces el brillo a cero. Ahora tenemos el color de primer plano negro y la herramienta rectángulo activada, y luego hay que arrastrar un rectángulo aquí Entonces trata de ajustarlo a estos límites aquí. Si creas el rectángulo aquí, entonces puedes ajustarlo con estos puntos aquí con los pequeños círculos aquí. Hagámoslo más o menos exactamente igual que esta zona interior aquí. También puedes acercar el zoom. Para comprobar si lo hemos logrado. Ahora no es exactamente. Ahora bien, esto está bien. No tiene que ser exacto. Si hiciste algo mal, entonces simplemente puedes hacer deshacer aquí, entonces esta flecha se deshace, y luego se deshará la última acción Hagamos esto correcto aquí. El lado izquierdo, siempre ve a estos círculos aquí, y luego puedes ajustarlo, y luego, eso debería estar bien. Alejemos el zoom. Ese es nuestro trasfondo. Pero, ¿qué falta aquí? Las estrellas. Entonces las estrellas son círculos, al menos en este juego. Entonces elige el círculo, y luego necesitamos cambiar el color de primer plano de co, brillo a 100 y luego saturación a cero Esto te dará blanco aquí. Bien. Entonces nos acercamos un poco y arrastramos un círculo aquí. No será círculo si no mantienes turno aquí. Entonces, en tu teclado, mantén presionada la tecla Mayús, y luego es un círculo perfecto aquí. Pero es un poco demasiado grande, así que hagámoslo un poco más pequeño. Algo tal vez así. Comprobemos esto. A lo mejor un poco demasiado grande, vamos a mantenerlo así. Tenemos una estrella aquí, no mucha. Tenemos que hacer más estrellas. Volvamos a la herramienta de selección aquí. Seleccione la herramienta de selección, esta flecha aquí. Ahora podemos seleccionar nuestra estrella aquí, y ahora podemos copiarla. ¿Cómo lo copias? Presiona copiar aquí, este botón, o también puedes comandar C o en windows, es Control C, y lo has copiado, y luego puedes pegarlo. Pegar es este botón o comando V o Control V. Vamos a pegarlo, y luego está aquí y luego puedes arrastrarlo a una ubicación diferente aquí Vamos a arrastrarlo a otro lado. Quizá aquí. Hagamos otra copia. Comando C o control C, control o comando V, y esto hará otra copia. Lo arrastramos a otro lado. Otra vez, moviéndolo. Aquí hicimos un pequeño montón de estrellas. Ahora lo que podemos hacer para que las cosas sean un poco más rápidas es, podemos seleccionarlas. Alejemos el zoom. Seleccione, y luego podemos arrastrar un rectángulo aquí. Ahora también has seleccionado el fondo, lo cual no es bueno. Entonces, deseleccionemos el fondo aquí. Presione Mayús y luego seleccione el fondo, y luego esto deseleccionará el fondo Ahora sólo tenemos estos aquí seleccionados. Vamos a copiarlos, Conti o Komaz y luego insertarlos, pegarlos nuevamente. Vamos a acercarnos un poco y luego podremos mover estas nuevas estrellas a otro lugar. Tenemos que arrastrar una de las estrellas y luego todas las demás estrellas también irán con ella. Pongámoslos aquí y hagamos que un poco los ajustemos un poco, seleccionamos éste y lo movemos. A lo mejor éste también. Éste. Aquí es un poco diferente. Así. Ahora deberíamos hacer otra copia de nuestro campo estelar aquí. Nuevamente, selecciona estos, deselecciona el fondo, y luego puedes copiarlo y moverlo a otro lugar. Como aquí, también puedes rotarlo con este. Este asa de aquí puede girar todo el asunto. Y luego cópielo de nuevo, moviéndolo tal vez por aquí, girándolo un poco, tal vez esta vez al revés, y otra copia, y luego lo movemos por aquí. Creo que está bien. A lo mejor movemos estas estrellas un poco hacia la derecha. Bien, creo que está bien. Entonces este es nuestro trasfondo estelar. Creo que eso está bien por ahora. Entonces este es nuestro sprite de fondo aquí, el primer sprite de fondo que tenemos, pero hay un problema No está en el fondo. Ya no se puede ver la nave espacial. Entonces, si hago clic en la nave espacial, no es visible aquí, pero debería ser visible ¿Cuál es el problema aquí? Está detrás del segundo sprite, detrás del sprite de fondo Y esto, por supuesto, no es lo que queremos. ¿Cómo podemos arreglar esto? Podemos moverlo al fondo. Y esto es aquí en Los, selecciona looks aquí, y luego puedes rodar hacia abajo, ir a la capa frontal. Este es este bloque de aquí. Así que arrastra este bloque al lienzo al lienzo del guión. Y entonces podemos cambiar esto no al frente, pero queremos que vaya a la capa posterior. Entonces haz esto. Y como nunca cambiamos esto, solo podemos hacerlo una vez aquí en el editor y simplemente hacer clic en este bloque aquí. Si haces clic en el bloque, esto se ejecutará aquí este bloque. Ir a la capa posterior. Ahora esta spride está en el fondo, y por supuesto, nuestro cohete está ahora en primer plano Eso es. Ese es nuestro antecedente spride Está bien así, pero es estático, no se mueve, y queremos un efecto de desplazamiento, para que parezca que el cohete en realidad está volando por el espacio Esto es lo que hacemos en el siguiente video. 13. 13 Movimiento del fondo: Aquí tenemos nuestros antecedentes otra vez, y este bloque aquí ya no es necesario, así que podemos borrarlo, simplemente arrastrarlo por aquí, y desaparecerá. Bien entonces necesitamos mover el fondo para que el jugador tenga la impresión de que el cohete realmente está volando por el espacio. Entonces, ¿cómo hacemos eso? Va a ser así aquí. Pero claro, va a estar en el fondo. Pero primero fijemos la ubicación del fondo a la posición inicial. Cuál es la posición inicial La posición inicial estará aquí en algún lugar aquí en el centro, por lo que debería ser 00. Eso es lo que hacemos a continuación. Ir a eventos. Cuando se hace clic en go, entonces estamos configurando la posición de inicio Ir a x e y, y este ya es el caso aquí, x cero, e y también cero para que se reinicie cada vez que se inicie el juego. Vamos a probar eso. Basta con mover el sprite de fondo y luego comenzar, y ahora lo tenemos de nuevo en la posición inicial Pero nuestro cohete ha vuelto a desvanecerse. Entonces para evitar esto, tal vez deberíamos seguir usando este bloque de ir a capa aquí. Así que solo consíguelo para atrás, ve a la capa trasera aquí. Después de ir dos x e y, nuestro chip de cohete vuelve a ser, visible, ya no detrás del sprite de fondo ¿Cómo movemos este sprite de fondo? Es igual que el chip cohete, pero sin los controles, los controles serán automáticos, por así decirlo, así que necesitamos un bucle para siempre. Algo así, y por supuesto, esto será después de la inicialización aquí Primero, establecemos x e y en cero, y luego vamos a la capa posterior para asegurarnos de que el sprite esté realmente en el fondo y el cohete esté en primer Ahora tenemos este bucle de juego aquí para nuestro sprite de fondo Hablando de sprite de fondo, podríamos simplemente renombrarlo aquí, que puedas cambiarle el nombre, por ejemplo, BG one A lo mejor tenemos un segundo, así que lo estamos llamando BG one return, ahora se le cambia el nombre ¿Qué necesitamos aquí? Tenemos que mover el fondo, y esto es por supuesto en la moción, así que ve a movimiento y luego cambia y por diez. Probemos esto. Esta es la dirección equivocada. Yo quería bajar, así que debería ser menos. Es un poco demasiado rápido, así que ry menos dos aquí. Vamos a intentarlo de nuevo y ahora se mueve al fondo aquí. Esto es lo que queremos, pero también queríamos empezar de nuevo aquí en la parte superior, así que necesitamos restablecerlo si se alcanza esta posición. La posición aquí es -346, y esto es lo que tenemos que tener en mente aquí Necesitamos un chequeo si la posición es lugar aquí en esta posición y. ¿Cómo lo hacemos? Vamos al control. Esta vez no se trata de bucles, sino de una condición, si se cumple una condición, entonces queremos restablecer esta ubicación de Sp, la ubicación de Sprites y Esto es si A condición, entonces haz esto, y aquí ya podemos poner, ir a x y, x está bien, la forma es cero, e y debería ser la posición inicial. No, no debería ser la posición inicial, pero debería ser algo así aquí. Vamos a moverlo todo el camino hasta la cima aquí. Esta es la ubicación más alta aquí. Y aquí tenemos 346. Entonces es lo mismo, pero en lo positivo. Bien, entonces esta es la posición que necesitamos para restablecer este sprite dos Y ahora necesitamos la condición. Entonces la condición va justo aquí. ¿Cómo hacemos una condición simple? Ya lo hemos hecho. Aquí tenemos operadores. Entonces no está detectando esta vez, sino que son los operadores. ¿Qué necesitamos verificar? Tenemos que verificar si la ubicación, la ubicación y está por debajo de un valor. Y este es este bloque de aquí. Pon esto aquí. Y déjalo caer. Y ahora necesitamos la ubicación y de nuestro sprite. Ir a movimiento. Entonces aquí tenemos la posición y. Esto es lo que necesitamos. Verificamos la posición y si la posición y es menor que esta menos 4346, entonces necesitamos restablecer a esta ubicación Vamos a probar eso. Esta condición no se cumple por el momento, no se cumple, y entonces no está funcionando. Y? Debido a que la posición y nunca será menos tres , 47, siempre se quedará aquí. Tenemos que disminuir esto. Tenemos que disminuir esto en uno o aumentar esto en uno, no son 36, 345. Si la posición y obtiene dos menos tres, 46, esto se cumplirá aquí, esta condición. Probemos esto. Y está funcionando, muy agradable. El sprite de fondo ahora se moverá al fondo y si llega al fondo, entonces se restablecerá aquí a través de este condicional Si la posición y es menor que menos 36, cinco, entonces reinicie la posición a esta. Ese es el movimiento del fondo. Funciona muy bien. El problema aquí es que aquí tienes este espacio vacío en blanco. Para ello, necesitamos tener otro sprite y este debería ser una copia de este sprite, pero debería moverse un poco diferente, o al menos debería comenzar en una ubicación diferente, y lo hacemos en el siguiente video 14. Sprite de fondo de 14 segundos: Ahora que tenemos nuestro fondo móvil así, necesitamos duplicar este sprite de fondo aquí porque tienes este espacio vacío o blanco aquí en el medio, así que necesitamos llenar eso por supuesto con un segundo ¿Cómo lo hacemos? Eso es muy, muy fácil. Simplemente duplique este sprite o primer sprite de fondo. Ahora tenemos un segundo, y luego empezar de nuevo, verás que todavía tiene este espacio vacío, este espacio en blanco aquí, de, porque ambos sprites están justo en la misma posición Pero eso es muy fácil de cambiar. Sólo tenemos que cambiar aquí la posición de inicio del segundo fondo, y lo colocamos a este tres, cuatro, seis. Simplemente desconectemos esto aquí para ver cómo se ve esto. Se establecerá al principio a esta ubicación aquí, y luego comenzará a partir de aquí. Esto es lo que vemos si solo volvemos a conectar esto. El segundo está comenzando de aquí y luego baja y el otro sprit también va abajo, hazlo abajo. No se puede ver porque no hay brecha entre los dos. Lo que podemos hacer es que podemos ir a disfraces aquí en el primer fondo, y luego podemos seleccionar este rectángulo aquí donde el relleno es negro, y fijamos el contorno vamos a ponerlo en rojo aquí. Entonces esto tendrá un contorno rojo para que lo puedan ver aquí. Vamos a encargarnos del otro de aquí. Cambiar al segundo fondo sp. Seleccione de nuevo, el rectángulo, luego cambie el contorno. Oh, también puedes cambiar el relleno, claro. Pero cambiemos el esquema aquí para digamos este azul aquí. Ahora tenemos este borde azul. Aquí tenemos el borde rojo, para que puedas ver cómo se mueven juntos en sincronía. Empecemos y puedes ver aquí está esta línea de separación. Del segundo, el borde superior aquí, y no hay brecha entre los dos sprites de fondo aquí Esto es muy agradable y fue bastante fácil lograrlo. El segundo sprite es igual que el primer sprite de fondo Solo es necesario cambiar la posición inicial. Comprobemos de nuevo el código. Vamos a la posición inicial, que está en el segundo sprite una diferente Comienza justo en la parte superior aquí, y luego vamos también a la capa de fondo de. Entonces lo hacemos por eup aquí. Y cambiamos y por menos dos, es decir, baja. Cada iteración de bucle, irá dos píxeles hacia abajo. Y si la posición, la posición y llega a un cierto punto llega aquí al fondo, que verificamos con esta condición aquí, entonces la reiniciamos a la posición inicial aquí. Lo mismo para el primer fondo sp, Lo que aquí es diferente es solo la posición inicial, comienza justo en el medio para que cubra todo aquí. Se puede ver este rojo aquí, este borde superior rojo aparece aquí, y luego baja, abajo, abajo, abajo, abajo, abajo, abajo. Y si llega a esta posición, vuelve a subir igual para la segunda. Ese es nuestro trasfondo conmovedor, y creo que eso es realmente impresionante. No hemos escrito ni construido mucho código. Simplemente todo es muy sencillo, y aquí podemos mover el chip del cohete. Y el fondo está desplazándose de arriba a abajo. También podemos cambiar, claro, las estrellas para que se ponga un poco más interesante porque por el momento, solo tenemos una copia, un clon del primer fondo aquí, y tiene las mismas estrellas. Entonces podemos de cambiarlo aquí, disfraces, y luego puedes mover todos estos puntos por aquí. Recuerda anular la selección del rectángulo aquí, y luego puedes moverlos, rotarlos, A. Lo mismo aquí. Deselecciona el fondo y luego muévalos o gíralos para que el patrón sea un poco diferente A lo mejor así. Aquí, vamos a rotarlo un poco. Ahora se ve diferente. Vamos a intentarlo de nuevo. También podemos deshacernos de las fronteras ahora. No los necesitamos. Seleccione este rectángulo aquí, y luego reinicie el contorno dos negros. Et's también quitan el otro. Aquí, vuelve a ponerlo en negro, brillo cero. Empecemos de nuevo el juego. Lo puse en pantalla completa para que lo veas mejor empezar, y ahora podemos mover la nave espacial por aquí No hay nada que recoger o algo así o la nave espacial no puede golpear nada en este momento, pero puede flotar por el espacio y el jugador puede controlarlo Eso es muy bonito. Ese es un muy buen comienzo. Tenemos un fondo de desplazamiento con dos sprites de fondo diferentes Ahora en el siguiente video, agregaremos algunos objetos más aquí para que el jugador tal vez pueda golpear un meteorito y obtener daños. 15. 15 Primer obstáculo hacia la roca: Ahora que tenemos nuestra nave espacial flotando por el espacio, viajando por el espacio, y nuestro fondo moviéndose, necesitamos un obstáculo Así que detengamos este juego aquí y hagamos otro sprite, claro Así que elige un sprite, y aquí tenemos algo así como una roca Entonces busca roca aquí en este campo, y tenemos astilla de cohete y rocas, y estoy eligiendo rocas. Ahora tenemos este de aquí. Entonces tenemos que ajustarlo un poco. Entonces entramos en disfraces, y aquí tenemos el sprite, el disfraz, el traje principal del sprite Así que primero vamos a deshacernos de esto aquí, para asegurarnos de que tienes la herramienta de selección, esta flecha aquí, y luego solo seleccionarla y Puedes usar este botón tu eliminar o puedes presionar eliminar en tu teclado o retroceso, también funciona Ahora tenemos esto y es un poco demasiado grande. Creo, así que vamos a cambiar el tamaño Aquí puedes cambiar el tamaño por aquí. Hagámoslo 50%. Ahora, creo que ese es el tamaño correcto y muévelo un poco aquí. Eso es un poco mejor. Ahora podemos cambiar también un poco la forma si quieres. ¿Cómo se hace eso? Puedes, por supuesto, rotarlo así. Pero con esta herramienta, no se puede acceder a los diferentes puntos aquí dentro de esta imagen vectorial. Tienes que usar este de aquí. Esta es la herramienta correcta para acceder realmente a estos puntos aquí del SVG. Ahora puedes acercar un poco y luego cambiar estos puntos aquí. Este es el interior. Entonces aquí tenemos el esquema. Este es también el esquema. Vamos a darle una forma un poco diferente aquí. Esto es, por supuesto, un poco de retoques aquí. Tenemos que tener cuidado para seleccionar, click en estos círculos aquí. Solo haz que se pierda un poco más el círculo. Entonces hagamos una pequeña curva aquí, algo así, algo así como una roca. Ahora el otro lado. Lo que también puedes hacer es mover esto aquí. Entonces esto va a cambiar la curvatura aquí. Algo como esto. También puedes hacerlo curvo o puntiagudo. De esta manera tienes aquí un borde puntiagudo agudo o uno curvo. Aquí puedes cambiar la curva. Puedes jugar un poco por aquí. Voy a limitarlo a cambiarlo un poco. Esta es la zona interior aquí. T Creo que ya es suficiente. Todavía no muy bonita. Pero creo que está bien. Si quieres, puedes por supuesto, hacerlo mejor aquí, poner un poco más de esfuerzo en ello. Hagámoslo un poco mejor. Cómo puedes agregar puntos aquí es simplemente hacer clic en la línea así. Entonces tienes un nuevo punto. A lo mejor necesitamos uno aquí. Simplemente haz clic en la línea, y luego obtienes un nuevo punto aquí que puedes usar. No soy artista, así que ese no será el meteorito más bonito que Pero pienso así, a lo mejor está bien. Dejémoslo así. Lo importante es usar esta herramienta aquí para obtener acceso a los puntos individuales aquí y usar esto, si quieres, por ejemplo, mover esto o rotarlo esto aquí. Algo como esto. Pero lo volví a poner en el medio. Lo dejo así. Este es nuestro meteorito, pero quiero cambiar un poco el color Volvamos de nuevo a esta herramienta, este selector de puntos aquí, y seleccionemos aquí esta área interior. Entonces cambiamos el color de eso. Este es un color verde, pero lo cambio a marrón. Algo así, tal vez. Creo que está bien. Ahora tenemos nuestro meteorito, y está ahí sentado, no moviéndose Esto, por supuesto, no es correcto. Lo que podemos hacer ahora es copiar nuestro guión del fondo, del primer fondo aquí, tal vez o tal vez el segundo. Tomemos el segundo. Aquí tenemos el guión, y ahora copiamos este guión a esta roca meteóide Simplemente arrastra esto aquí hasta que se menee, y luego simplemente suéltalo, suéltalo, y ahora lo has copiado. Seleccione la roca. Aquí tenemos este guión. Este guión es una copia del otro guión. Veamos qué pasa si empiezo el juego. Se mueve hacia abajo, se mueve hacia abajo. Eso es bueno. Pero también está atascado aquí. Tenemos que dejar que desaparezca aquí si llega a este fondo aquí. Esta es esta condición aquí si posición y es menor que -345 Esto es diferente aquí. Se puede ver aquí es que este meteorito está atascado en una posición Hagámoslo otra vez. No podemos verlo porque no está en primer plano Por supuesto, necesitamos cambiar esta capa de ir a la capa posterior para ir a la capa frontal. Ahora debería ir al primer plano. Ahí está. Lo vemos atascado aquí. Eso es -187. Tenemos que cambiar esto menos 8186, debería ser Si está por debajo de eso y 187 está por debajo de eso, entonces debería ir a la primera posición. Este es el correcto aquí. Comprobemos esto. Ahí está la roca, y luego golpea el fondo y luego vuelve a venir aquí en la parte superior. Eso es lindo. Se está repitiendo Por supuesto, esto es muy fácil para la nave espacial para que el jugador evite el obstáculo. Pero es un comienzo. Este es nuestro primer obstáculo aquí, y el cohete o el jugador deberían evitar golpear eso. No hay prueba de aciertos en este momento. Pero por supuesto vamos a poner en práctica eso. Además, siempre está en la misma posición aquí, así que es aburrido. Pero tenemos nuestro meteorito. 16. 16 Golpear la roca: Ahora, estamos golpeando la roca o la nave espacial está golpeando la roca, y luego debería desaparecer, y tal vez deberíamos disminuir algunos puntos ahí o aumentar algún daño Pero al menos al final, la nave espacial debería reaparecer, y luego el juego continúa, pero tal vez con uno vive menos, algo así Hagamos la parte de golpeo. ¿Cómo lo hacemos? Cuando el barco choca con la roca, debería desaparecer por ahora, y luego digamos después de 3 segundos, debería reaparecer, luego en medio de la pantalla, algo así ¿Cómo hacemos esto? Tenemos este bucle de juego aquí en nuestra cadera cohete y ahí podemos probar para el evento hit, o no es un evento, pero se puede encontrar aquí bajo detección, ir a detección, y luego tenemos puntero táctil del mouse. Este es el bloque que estamos buscando. Pero no se trata del puntero del ratón, se trata de otro sprite, y esto son rocas Tocando rocas. Esta es la condición, y para una condición, usaremos el bloque if. Esto de aquí. Si toca rocas, si el cohete toca la roca, Correcto, entonces haremos algo. ¿Qué vamos a hacer? Ocultamos el cohete. Bajo miradas, y luego aquí en la parte inferior, hay escondite. Solo pon eso aquí, y esto podemos probar. Pongamos esto si bloque aquí. Al final en el bucle forever. Esto es importante, no afuera. No puedes hacerlo afuera porque no puedes hacer algo después de siempre. Este es el lugar que necesitas para dejarlo aquí. Estamos pasando por el bucle de juego para siempre y luego si el cohete choca contra la roca, si toca la roca, entonces debería estar oculto. Hagamos esto. No estamos controlando la nave, y ahora desaparece. Eso funciona. Ahora queremos que vuelva a aparecer después de 3 segundos. Tenemos que esperar 3 segundos y dentro de estos 3 segundos, este control aquí no funcionaría. Vamos a la espera de. Pon eso detrás del pellejo , espera, digamos 3 segundos. Entonces dentro de estos 3 segundos, este bucle forever no iterará, y luego después de los 3 segundos, queremos reaparecer Tenemos que mostrarlo. Arrastre este espectáculo aquí. Después de esperar 3 segundos. Probemos esto y veamos que el barco no es visible. ¿Por qué? Debido a que no lo hemos mostrado al inicio, necesitamos mostrarlo por aquí cuando vaya haga clic, luego mostrar el sprite Ahora lo podemos ver y ahora desaparece, porque golpea la roca, y luego vuelve a aparecer Entonces podremos controlar la nave y movernos por el meteorito Volvamos a golpear la roca y luego debería reaparecer. Esto es lindo. Pero claro, tenemos que hacer algo si la nave espacial choca contra la roca porque Debería haber una penalización por golpear rocas, y digamos que la nave tiene vidas Tenemos tres vidas tal vez y luego se resta uno vivo si el barco choca contra la roca Entonces si el barco tiene cero vidas, el juego ha terminado. Hagamos esto en el siguiente video. 17. 17 Daños y reparaciones: En este video, contaremos las reparaciones. Tienes una cierta cantidad de reparaciones. Tienes dinero para, digamos tres reparaciones. Si golpeas la roca más de tres veces entonces el juego ha terminado. Necesitamos contar el número de reparaciones y ¿cómo contamos? Ya sabemos que se trata de variables con una variable. Hagamos uno. Ir a variables, eliminar esta, la variable my. No necesitamos eso. Haz uno nuevo, y esto debería ser para todos los sprites. Esto debería ser reparaciones o tal vez reparaciones dejadas, algo así. Por supuesto, tenemos que fijarnos al principio. Establecer reparaciones dejaron dos, tres, el jugador tiene tres reparaciones tres o dinero para tres reparaciones, y luego el juego ha terminado. Podemos ver aquí las reparaciones dejaron cero. Tenemos que comenzar el juego. Ahora tenemos tres, y claro, esto no cambia. Esto es lo que tenemos que hacer ahora, y es súper fácil. Sólo un cambio de reparaciones a la izquierda, esta cuadra aquí por una. Ahora esa no es la cantidad correcta menos uno, debería hacer el truco, por lo que debería disminuir decremento, reparaciones dejadas por una Hagamos esto ya sea antes o después del peso tal vez antes sea mejor. Hagamos esto. Ahora tenemos dos Si le volvemos a golpear, tenemos uno, y si le volvemos a golpear, tenemos cero, y ahora el siguiente crash debería terminar el juego. Pero en este caso, tenemos menos uno. Tenemos que verificar si nos quedan reparaciones por debajo de cero. Si esto llega a menos uno, el juego ha terminado. ¿Dónde hacemos esto? Lo hacemos aquí justo antes del peso tal vez. Tenemos que verificar una condición para esto, tenemos el si entonces bloquear aquí, arrástrelo aquí. Ahora también tenemos esto a menos de bloque, también necesitamos eso, y tenemos que arrastrarlo aquí. Ahora necesitamos obtener el valor de nuestras reparaciones variables que quedan. Ir a variables, y aquí nos quedan reparaciones, nuestra variable, y podemos arrastrarla aquí a esta condición a esta condición menos que. Si las reparaciones que quedan son menores a cero, el juego ha terminado. Entonces tenemos que comprobar qué hacemos si el juego ha terminado. Por ejemplo, podemos decir algo. Suena gracioso, pero así es como puedes hacerlo. Entonces Bajo miradas, has saludado durante 2 segundos, y esto mostrará una burbuja con un texto. Vamos a probar esto. Intentemos primero mostrar este mensaje cada vez que el barco choca contra la roca. Así que di hola. No es quizá el texto correcto aquí. Digamos choque, por 2 segundos. Sí, creo que está bien. Vamos a probar esto. Aquí se puede ver, no, está oculto, por eso no se puede ver la burbuja. Cambiemos el orden aquí. Tenemos que ocultarlo después de este mensaje. Que eso se ponga. Cambiamos la variable por menos uno, decimos crash, nos escondemos, y luego esperamos 3 segundos. Veamos esto. Choque. Y otra vez, choque. Ahora bien, si el valor variable de las reparaciones dejadas está por debajo de cero, tenemos que decir algo así como el juego terminado. Pongámoslo de nuevo aquí. Se acabó el juego y vuelve a intentarlo. Primer choque, Segundo choque. Ahora el tercer choque sigue bien, pero ahora ya no nos quedan reparaciones. Debería decir que se acabó el juego. No es el caso. Tenemos que comprobarlo, y lo sé porque está oculto. Por supuesto, el orden equivocado otra vez. Vamos a esconderlo después de esto. Vamos a intentarlo de nuevo. Ahora vamos a esta vez, disminuir el número de reparaciones. Pongámoslo a una reparación, y luego se acabó el juego. Por lo que el próximo choque se acabará el juego. Funciona. Primero choque, claro, porque nos estrellamos, y luego tenemos juego terminado Tenemos ambos, y luego se necesitan 2 segundos para mostrar esto y luego verifica esta variable. A lo mejor es decir el choque justo después de este cheque aquí. Cambiemos de nuevo el orden y luego lo intentamos de nuevo. Primero choque, quedan cero reparaciones y ahora se acabó el segundo juego de choques. Y luego chocar. ¿Cómo terminamos el juego en realidad? Si este es el caso aquí, tenemos que detener el juego. También es posible. Vamos al control y luego paramos todo. Ponlo aquí en el caso del juego. Vamos a intentarlo de nuevo. Primer choque. Segundo choque, y luego se acabó el juego. Esto es lindo. Incluso es un juego. No es muy emocionante porque solo tenemos una roca, un meteorito, y además no hay nada que recolectar y tal vez llenar las reparaciones que te quedan o no hay meta que alcanzar Entonces es aburrido. Pero ya es un juego, así que podemos hacerlo, claro que mejor, y lo haremos. Por ejemplo, lo primero que mejoraría aquí es que la roca aquí está en una posición x aleatoria. Si restablecemos la roca, para que esté aquí, vaya a x e y, pondremos esto a una x aleatoria y no a cero. Hagamos esto en el siguiente video. 18. 18 Posición de inicio aleatoria y bloques personalizados: Para hacer el juego más interesante, queremos introducir una posición de inicio aleatoria para nuestro meteorito Volvamos a revisar el juego. La roca siempre está comenzando desde la misma posición x aquí. Por supuesto, también está comenzando desde la misma posición y, pero la posición x es la interesante. Entonces el jugador de aquí sabe dónde está el meteoroide, y es muy fácil solo volar en esta posición x aquí No tienes que hacer otra cosa. Entonces eso no es muy interesante. Entonces tenemos que cambiar eso, y eso es bastante fácil. Usamos este bloque aquí. Entonces los operadores eligen al azar. Así que hemos usado esto antes en los globos en el juego de los globos reventados Entonces esto está generando un número aleatorio entre estos límites aquí. ¿Qué límites necesitamos? Entonces, pongamos este meteorito al lado izquierdo y veamos cuál es la exposición Algo así tal vez, y luego tenemos este -221 Entonces digamos -220, y luego yo diría más 220 luego del otro lado Eso sería como poner eso aquí así. Creo que está bien. Entonces entre estos dos números, habrá un número aleatorio escogido aquí, y esto tenemos que establecer aquí para nuestra x Así que aquí, pero antes de hacer eso, hagamos clic derecho sobre el bloque aquí y dudemos de ello. Tenemos dos de estos, pongamos el primero aquí, vamos a x. Aquí es cuando empieza el juego. Vamos a esta posición de reinicio, y este es el número aleatorio aquí para x y el y es 346, y también lo mismo aquí cuando restablecemos la posición. Si se alcanza esta posición y, entonces reiniciamos y pasamos también a un número aleatorio x y esta posición y fija. Eso es fácil y vamos a probarlo aquí, y vemos Esta vez es esta posición aquí de la roca, y esta vez es esto por aquí, así que el jugador no puede simplemente dejar el cohete aquí en el medio porque habrá un número aleatorio, una posición x aleatoria en el medio, y esta es la única y chocar, así que el jugador necesita alejarse del camino aquí, y esto es un poco un poco más interesante. Aún así, solo tenemos un meteorito, solo una roca, así que no es muy difícil evitarlo, pero al menos es aleatorio y la exposición es cada vez, la roca se restablece, la posición se establece aleatoriamente Bien. Entonces, lo que no es tan agradable de esto aquí es el hecho de que tenemos que meter esto dos veces. Entonces este bloque, este bloque de números aleatorios de selección. Tenemos que ponerlo en dos ocasiones. Entonces si quieres, por ejemplo, cambiar los límites aquí, tenemos que hacerlo aquí aquí. Entonces, si queremos que esta roca esté más en el medio, entonces tenemos que cambiarla en dos ubicaciones aquí. No tan agradable. Y es por ello que aquí presentamos un nuevo concepto y este concepto son bloques personalizados. Puedes hacer tu propio bloque. Aquí están mis cuadras. Puedes hacer tus propios bloques, y verás cómo se ve esto y lo usaremos aquí para nuestro reajuste de la roca a esta posición inicial y también a la posición inicial cuando llegue al fondo La idea es reemplazar estas dos llamadas para ir a x, ir a y con una x aleatoria con un bloque personalizado. Hagamos esto, hagamos un bloque debajo de mis bloques, y luego puedes elegir un nombre de bloque aquí. Simplemente pon el cursor aquí o simplemente puedes escribir escribir tu nombre para el bloque. Diré que esto es reset random x. Debería ser un nombre que de alguna manera transmita el significado de lo que se hace dentro del bloque Un bloque puede contener otros bloques algo así como una subrutina. El nombre debe describir lo que se hace en este bloque. Así que solo haz clic. Las otras opciones no son importantes en este momento. Así que solo haz clic en k, y luego ya tenemos este bloque aquí. Y aquí definimos lo que se hace en este bloque. Para que puedas poner cualquier bloque que te guste aquí, Al igual que después de que la W vaya haga clic, puedes poner lo que quieras aquí. Entonces hagámoslo. Queremos restablecer la posición de las rocas a la posición inicial, así que necesitamos extraer este bloque aquí. Entonces solo tira eso aparte y luego saca esto y ponlo aquí en este definir reset random x Esto lo dejaremos así. Y también, esto se puede arrastrar aquí, y se puede borrar esa, liderar esa Así que solo déjalo caer por aquí. Bien, entonces, ¿cómo llamamos a este bloque? Muy fácil? Vamos a mis cuadras y luego la tenemos aquí. Establecemos x al azar, y este es nuestro bloque personalizado y solo podemos usar como cualquier otro bloque arrastrar este bloque personalizado aquí, luego lo juntamos todo. Y también la segunda ubicación está aquí. Si se alcanza esta posición y, entonces reinicie también a esta posición x aleatoria y a la posición y fija. Entonces probemos esto primero, y debería funcionar igual que antes? La exposición de rocas se elige aleatoriamente cada vez que pulsa el botón Entonces eso es lo que queríamos, y eso es lo mismo que antes, así que nada cambió. Pero lo bueno es que este código es más fácil de cambiar. ¿A qué me refiero? Si quieres cambiar aquí este rango del que se escoge el número aleatorio, y solo tienes que cambiar esta ubicación aquí. Por ejemplo, si quieres que esté más en el medio en el centro, podríamos decir que está entre -100 y más 100, y eso es todo Sólo tenemos que cambiar esta ubicación aquí de este código en estas dos posiciones, función, como se podría llamar, también, o este procedimiento, o esta subrutina es llamada desde este código de posición y desde este código de ubicación. De esta manera, es más fácil cambiar, y puedes hacer lo que quieras aquí dentro. Entonces cada vez que se hace clic en G, se llama a este bloque Qué significa eso, los bloques bajo este reset random X bajo este reset definido aleatorio X, son ejecutados. Y entonces cuando aquí no hay más bloques, la ejecución se reanuda aquí después de este bloque personalizado. Entonces el siguiente será ir a la capa frontal, y luego este bucle para siempre. Lo mismo aquí, si se alcanza esta posición y, y saltamos a este reset aleatorio bloque X aquí, y vamos a x se ejecuta y después de eso para siempre. Continuará. Entonces este es un buen truco. No es necesario usar bloques personalizados. Siempre puedes ir sin ellos. Pero es más fácil hacer cambios si usas este script aquí, estos bloques dentro de este bloque personalizado en más de un lugar. Lo estamos llamando aquí y aquí, y de esta manera solo tenemos que cambiar esta ubicación dentro de nuestro definir reset random X. Utilizaremos esta posibilidad para crear bloques personalizados también más tarde, pero aquí está la primera introducción a este concepto, y esto es muy importante porque hace que tu código sea más legible. Así que imagina si tienes como diez bloques aquí en este bloque personalizado, y tendrías que ponerlo aquí, directamente sin este bloque personalizado, y tienes esto dos veces igual en dos ubicaciones aquí en el código y quieres cambiar algo ahí, entonces siempre tienes que cambiar dos ubicaciones. Si necesitas esta funcionalidad en diez lugares, por ejemplo, entonces necesitas cambiar estos diez lugares. Pero si tienes aquí este bloque personalizado, solo necesitas cambiar esta ubicación. Por supuesto, también, hace que el código sea más legible porque se puede nombrar a este bloque, qué hace exactamente este bloque. Es como escribir un comentario para que este bloque de aquí esté restableciendo la posición x a un número aleatorio, y esto es lo que dice la descripción aquí El nombre del bloque dice, reset random x. Puedes poner en buena descripción para que puedas leer tu código igual una oración en inglés, por ejemplo. Cuando vaya haga clic en restablecer X aleatorio, luego vaya a la capa frontal y así sucesivamente, y también podemos tal vez también podamos poner este bucle forever en un bloque personalizado no necesario, sino por nombrarlo. Eso lo podemos hacer. Hagamos esto, hagamos otro bloque, bucle de juego, y luego bien. Ahora podemos definir nuestro bloque personalizado de bucle de juego, poner ese bucle para siempre aquí y solo usar este bloque de bucle de juego aquí, y esto será lo mismo. Empecemos de nuevo el juego. Y ves que esto está funcionando igual que antes. Pero ahora hemos estructurado nuestro código un poco mejor, y puedes leerlo igual que el lenguaje normal aquí. Cuando vaya haga clic, vuelva a establecer X aleatorio, vaya a la capa frontal, bucle de juego. Y si quieres saber qué se hace en Game loop, solo tienes que ir aquí para definir game loop. Entonces puedes dejarlo así, pero voy a poner esto para everop aquí atrás Yo solo fui un ejemplo. Vuelve a poner eso aquí, y podemos deshacernos de definir aquí. Lo que tienes que hacer primero es deshacerte de este bloque aquí. Entonces puedes deshacerte de lo definido, y luego el bloque también se elimina aquí. Así es como defines tus propios bloques personalizados que pueden contener código arbitrario, puedes tener tu script completo aquí dentro. También puedes llamar a otro bloque aquí dentro que también es posible. De esta manera puedes estructurar tu código más bien para que tú u otras personas que puedan trabajar en este juego puedan entender de qué se trata el guión. 19. 19 Clonación de nuestra roca: Nuestro juego es algo divertido o al menos más divertido que al principio porque aquí hemos introducido aleatoriedad, y esta es esta posición aleatoria de la roca aquí para que el juego sea un poco más difícil de jugar, pero aún así, es muy fácil evitar esta roca de aquí Entonces, ¿qué necesitamos? Necesitamos más rocas, claro. Entonces de esta manera, el juego será más difícil. Y claro, podríamos simplemente copiar las rocas aquí con click derecho sobre el Sprite Dublic, y luego tenemos dos rocas, y podríamos hacerlo así Entonces probémoslo. Entonces ahí tenemos dos rocas, y todo está bien. Así que vamos a comprobarlo una vez más. Entonces están más cerca entre sí. Hemos limitado el rango aquí a 100, -102 un 100 positivo Entonces volvamos a poner eso a Creo que fue 220 y luego dos 220 positivos. Entonces eso es un poco mejor, entonces es más aleatorio. Aquí podemos ver que las rocas están más separadas, lo cual es de co mejor. Y el juego es más difícil ahora, porque hay que evitar dos rocas. Y claro, podemos hacer otro, kit doble, y así sucesivamente. Entonces tenemos tres ahora Ellos están juntos aquí. Y ahí tienes también el problema. Estas dos rocas están más juntas. Pero el problema está aquí, he cambiado este 220 solo por esta roca y el primero se quedó con 100. Entonces tenemos que cambiarlo aquí también, menos 222 positivo 220. Empecemos de nuevo. Tan agradable. Pero ya has visto el problema Ahora se distribuyen de manera uniforme aquí, ya no. Pero ya ves el problema de que si hacemos copias duplicadas de estas rocas aquí, y tenemos que cambiar algo más tarde Tenemos que hacerlo en cada sprite aquí. Entonces si tengo que cambiar el rango aquí, tengo que entrar en cada sprite el código y luego cambiarlo por cada sprite Eso no es muy agradable, así que tenemos que llegar a una mejor solución aquí. Entonces, eliminemos aquí las rocas adicionales. Podemos hacerlo con una sola roca. ¿Y cómo podemos hacerlo? Este es un método llamado clonación, y todo fan de Star Wars sabe a lo que me refiero, qué es la clonación, claro, porque en Star Wars, tienes las guerras de clones, y un clon es una copia de una fuente, digamos, una entidad fuente. Entonces tienes la entidad fuente, y en nuestro caso, es por supuesto el sprite Estás haciendo clones de ella, así que copias exactas de ella. Pero estas copias tienen su propia, por así decirlo, vida, y son independientes del clon original. O de la entidad original. ¿Cómo lo hacemos y cómo funciona en scratch? Seleccionamos nuestra única roca aquí. Y estamos haciendo copias o clones de esta roca. Entonces tenemos que ir al control. Así que aquí tenemos cuando empiezo como clon y creo clon de mí mismo y también borro este clon. Entonces, ¿cómo funciona esto? Primero necesitamos crear un clon. Arrastremos este bloque aquí al Canvas aquí. Así que solo inserta este clon de crear de mí mismo aquí justo después cuando se hace clic en go Bien, vamos a ver cómo afecta esto a nuestro juego. Empecemos. Y ahora tenemos que hacerlo. Pero sólo uno funciona como se esperaba y el otro no está funcionando siempre está aquí en esta posición. Eso no es suficiente. Tenemos dos rocas, está bien, pero la segunda no está funcionando de alguna manera. ¿Por qué? Porque lo que está haciendo crear clon de mí mismo es simplemente crear un clon en este momento, y después de eso, el resto del código no se ejecuta. Aquí comienza con cuando vaya haga clic, cree un clon de mí mismo, luego se crea el clon. Por lo que este código no se vuelve a ejecutar para este nuevo clon, sino solo para el sprite original Y sólo funciona el sprite original. Entonces todo lo que viene después de crear clon solo se ejecuta para el sprite original, no para el clon. ¿Cómo podemos arreglarlo? Eso es muy fácil. Para esto es este bloque. Cuando empiezo como clon. Esto es de alguna manera lo mismo que cuando G hizo clic. Pero esto se desencadena cada vez que se llama aquí a esto. Crear clon de mí mismo activará esto, pero para el sprite clon, no para el sprite original, claro ¿Cómo lo usamos aquí? Tenemos que mover esto aquí. A este evento cuando empiezo como clon. Cuando se hace clic en ir, entonces solo estamos creando un clon de nosotros mismos, y luego esto se ejecuta en el sprite clonado Empecemos. Ahora todavía tenemos una roca aquí en la parte superior y no se mueve o no está bajando al fondo, pero esto aquí. Este es en realidad el clon. Detengamos esto. Entonces este es el clon, y si detengo el juego, el clon desaparecerá, se borra. Sólo queda el sprite original. Así que cada clon que se crea durante el tiempo de ejecución se elimina si detengo el juego. Entonces de esta manera también se puede ver que esto de aquí, este sprite en movimiento es el clon Y claro, el original sólo está creando un clon una copia de sí mismo, y entonces no está haciendo otra cosa. Es por ello que el sprite original no está haciendo nada. Es sólo ahí sentado. Y el clon ya está funcionando. Eso es lo que queremos. También podemos crear otro clon. Entonces solo pon otro bloque aquí, crea clon de mí mismo, así tenemos dos clones ahora o deberíamos tener dos clones ahora. Empecemos. Y esto es correcto. Tenemos dos clones. Y cada clon tiene el mismo guión aquí. Si cambio algo aquí, entonces esto lo cambiará para todos los clones. Lo que no es tan bonito es que tenemos este sprite original aquí todavía mostrando, eso es fácil de arreglar Podemos simplemente ir a miradas, y luego escondernos. Sólo hay que poner un escondite aquí. Entonces cuando empiezo como clon, esto se llama para cada clon. Tenemos que mostrarlo. Esto es lo primero que hacemos, mostramos el nuevo clon, el nuevo ejemplar, y luego el resto será el mismo que para el sprite original Pero el sprite original no está haciendo nada aquí es solo esconderse, y luego crear dos clones Entonces esta es una plantilla ahora. El sprite original es una plantilla, que también está oculta para que no puedas verla, y los sprites reales que se usan en el juego son estos clones Empecemos el juego, y tenemos dos clones ahora, y el sprite original aquí está oculto, pero los clones son visibles porque estamos haciendo este show aquí cada vez que se inicia un clon Esto es muy bonito. También podemos tener como diez clones aquí. No hay problema. Podemos simplemente duplicar esto. Haga clic con el botón derecho del ratón aquí en el menú contextual, haga clic en Duplicar. Ya tienes cuatro clones. Empecemos de nuevo el juego cuatro clones. Esto es cada vez más difícil para el cohete evitar todas las rocas. Siguen siendo la misma posición y. No es tan difícil. Solo tienes que detectar la brecha aquí y luego dirigir tu chip de cohete hacia esa brecha Entonces eso sigue siendo fácil. Pero también podemos hacerlo más difícil. Pero no quiero copiar todo esto crear clon de mí mismo. Quiero hacerlo en bucle. Y esto es algo que no habíamos hecho antes. Tenemos este bucle forever, que por supuesto es bucle para siempre y no parando, pero también hay un control de bucle diferente, y luego tenemos esta repetición y luego una serie de iteraciones Podemos repetir, por ejemplo, diez veces. Esto va aquí diez veces. No necesitamos eso, crea bloques clonados aquí. No es necesario de esta manera, estamos creando diez clones, este bucle se itera diez veces Comprobemos esto. Deberíamos tener diez clones ahora. Esto es correcto, y ahora es muy, muy difícil, y yo diría que es imposible así. Así que no tienes oportunidad de evitar los diez. A lo mejor ahora tengo oportunidad, así que esto está bien, pero ahora se pone muy difícil porque a lo mejor no hay brecha entre todas estas rocas de aquí. Esto es muy difícil, pero creo que puedo manejarlo. Pero de todos modos, ahora tenemos diez clones, y esto es muy bonito porque no hemos duplicado los sprites, sino que hemos creado clones, y la ventaja es que no cambiar el código en diez sprites aquí, sino que solo hay que cambiarlo aquí en este script Por ejemplo, si queremos que todos los clones estén en un rango estrecho, podemos simplemente cambiarlo aquí, podemos Tal vez volver a este rango de -100 100 Todos los clones están dentro de estos x rango. Veamos cómo se ve esto. Y ahora es bastante fácil para el cohete evitar a los clones porque solo puedes ir aquí a la frontera exterior. Ese no es el problema aquí. Pero ya ves, puedes cambiarlo por todos los clones aquí. Todos los clones usan el mismo script, y esto es una ventaja muy grande. El sprite original solo se usa aquí como plantilla para crear los clones, no más, y está oculto justo al principio, y todos los clones se muestran justo al principio cuando se crean como un clon Esto es de alguna manera este Wen go click para los clones, similar, pero es un evento diferente. Aquí uso este Wen go click, cuando se inicia el juego para crear todos los clones que necesitamos. Este también es un concepto muy importante, la clonación, y de esta manera puedes evitar aquí la duplicación de código, lo cual es muy importante , o por ejemplo, si tienes algo como disparos o también, por ejemplo, tenemos recursos para recoger no solo las rocas, sino también algunos objetos que el jugador puede recolectar. También necesitas quizás diez de ellos, algo así. Entonces esto también se puede hacer muy bien con la clonación. Si lo harías con esta duplicación de sprites, esto se pondría muy, muy desordenado aquí Si necesitas cambiar algo en el script, si tienes diez duplicados de un sprite, esto es muy molesto de cambiar Este es el camino a seguir si tienes objetos similares de la misma plantilla. En este caso, son las rocas, los meteoroides, y esta es la manera de hacerlo aquí en cero Entonces tienes este sprite de plantilla, que también se define aquí con los disfraces y los sonidos, y también los guiones Esta es la plantilla para los clones, y siempre que se cree el clon, obtendrá este evento cuando empiece como clon, y luego el script principal, por ejemplo, se puede ejecutar aquí. Y así, ya tenemos diez rocas. Pero, claro, no es muy agradable que cada roca esté en la misma y posición todo el tiempo. Entonces necesitamos distribuirlos un poco, y esto lo haremos en el siguiente video. 20. 20 Retardo aleatorio: Este será un video corto. Haremos que el juego sea más interesante introduciendo delay. ¿Cuál era el problema o cuál es el problema? Acabo de quitar eso aquí de nuevo porque ya he introducido la aleatoriedad, pero la voy a quitar por ahora y mostrarte el problema otra vez Cada roca aquí está en la misma más o menos la misma posición y aquí. Entonces todo empieza por la parte superior al mismo tiempo. Por eso prácticamente no hay forma de moverse por estas rocas aquí, salvo las veces que aquí hay algunas brechas, pero por ejemplo, ahora esto es casi imposible de pasar por aquí. ¿Cómo arreglamos eso? Es muy fácil. Tenemos que introducir aquí un retraso aleatorio. Entonces ya he preparado esto aquí. Espera un número aleatorio de segundos, y lo introducimos al inicio del guión aquí. Cuando empiezo como clon, esto está esperando un número aleatorio de segundos, y luego comienza el movimiento. Podemos poner eso aquí, o tal vez también podemos poner eso dentro del bucle, o también podemos poner eso dentro de reset random x aquí. Pongámoslo aquí. Y volver a armar esto. Cada vez que empezamos, o tal vez tampoco deberíamos mostrarlo antes de este retraso. El show será después de este reinicio aleatorio. Cuando empiezo como clon, reinicio al azar, esto esperará un tiempo aleatorio, y luego irá a la posición inicial, que también utilizará un número aleatorio entre -200 2,220 Estamos usando esta aleatoriedad aquí dos veces al esperar para restablecer la posición y también para la posición x aquí Probemos este inicio y aquí podemos ver que esto funciona. Algunos están en la misma posición y, pero también podemos ver que esto no es del todo correcto aquí, porque todo es visible aquí todavía en la parte inferior. Arreglemos esto. ¿Por qué es eso? Porque aquí no estamos escondiendo el sprite. Vamos a mirar y luego esconderlo justo antes del reset random X. De esta manera, no debería quedarse ahí visible en la parte inferior. Ahora está desapareciendo en la parte inferior y luego con un retraso aleatorio reapareciendo desde Pero nos hemos olvidado de volver a mostrarlo , ese es el problema aquí. Pongamos ese show en este reset aleatorio X aquí y luego show y este w, también se llama aquí después del retraso. Vamos a reiniciarlo. Entonces están las rocas y luego desaparecen en la parte inferior y reaparecen en la parte superior con un retraso aleatorio De esta manera, el juego se pone bastante difícil, supongo, todavía factible Pero también vamos a introducir algunos objetos para coleccionar. Esto será entonces más interesante para el jugador porque el jugador tiene que recoger los objetos valiosos y evitar las rocas aquí. Y eso es por supuesto, más difícil. Por el momento, diez rocas están bien, creo, debería estar bien, y ahora podemos introducir nuestros valiosos recursos o tal vez o o algo así, algo que el jugador pueda recoger y tal vez vender después. 21. 21 Coleccionar estrellas: En este video, presentaremos nuestros recursos que el jugador puede recolectar, por lo que son coleccionables, y lo estamos implementando muy similar a las rocas Lo primero que hacemos es doblicar el sprite de rocas, o mejor deberíamos llamarlo roca porque es sólo una Así que simplemente cámbiale el nombre a rock, y luego puedes hacer clic derecho en el Sprite Elige Duplicar, y ahora tenemos un segundo sprite de roca. Lo primero que hacemos es cambiarle el nombre a recurso y ahora necesitamos cambiar el disfraz, claro. Asegúrate de haber seleccionado el spray de recursos aquí, y luego ve a disfraces. Este es el traje de rock. Estamos eligiendo uno diferente. Entonces aquí estamos eligiendo el disfraz de estrella. Busca estrella, y luego la tienes aquí. Ahora podemos eliminar el primer disfraz, el traje de rock. Y ahora aquí solo tenemos el disfraz de estrella. Bien. Entonces tenemos estrellas, y también tenemos código aquí. El guión es exactamente el mismo que el guión rock. Así que tal vez podamos comenzar esto, y luego tenemos diez clones aquí de nuestra estrella. Entonces hazlo. A lo mejor no diez, son demasiados. Empecemos con cuatro. Y luego empezamos el juego. Entonces vamos a ver. Ahí tenemos uno y ahí tenemos 12. Pero no está haciendo nada. Si les pego a estos no está haciendo nada. También lo que ves es que todos los clones están pegados aquí en la parte inferior. Vamos a arreglar eso. Detén el juego. ¿Por qué no se restablecen aquí? Porque esta coordenada no es correcta. Veamos, es esta coordenada aquí porque tenemos que seleccionar recurso, claro, y también está oculto, así que tenemos que mostrarlo por el momento. Y entonces podemos arrastrarlo por aquí, ahora, así aquí. Y entonces esta es la máxima o la mínima y porque si trato de que sea menor que eso, está saltando de nuevo a -180 Entonces -180 es el límite aquí, y esto es lo que tenemos que verificar aquí Entonces no es -180 lo que necesitamos ingresar aquí, entonces es menos 179 porque la posición y debe estar por debajo de eso Entonces probemos esto y veamos si todas las estrellas están desapareciendo Bien, entonces eso parece funcionar Todos están desapareciendo en la parte inferior y reapareciendo en la parte superior aquí Esto está funcionando. No podemos recogerlos. Pero claro, esto es algo que vamos a implementar. Pero por ahora, parece funcionar. A lo mejor es un poco demasiadas de las estrellas. Creo que aquí cambiamos el guión equivocado. Estos son diez, y aquí, necesitamos tener cuatro, ahora son más rocas que estrellas, así que eso es mejor. Es que de esta manera es más difícil. Pero al final, creo que diez también son demasiados. Entonces pongamos aquí siete. Comprobemos esto de nuevo. Sí, creo que es razonable. Por supuesto, tenemos que sumar ahora la prueba hit. Entonces hagámoslo. La prueba de impacto para el chip de cohete para las rocas ya está aquí, pero no podemos poner la prueba de impacto para las estrellas aquí también porque necesitamos ocultar el recurso aquí y restablecer su posición cuando la cadera del cohete lo golpea. Entonces esto no es nada que podamos hacer aquí porque a partir de aquí, no podemos hacer desaparecer el recurso , desaparecer la estrella. Entonces lo que tenemos que hacer es hacer lo mismo, o casi lo mismo que estamos haciendo aquí. Entonces el si toca roca, necesita estar en el recurso aquí. Entonces vayamos al chip de cohete táctil de detección. Entonces tocando el chip de cohete, y ahora tenemos que tirar en un si aquí. Si toca el chip de cohete. Esta es la condición que tenemos que verificar. Entonces toco el chip de cohete, y esto es algo que tenemos que hacer tenemos que poner en el Fevepe aquí al final Hagamos esto si tocamos el chip de cohete, entonces lo que podamos, por supuesto, esconderlo. Así que vamos a ocultarlo y probarlo de nuevo. Si la estrella está golpeando o tocando el cohete, entonces debería desaparecer, y esto parece funcionar. Pero el problema es. Una vez que le pegué, no consigo ningún punto por ello, claro, porque aquí no estamos contando nada. Hagamos esto entonces. ¿Qué necesitamos para contar los recursos? Por supuesto, necesitamos una variable, así que vayamos a variables, hagamos una variable, y la llamamos recursos. Y esto puede ser para todos los sprites. Ahora tenemos recursos, y pongo esto aquí al otro lado de la pantalla. Si chocamos contra el cohete, entonces los recursos necesitan subir, podemos configurarlo en uno más, así que solo cambia Después de esta altura, podemos cambiar los recursos por uno. Recuerden, el chip de cohete, si choca contra una roca, entonces cambiamos las reparaciones dejadas por menos uno, entonces está disminuyendo, y aquí estamos aumentando los recursos. Probemos esto. Y ahí está la primera estrella. Sí, y funciona. Recursos es uno recursos recolectados, y ahora tenemos dos, tres, 45, y así sucesivamente. Eso parece funcionar, y creo que es bastante fácil. A lo mejor deberíamos aumentar aquí de nuevo el número de rocas. Esto tal vez sea demasiado fácil. Bien, hagamos esto. Número de rocas está aquí, repita siete veces, así que tal vez nueve veces estaría bien. Ahora se pone más difícil. Por supuesto, Un choque. Primero choca, y veamos. Hay una estrella. Este está fuera de alcance, pero me sale éste, así que tengo 21 estrellas. Por supuesto, se nos olvidó algo. Hemos olvidado restablecer esta variable aquí. Hagamos este conjunto, y lo estamos haciendo al inicio aquí cuando vaya clic en recursos a cero. Empezamos con cero recursos y tres reparaciones. Y ahora tengo cuatro. Este no puedo llegar a cinco, y así sucesivamente. Todavía no es muy difícil, pero a veces está muy cerca. Creo que está bien. Estamos teniendo un sistema de recursos en funcionamiento, por lo que el jugador puede recolectar con la nave espacial, las estrellas y los recursos variables es contar hacia arriba, y lo que podemos hacer con las estrellas Decidimos más tarde, tal vez podamos comprar mejoras para nuestro barco estrella aquí, o tal vez podamos comprar reparaciones para ello para que tengamos más vidas que algo así. Pero por ahora, la recolección de recursos funciona, y esto es muy agradable. Esto es casi un juego. Entonces ya puedes ver lo bueno es el jugador al mirar los recursos que recolectó. 22. 22 Aterrizaje en un planeta: Ahora que el jugador puede recolectar recursos, recoger estrellas. Necesitamos una oportunidad para que el jugador venda estos recursos y obtenga algo a cambio, por ejemplo, una actualización a la nave espacial u otra reparación, entonces otra vida, por así decirlo Y esto lo haremos con los planetas, para que el jugador pueda aterrizar en planetas. Entonces tenemos que agregar otro sprite aquí, similar a las estrellas, similar a las rocas Así que solo copiamos aquí nuestro sprite de recursos, así que simplemente haz clic derecho sobre el recurso Duplicar Y luego cambiamos el disfraz en eso, así que ve a disfraces, y luego elige un disfraz y entramos en planeta, y tenemos esta tierra aquí. Pero vamos a llevar aquí a este planeta dos. Y ahora podemos borrar el primer disfraz aquí. Ya no necesitamos eso. Y luego vamos al código. Y aquí podríamos querer cambiar esto aquí, tal vez repetir cuatro veces. Entonces, ¿necesitamos cuatro planetas? Yo no lo creo. A lo mejor podamos hacer con dos planetas aquí. Entonces el jugador tiene que tocar, tiene que chocar con un planeta, y entonces automáticamente será un aterrizaje en este planeta También necesitamos cambiar el telón de fondo aquí. Entonces, por el momento, solo tenemos este fondo blanco vacío, y agregaremos otro. Así que elige un telón de fondo. Y entonces podemos buscar una ciudad aquí, y vamos a tomar tal vez este metro. Entonces esto ojalá se vea un poco futurista aquí. Y el problema ahora por el momento es que no se puede ver. Entonces tenemos aquí estos dos sprites de fondo, claro. Si los movemos, se puede ver que ahí está, de hecho, el telón de fondo, el nuevo telón de fondo aquí. Pero si empezamos el juego, simplemente no lo verás. Y ahí tenemos nuestro planeta, el primer planeta, y esto es lo mismo que un recurso en estos momentos. Entonces este es solo el mismo código, por lo que también aumentará los recursos aquí. Pero esto no es lo que queremos. Queremos algo más. Tenemos que ocultar estos dos telones de fondo para poder ver aquí el verdadero telón Entonces este es el primer sprint de fondo y el segundo, y necesitamos ocultarlos. ¿Cómo ocultamos los sprites de fondo? Seleccionamos el primero aquí. Lo que vamos a hacer es ir dentro de este bucle para siempre aquí. Y lo envolveremos con una condición. Esta vez no vamos a tomar la condición normal si entonces, sino que vamos a los controles aquí, y luego tomamos la condición if then else. Así que arrastra eso por aquí. Entonces tenemos lo mismo casi que aquí, pero tenemos este otro caso. Y este otro caso se ejecutará si esta condición aquí en la primera si no se cumple. Entonces pongamos aquí ese primer bloque, este que estaba en el para evlope Pongamos eso aquí en el primer si. Entonces tenemos si algo, tenemos que llegar a esos dos, por supuesto, entonces hacer esto. Y si algo no se cumple, es decir, si no esta condición aquí, entonces haremos esta otra cosa. Pensemos en qué condición necesitamos aquí? Voy a usar una variable global aquí. Hemos usado variables antes, así que deberías estar familiarizado con eso. Hago una variable aquí, y para todos los sprites, eso es muy importante porque todos los sprites necesitan la variable, necesitan el eje a la variable, y lo llamaremos travel stopped El viaje por el espacio será parada si esto es cierto de alguna manera, pero veremos cómo se ve esto. La parada de viaje en este momento es cero, como puedes ver aquí porque la estamos mostrando. Pero esto no es lo que queremos. No vamos a exhibir esto al final, así que podemostremos eso. Ahora tenemos que verificar si hay viajes parados aquí con un operador. Comprobemos por la igualdad aquí, tomemos esta y arrástrela en esta condición if. Y luego vamos a variables y arrastramos nuestra variable de parada de viaje aquí. Así que viajo parada es igual a cero, que es el valor inicial, luego hacer las cosas que hemos hecho antes en el para evelope, y de lo contrario tenemos que hacer otra cosa Y eso es que podemos esconder el sprite. Entonces hagámoslo. Si el viaje detenido no es cero, entonces vamos a ocultar el sprite aquí Ahora podemos poner ese bloque aquí de nuevo dentro del bucle forever, y no habrá ningún cambio, claro, porque siempre estaremos en este caso aquí si travel stop es igual a cero porque este es el valor inicial de la variable y la variable no se cambia en este momento. Bien. Entonces nada ganó por el momento. Pero vamos a hacer esto si golpeamos el recurso dos, y por cierto, deberíamos cambiarle el nombre a planeta. Entonces hazlo ahora. Entonces tenemos el planeta aquí. Y si golpeamos el planeta o si el planeta choca con el cohete, el momento esto es esconderse y luego cambiar los recursos por uno. Dejaremos ese escondite aquí. Pero deshazte de los recursos de cambio por uno porque esto no es una estrella, es un planeta, y esto debería ocultar el fondo, sprite aquí, o ambos. Aquí, necesitamos establecer esta variable de parada de viaje. Así que ve a variables y elige este bloque, conjunto, reparación, izquierda. Cambiamos eso para viajar parada y poner eso aquí después de la escondite. Así que establece la parada de viaje dos, uno. Por ejemplo, cualquier otra cosa, excepto cero, vamos a hacer aquí. Entonces, si la nave estelar, si la nave cohete golpea el planeta, entonces la parada de viaje se establecerá en una, y esto provocará que esto si falle Entonces si estamos dentro del para evepe, y llegamos a este punto donde se comprueba el si Entonces, si la parada de viaje es igual a cero, esto ya no será cierto, e irá a este otro caso aquí. Vamos a probar esto. Y veamos cuando llegue el primer planeta, ahí está, y vemos que está funcionando. Por supuesto, sólo está ocultando el primero, O fondo uno aquí. Tenemos que duplicar este bloque aquí. Tenemos que poner algo en el segundo fondo. Hagamos esto, vamos al control, y tenemos esto si entonces mas, y metemos este bloque dentro del si entonces, y luego podemos copiar esta condición aquí. I. Este, arrastra esto. Volverá, pero arrastra esto aquí al fondo dos, suéltalo, y luego volverá al lugar anterior, y ahora lo tenemos aquí. Entonces podemos arrastrar eso aquí al si entonces. Ahora tenemos si la parada de viaje es igual a cero, entonces hacemos lo que hemos hecho antes, y de lo contrario también podemos ocultar el sprite aquí Así que de lo contrario esconden el sprite. Vuelve a poner eso en la Fp, y ahora ambos fondos deberían desaparecer. Entonces volvamos a hacer eso, y vemos el problema aquí es que los fondos ya no se muestran porque no los estamos mostrando cuando se hace clic en go Hagámoslo. Arrastre este espectáculo aquí. Y también en el segundo spry, arrastra el espectáculo aquí, y ahora debería volver a funcionar Así que vete. ¿Por qué no funciona? Porque tenemos viajes parados. Si podemos mostrar, verá que la parada de viaje es uno y ya no cero porque el script aquí lo puso a cero, y no se restablecerá. Automáticamente, tenemos que hacerlo. Ya que lo estamos haciendo aquí, podemos hacerlo tal vez también aquí el reajuste Así que solo establece la parada de viaje 20 cuando vaya haga clic, y ahora tenemos nuestros antecedentes nuevamente. Y luego tenemos el planeta, veamos. Bien, ahora vemos los antecedentes aquí, este brack cae aquí Pero queda un problema o varios problemas aquí porque todo sigue moviéndose, salvo los antecedentes. Pero todas las rocas y las estrellas, todo se mueve todavía. Entonces tenemos que aplicar también esta lógica aquí. El si más. No, donde sí lo tenemos aquí, la parada if travel es igual a cero s a los otros sprites aquí Entonces hagámoslo, vayamos al rock. Y entonces aquí tenemos el Feverop, el bucle de juego. Así que vamos a conseguir nuestro si más aquí. Podemos arrastrar esto dentro del si entonces. Y entonces también podemos arrastrar esto aquí y copiarlo a la roca, y volvemos a ir a la roca, y luego poner esa parada de viaje es igual a cero aquí en la condición if. Y en el bloque S, vamos a esconder el sprite aquí Entonces volveremos a poner eso en el bucle para siempre. Entonces ahora las rocas deberían ser todas invisibles aquí. Vamos a probar esto. A lo mejor tenemos el planeta viniendo, ahí está, y ya ves que las rocas han desaparecido. El planeta también necesita desaparecer, y también las estrellas, por supuesto. Vayamos a las estrellas y hacemos lo mismo aquí, si entonces de otra manera, consigue esto y ponlo aquí en el caso n, y además copiamos esta condición aquí a recurso. Úsalo aquí, y luego esconde el sprite en el caso else. Bien, ponlo de nuevo en el para evo. Lo que falta es planeta. Entonces nosotros hacemos lo mismo aquí. Si más. Y luego arrastramos esa condición aquí a nuestro planeta. Ponlo en la condición if. Y entonces este bloque irá al entonces caso, y luego en el otro caso, vamos a esconder todo. Bien. Ahora probemos esto y ocultemos la variable aquí. Parada de Ravel. No necesitamos eso para que se muestre. Vamos a probar esto. Oh, hay un planeta. Pero hicimos algo mal. Por supuesto, hicimos algo mal. No pusimos todo esto si más en el Favepe. Hagamos esto otra vez. Y ahí tenemos un planeta. Y ahora tenemos el cohete. Aún así, claro, el cohete tal vez también desaparezca, porque aquí en este planeta, está aterrizado, así que no debería ser movible por el jugador, y el jugador calzado tiene que hacer otra cosa aquí El jugador debe intercambiar los recursos aquí. Entonces hagamos esto para que el cohete también controle si entonces de otra manera. Y todo dentro. El bucle forever se moverá aquí en el caso de la n, y ese es un bloque muy largo aquí, y obtenemos la condición de aquí, tal vez realmente no importa porque es lo mismo, pero así es más rápido. Aquí lo tenemos. Ponlo aquí. Ya podemos volver a ponerlo en el bucle forever, y luego en el caso contrario, escondemos el barco. Y entonces probemos esto. Y hay un planeta, pero hay un segundo planeta, y vamos a tomar este. Y ahora todo se ha ido, nada más, solo el telón de fondo aquí, y esto es lo que queríamos. Así que aquí no se hará nada. Este bucle para siempre hará un bucle para siempre y siempre ocultará los sprites. Cada sprite aquí está oculto en este bucle, y tal vez deberíamos poner algo más aquí en el otro porque ahora todo es solo bucle y ocultamiento, y también podemos ahorrar un poquito de recursos, los ciclos de CPU, si esperamos Entonces podemos esperar esperemos 1 segundo aquí. Entonces todo está dentro de este bucle para siempre, y se esconderá y luego esperará 1 segundo. Y en este 1 segundo, la CPU para este spride, al menos está inactiva Entonces creo que es una buena idea. Hagámoslo en cada spride. Ahorraremos algunos ciclos de CPU aquí, ahorraremos algo de rendimiento aquí. Entonces en cada uno de los demás, esperamos 1 segundo. Pero claro, si reiniciamos el viaje por el espacio, habrá un retraso de 1 segundo máximo porque probablemente estará en el estado de espera aquí si volvemos a cambiar, y si volvemos a cambiar la parada de viaje a cero, los sprites serán o algunos de los sprites, al menos estarán en la espera Por lo que habrá una especie de retraso corto máximo de 1 segundo. Bien. Entonces aquí está el último, supongo. L et's esperar 1 segundo aquí. Bien, ahora tenemos en cada sprite la espera de 1 segundo, entonces eso va a ser fácil en la CPU Ahora podemos aterrizar en un planeta. Todo está parado y oculto, y aquí podemos implementar nuestro comercio. 23. 23 Refactorización del guion de nave espacial: Antes de que estemos haciendo el trading aquí, quiero hacer alguna refactorización refactorización es si reestructuras tu código para que sea más legible y para que sea más fácil sea Si miramos este guión aquí, este bloque dentro del bucle for en el cohete, se puede ver que es un poco demasiado largo y no muy comprensible, no muy comprensible Entonces, ¿qué podemos extraer aquí? Entonces yo diría que vamos a extraer esto aquí. Entonces el exterior si no, lo dejamos como es, y esto aquí, podemos separarlo en dos partes. primera parte es si tecla flecha hacia arriba presionada y todas las teclas aquí, y la segunda parte es esta aquí si toca roca. Entonces los separamos así. Hemos arrancado esto aquí, y hemos separado estas dos partes de esta larga cuadra aquí, dentro de esta si la parada de viaje es igual a cero. Y estamos creando dos bloques para estas dos partes aquí. El primer bloque sería la parte de control del jugador. Esta parte comprueba si hay dekeys que se presionan y luego controlan la nave espacial Llamemos a este jugador control y solo golpeemos. Ahora tenemos aquí este bloque definido, y solo arrastra esta primera parte aquí a esta definición. Estamos definiendo el control del jugador con estos cuatro ifs aquí. Todos estos ifs comprueban una tecla, y tecla de flecha, si esto se presiona y luego cambiando x o cambiando, y. bien, entonces la segunda parte es esta de aquí es sobre la condición en el caso cuando la nave espacial choca con una roca, y esto es lo que llamamos el bloque, también hit test, o tal vez vamos a llamarlo rock hit Entonces aquí tenemos esta definición para la prueba rocosa, y vamos a arrastrar esto aquí. Entonces tenemos estas dos funciones, o estos dos bloques, procedimientos, como se les llame. Aquí en scratch, se llaman bloques personalizados o bloques M. Y ahora tenemos que llamar a estas dos cuadras aquí en nuestro bucle para siempre en nuestra parada I travel es igual a cero. Pongamos eso aquí. El jugador controla la primera prueba rocosa después de esa. Y ahora el juego debería funcionar como antes. Probemos esto. Aquí tenemos el control está funcionando, y también podemos, he golpeado el planeta. Así que intentemos de nuevo. Quiero chocar contra una roca para que pueda ver el choque. Y también había un planeta. Por eso estamos aquí en la ciudad. Así que vamos a intentarlo de nuevo. Sólo chocó con una roca aquí. Bien. Ahí vas. Todo funcionando igual que antes. Y esa es, por supuesto, también la ventaja de refactorizar o requisito para refactorizar también que la funcionalidad debería ser la Entonces aquí solo estamos reemplazando estas dos partes de este bloque largo por dos bloques personalizados aquí. Y sólo los estamos llamando aquí. Y tal vez también deberíamos escribir esto con una P mayúscula aquí para que sea lo mismo que la prueba de golpe de roca. Entonces de esto se trata la refactorización. No estás cambiando la funcionalidad, no estás cambiando la forma en que funciona, sino que estás cambiando la estructura y haciéndola más legible, haciéndola más fácil de mantener ¿Qué quiero decir con mantenible? Entonces puedes ver aquí estos son dos bloques con funcionalidad separada. Aquí está el control del jugador, y aquí está la prueba de golpe de roca. Alguien que no esté familiarizado con el código, o tal vez tú mismo, que tal vez ya no esté familiarizado con el código porque quizás es hace un mes has cambiado algo aquí. Entonces ahora no estás seguro de cómo funciona este código. Pero si lo haces de esa manera, si separas el código en tu propio bloque personalizado, y luego llamas a estos bloques aquí, entonces puedes mantenerlo mejor, lo significa que puedes ubicar mejor el código que necesita ser cambiado o necesita ser extendido. Y entonces también se puede entender el código que está ahí. Entonces aquí puedo ver de inmediato que esto es el control del jugador, y esta es la prueba de golpe de roca. Entonces es muy fácil, por ejemplo, poner otra clave aquí en este control de jugador de bloque. Entonces tecla, digamos, espacio presionado, luego y luego disparar algo así como un rayo láser o algo así. Entonces esto se puede extender aquí. En este bloque personalizado, y para la prueba del cohete tal vez quieras probar para otra cosa, no solo para la roca, y luego necesitas renombrarle este, por supuesto, o definas otro bloque aquí. Por ejemplo, podemos probar otro obstáculo, lo sé, tal vez un agujero negro, algo así, y luego puedes definir otra prueba de golpe de agujero negro, o puedes poner eso aquí dentro esta prueba de cohete y cambiarle el nombre a Just hit test, por ejemplo, esa será una opción, o tienes dos bloques. Uno para el golpe de roca tiene, uno para el agujero negro, prueba de golpe, que puedes decidir. Pero la ventaja de la refactorización de este refactorm aquí es que aquí es mucho más legible ¿Puedes ver qué bloque hace qué? Porque puedes nombrarlos, y además podrás encontrar más fácilmente el lugar donde tienes que hacer cambios. Bien, entonces esa es nuestra primera refactorización o no la primera Ya hemos usado los bloques personalizados. Entonces si vamos a la roca misma, tenemos también este reset random, y esto también es una especie de refactorización porque teníamos esto antes, aquí dentro de esta larga lista de bloques, y lo refactorizamos, por así decirlo, en este bloque y lo llamamos aquí reset random x. Y también cuando empiezo como clon, restablecemos random X. Así que esto también fue refactorizando, pero esto tenemos también este reset random, y esto también es una especie de refactorización porque teníamos esto antes, aquí dentro de esta larga lista de bloques, y lo refactorizamos, por así decirlo, en este bloque y lo llamamos aquí reset random x. Y también cuando empiezo como clon, restablecemos random X. Así que esto también fue refactorizando, pero esto está aquí más explícito. Ya lo he anunciado antes. Estamos haciendo una refactorización y no estamos cambiando la funcionalidad aquí sigue siendo la misma que antes, pero aquí tenemos un código más legible y un código más un mejor extensible 24. 24 Fondos de cambio: Una preparación más antes de entrar en la pantalla de trading. Volvamos a echar un vistazo a los fondos. Hasta ahora solo hemos agregado un telón de fondo, y esto se estableció si seleccionamos aquí, el escenario, entonces tenemos telones de fondo aquí Hemos añadido el metro, y hemos tenido antes este telón de fondo, que es el primero. Teóricamente podríamos simplemente eliminar eso porque solo necesitamos uno por el momento, pero quiero demostrar aquí cómo cambiar entre telones de fondo Hacemos este primero tal vez en un color como, hagámoslo, tal vez completamente negro. Establece el brillo a cero aquí, y luego tenemos un relleno de negro. Usa este rectángulo con negro así así de aquí. Simplemente abarcaremos este rectángulo aquí con el ratón, y tenemos el telón de fondo. Bien. Entonces este es nuestro primer telón de fondo, así que tenemos que establecerlo también. Entonces pongamos eso en el código de la cadera cohete. Cuando se hace clic en la bandera, cuando se hace clic en ir, entonces tenemos que cambiar el telón de fondo, y esto está aquí debajo de Looks, que puedas cambiar el disfraz aquí por el sprite, pero también puedes Entonces hagamos esto, cambiemos de telón de fondo dos, luego telón de fondo uno, también podemos cambiarle el nombre, pero dejémoslo así. Telón de fondo uno es el Negro. Entonces tenemos esto, y ahora el problema es por qué no vemos nada si cuando empezamos un juego es que he metido algo aquí en planeta para establecer viajes parados a uno, así puedo saltarme todo el recorrido por el escenario espacial y luego ir directamente a esta pantalla aquí porque queremos implementar esta pantalla a continuación. Entonces por eso puse aquí este atajo. Estableciendo el viaje parado a uno al principio aquí en el inicio, simplemente saltaremos a este estado aquí, que es lo mismo que si el chip del cohete choca contra un planeta. Pero lo dejaré así por ahora. Volvamos al chip del cohete, así que cambio el telón de fondo dos, telón de fondo uno, o también puedo cambiar el telón de fondo a Metro. Es lo mismo. Entonces dependiendo de lo que elija aquí, este será nuestro telón de fondo de partida, ya sea el negro o el metro. Entonces así es como puedes cambiar a un telón de fondo diferente. Y esto es también lo que debemos hacer al inicio, cambiar a este telón de fondo aquí. Y entonces si golpeamos un planeta, y esto va a estar aquí. Entonces si toca el chip de cohete en el planeta sprite, entonces escondemos el planeta sprite, por supuesto, y luego establecemos el viaje paramos dos, uno Y también entonces tenemos que cambiar a este metro de telón de fondo aquí. Y también, si queremos ver este telón de fondo, también deberíamos ponerlo aquí porque aquí he agregado este atajo, puedo sacarlo por el momento, entonces veríamos, tengo que volver a meterlo y ponerlo a cero. Por supuesto, de lo contrario, se quedará en una. Ahora tenemos el mismo comportamiento aquí y si golpeamos un planeta, vamos a este telón de fondo aquí. Y también todo lo demás se detiene. Así es como cambias de fondo. También puedes cambiar o cambiar al siguiente telón de fondo aquí con este bloque. Eso también es posible. Puedes tener una animación de telones de fondo, eso también es posible Pero lo que no puedes hacer es no puedes mover el fondo. Mueve el telón de fondo. Por eso hemos hecho estos dos sprites aquí, para un telón de fondo en movimiento, y un fondo en movimiento El escenario aquí, los telones de fondo en el escenario no son móviles Es por esto que aquí no tienes nada en la moción si seleccionas escenario, y puedes cambiar de fondo. Por así decirlo, cambia trajes del telón de fondo con estos bloques aquí. Cambiar telón de fondo al metro y el peso también es una posibilidad y también siguiente telón de fondo. Hemos utilizado este telón de fondo de un interruptor dos y luego un telón de fondo específico. ¿Por qué tenemos este interruptor de telón de fondo dos y esperar? Esto se debe a que también hay un evento cuando el telón de fondo cambia dos, y este bloque aquí está esperando cada script que se desencadena por este cambio del telón de fondo. Veamos aquí bajo eventos, cuando el telón de fondo cambia a, digamos metro, entonces también podemos ejecutar un guión aquí bloques aquí debajo. Que aquí esperaremos a terminen estos guiones y luego continuaremos aquí. Tendremos un comportamiento similar si tomamos este año, cuando reciba mensaje, pero no vamos a estar usando mensajes por ahora, así que por eso no voy a entrar en más detalles aquí. Solo que sabes que esto también esperará cada guión que esté debajo de aquí, cuando el telón de fondo cambie a, y esperará antes de continuar aquí. Estos son los bloques de telón aquí y podemos cambiar entre los telones de fondo Por el momento, esto no tiene mucho sentido porque estamos comenzando con este cambiando al metro, pero de todos modos no se puede ver el primer telón de fondo porque aquí hemos hecho nuestros propios sprites de fondo Podría ser otra cosa. Podríamos simplemente hacer nuestros disfraces aquí en los sprites sin esto Digamos que simplemente no tendríamos aquí este rectángulo negro, así podemos deshacernos de eso. Ahora sólo tenemos estos círculos aquí y lo mismo aquí. Podemos seleccionar el rectángulo eliminado o presionar eliminar aquí, botón de borrar. Y ahora todavía tenemos el fondo negro. Entonces eso es porque aquí tenemos este telón de fondo en este color. Cambiaríamos este color. Entonces cambiemos el color aquí. Vamos a hacerlo rojo. Veamos cómo funciona esto. Entonces ahora tenemos un telón de fondo rojo, y las estrellas, estos puntos aquí, estos círculos siguen siendo blancos, pero con la línea negra aquí delinean. También podemos deshacernos de eso, pero no voy a estar haciendo eso aquí porque en el espacio, suele ser negro, así que volvamos a ponerlo en negro. Ahora tenemos lo mismo Pero de esta manera, es importante que cambiemos fondo si golpeamos un planeta aquí. Si el jugador golpea un planeta, entonces el telón de fondo se cambia a la ciudad para que podamos tener diferentes escenarios en los que se desarrolla el juego. En el siguiente video, realmente estaremos negociando. 25. 25 Compra de reparaciones: Bien, vamos a implementar el trading, para que el jugador pueda comerciar, vender los recursos y obtener, por ejemplo, lo primero que queremos implementar es conseguir una reparación en reparación adicional aquí. Al inicio, el jugador tiene tres reparaciones, y luego puede recolectar recursos y luego intercambiar los recursos para obtener una reparación más. Para eso, necesitamos un botón, así que vamos a crear un nuevo sprite aquí Da click en esto, elige un sprite, y aquí en el campo de búsqueda, puedes ingresar un botón, y luego tienes algunos botones aquí. Yo me llevaré este. También puedes llevarte esta. Realmente no importa, pero hay que considerar tener un poco de espacio dentro del botón para mostrar un texto en su interior. Voy a elegir éste y aquí lo tenemos y podemos ir a disfraces aquí e insertar un texto. Hagamos esto, elija aquí esta herramienta de texto y luego haga clic en donde debería estar el texto. Después entramos y reparamos. También podemos cambiar el color de la fuente aquí a negro. Hagamos esto construir color a negro, y aquí es un poco demasiado grande. Hagámoslo más pequeño. Puedes arrastrar esta esquina aquí y hacerla más pequeña. Algo así. También podemos poner aquí otro texto indicando cuánto va a costar esto. Digamos que cinco recursos es el precio. Hagamos estos dos más pequeños, ponlos en algún lugar de aquí. Sí, creo que está bien. Si lo deseas, puedes cambiar el color de fondo aquí, selecciona la flecha aquí. Este y este se puede cambiar aquí, así que también puedes elegir un color sólido aquí. No es un gradiente. Esto es un gradiente. Esto es sólido, y esto también es un gradiente de arriba a abajo, y este es un gradiente circular. Entonces como quieras, voy a elegir un color de fondo sólido aquí. Sí, debería ser algo muy brillante, supongo, para tener contraste. Creo que está bien. Y ahora podemos colocar el sprite en alguna parte Quizás aquí, y tal vez el borde debería ser de otro color. Escojamos sólido algún tipo de azul, tal vez, tal vez un poco más ligero. Creo que está bien. Además, dejémoslo así. También podemos borrar este año. No necesitamos el segundo disfraz aquí para el botón. Ahora tenemos el botón, y ahora necesitamos, por supuesto, mostrarlo en el momento en que se muestra, y eso no es bueno porque cuando empezamos el juego, no debería estar ahí. Entonces vamos al código y luego a los eventos cuando se hace clic, entonces tenemos que ocultarlo. Entonces eso es under, claro. Y ahora se oculta cuando iniciamos el juego. Por supuesto, debería mostrarse cuando vayamos a esta ciudad aquí a este planeta, y ahora debería mostrarse. ¿Cómo lo hacemos? Podríamos hacer un bucle aquí, también bucle para siempre y comprobar, por ejemplo, para que este viaje se detuvo. Pero no es necesario tener bucle para siempre aquí. Hay un mecanismo diferente que podemos usar aquí, y se trata de mensajes. En scratch, puedes enviar mensajes de un sprite a otros sprites a todos los demás sprites, y puedes tener diferentes mensajes, y esto está bajo A partir de aquí, Cuando recibo el mensaje uno, transmito el mensaje uno, y transmito el mensaje uno y espere. Estos tres bloques aquí son sobre mensajes, y esto es importante aquí porque esta es una muy buena manera de enviar un mensaje a otros objetos del juego. ¿Qué mensaje queremos enviar? Queremos enviar el mensaje de que aquí debe mostrarse la pantalla de trading. Por el momento, solo tenemos desapareciendo de todos los sprites de todos estos cohetes planeta rocas de fondo, implementados con esto para evepe y con este cheque para y con Pero también podríamos hacer eso, claro, para este nuevo sprite para este sprite de para este nuevo sprite para este sprite botón y chequear parada de viaje y si la parada de viaje es una, entonces podemos mostrar el sprite, pero hay una manera mucho más fácil en mi opinión de usar el mecanismo de mensaje Necesitamos enviar un mensaje si se debe mostrar la pantalla de trading y también, entonces se debe mostrar el botón. Entonces aquí estamos configurando la parada de viaje a una, y esto hace que todos los demás sprites aquí desaparezcan, excepto por el botón Aquí exactamente en este caso aquí, en este si después o antes de establecer Travel stop a uno, podemos transmitir un mensaje. Difundir un mensaje significa que podemos enviar un mensaje a todos los demás sprites Y si un sprite como el botón, por ejemplo, quiere recibir un mensaje, entonces podemos usar este bloque cuando reciba el mensaje uno No quiero usar mensaje uno porque el nombre no es tan bueno, vamos a crear otro mensaje. Es muy fácil. Haga clic aquí en este menú desplegable en esta flecha y luego nuevo mensaje. Llamémoslo mostrar pantalla de trading. Este es el nombre del mensaje, y luego podemos ponerlo aquí después de Establecer parada de viaje a uno. Cada vez que el cohete golpea el planeta, estamos estableciendo una parada de viaje a una, y estamos transmitiendo este mensaje aquí. Ahora en el botón, podemos tener este bloque aquí, cuando recibo, no mensaje uno, sino mostrar la pantalla de trading. Estos son los eventos. Cuando recibo este mensaje de la pantalla de comercio del espectáculo, entonces puedo mostrar el sprite muy fácil Cuando se hace clic en go, el sprite se oculta. Cuando se recibe este mensaje, entonces se muestra el sprite También puedes hacer clic en estos bloques aquí y hacer que se ejecuten cada vez que los hagas clic. Entonces cuando hago clic en esto, se oculta. Cuando hago clic en esto, se muestra. Entonces esa fue una buena prueba, pero vamos a probarla en el juego. Entonces aquí tenemos nuestro cohete, y necesitamos encontrar un planeta. Hay uno, y ahí tienes el botón también. Bien, cambiemos el nombre del botón para comprar reparación. Así que de esta manera podemos identificar mejor el botón aquí en esta lista. Ahora tenemos este botón, ¿ y qué hacemos con el botón? Por supuesto, el jugador tiene que hacer clic en el botón. Y luego las reparaciones que queden se incrementarán en uno, y los recursos disminuirán en cinco. Entonces cada reparación cuesta cinco recursos. Vamos a poner en práctica eso. Primero, necesitamos otro evento, cuando se hace clic en este botón Vayamos a eventos cuando el spride hizo clic. Aquí lo tenemos. Si el jugador hace clic en este botón, entonces necesitamos aumentar las reparaciones, incrementar las reparaciones en uno y disminuir los recursos Hagamos esto aquí bajo variables. Podemos hacer esto, cambiar las reparaciones dejadas por una. Esto incrementará las reparaciones en uno, incrementadas. Y entonces tenemos que disminuir, claro, los recursos porque el jugador tiene que pagar por ello. Entonces cambia los recursos en menos cinco, para que decrementemos los recursos en cinco Entonces probemos esto en el juego. Nuevamente, reinicié el juego. Y ojalá haya un planeta ahí está. Y luego hago clic en este botón aquí y vemos reparaciones izquierda es ahora cuatro era tres, cuatro, y los recursos son menos cinco. Entonces menos cinco no es bueno porque entonces estás endeudado, pero así no es como funciona esto aquí. Tienes que tener los recursos para comprar la reparación. Entonces tenemos que verificar si esto es posible, si el jugador tiene suficientes recursos. Vamos a ir bajo control si y tomemos esto si entonces s bloquear y ponerlo alrededor de estas dos cuadras aquí. De esta manera, estos dos bloques estarán en el caso si entonces. Así. En el caso contrario, ¿qué podemos hacer en el otro caso? Podemos decir algo. T's unders, di hola, cambiamos el hola. No tienes suficientes recursos. Por 2 segundos, tal vez sea suficiente. Ahora necesitamos la condición aquí. Las condiciones están bajo operadores. Tenemos que verificar si el número de recursos es mínimo de cinco. Comprobemos si hay variables mayores que , y luego recursos. Si los recursos son mayores a cuatro, cinco a cinco o más, entonces podemos simplemente comprar la reparación o el jugador puede comprar la reparación. Si este no es el caso, entonces decimos que no tiene suficientes recursos. Alternativamente, también puedes usar esto menos de. Hagamos esto también. Si los recursos son menos de cinco, eso significa cuatro o menos, entonces podemos decir, intercambiemos eso, arrastren eso. Pon eso, y ahora tenemos que intercambiar estos dos. Si los recursos son menores a cinco, entonces digamos no tienes suficientes, necesitamos separar estos dos, no tienes suficientes, y en el caso. Nosotros hacemos el comercio. Entonces puedes hacerlo así o al revés así. La ventaja aquí es que tienes los cinco, y aquí también tienes los cinco, así que eso es mucho más fácil. Aquí, tienes que restarle uno al precio, y aquí puedes usar el precio directamente Para que puedas hacer realmente lo que quieras. También podemos establecer otra variable al precio, y luego podemos reemplazarlas con la variable. ¿Nosotros hacemos eso? Eso lo haremos en el siguiente video. Pero ahora vamos a probarlo en el juego si esto realmente funciona. No estoy recolectando ningún recurso, así que mis recursos son cero ahora, no lo suficiente, deberíamos conseguir esto no tienes suficientes recursos. Ahora voy a recoger algunos Vamos a recoger cinco. Dos, tres Ahora tenemos cinco, y ahora necesitamos un planeta. Ahí está. Entonces tenemos exactamente cinco, y después de la compra, deberíamos tener cero, y funciona, y las reparaciones que quedan son cuatro ahora. Entonces eso parece funcionar. Entonces necesitas mínimo de cinco aquí para comprar la reparación. Y claro, si tienes diez, también puedes presionar el botón dos veces como jugador, y luego obtienes dos reparaciones, así que eso es fácil. Entonces en el siguiente video, tendremos aquí una variable de precio, un precio por la reparación. Y luego lo usaremos en este lugar aquí en esta ubicación, y también en esta, por supuesto, y de esta manera podemos usar un operador más aquí. 26. 26 Variación del precio al azar: Queremos sustituir este valor constante aquí de cinco. Este es el precio de la reparación, por lo que cinco recursos para una reparación con una variable. Entonces vamos a las variables, hagamos una variable, claro, y esta vez podemos, configurarla solo para este srt, porque los otros sprites no la necesitar porque este es el botón de compra, y solo el botón de compra tiene que saber el precio en este momento, así que la hacemos una variable local aquí Entonces llamémoslo precio de reparación, y para este sprite solamente Y ahora podemos usarlo aquí dentro de este botón sprite. Y por ejemplo, no se puede usar aquí en este sprite planeta porque no está disponible aquí bajo variables Solo ahora está disponible aquí en esto por botón de reparación sprite Entonces aquí está, precio de reparación, y necesitamos fijarlo al precio. Así que digamos cada vez que mostramos la pantalla de trading. Así que cuando recibamos este mensaje mostrar la pantalla de trading, podemos establecer el precio aquí para que tal vez la próxima vez que mostremos el flujo de trading, el precio pueda ser diferente. Pero pongámoslo a cinco. Por ahora. Por lo que fijamos el precio de reparación a 55 recursos de los que podemos deshacernos. Y ahora podemos usar esta variable aquí. Y en lugar de usar este cinco aquí y este cinco de allá, este menos cinco, ahora podemos usar la variable. Entonces volvamos a arrastrarlo. Aquí. Entonces, si el número de recursos es menor que el precio de reparación, entonces el jugador no tiene suficientes recursos, por lo que se mostrará este mensaje. Y ahora necesitamos, en el otro caso, disminuir los recursos por el precio, pero no así, claro, así que no podemos simplemente poner eso aquí porque eso está mal, cambia los recursos en más cinco. Entonces tenemos que cambiarlo por menos cinco. ¿Cómo lograrlo? Vamos a arrastrar esto una vez más. Y luego vamos a los operadores, y aquí tenemos este operador de multiplicación Entonces tomemos esta. Entonces multiplicamos el precio con una constante, y esta constante es menos uno. Entonces tenemos el precio de reparación establecido cinco veces menos uno es menos cinco, y eso es exactamente lo que hay aquí como una constante. Entonces pongamos eso aquí y ahora esto debería funcionar. Entonces estamos fijando el precio a cinco aquí en este caso. Estamos comprobando esto menor que aquí. Y si el jugador tiene suficientes recursos, estamos disminuyendo el número de recursos por precio de reparación, y lo conseguimos con esta multiplicación con menos uno Bien, así que probemos esto. No debería haber ninguna diferencia. Entonces esto es una especie de refactorización aquí, pero usaremos esa refactorización a nuestra ventaja estableciendo el precio aquí a un precio aleatorio Entonces probemos esto primero. Entonces primero recogeré los recursos. Recopilemos esta vez quizá seis o siete antes de ir al planeta. Esta vez es más difícil. Ahora tengo cinco, uno más. Aquí. Ahora necesitamos un planeta. Ahí está. Y ahora puedo comprar una reparación, y esto funciona. Queda un recurso, y tenemos cuatro reparaciones. Entonces esto funciona. Y ahora puedo cambiar esto aquí a, digamos diez o dos, lo que quiera, y no tengo que cambiar estas dos ubicaciones aquí. Simplemente también funcionarán. Entonces esa es la ventaja. Y de esta manera, también podemos establecer esto a un precio aleatorio. Así que solo podemos reemplazar los dos aquí por pick random uno a diez. Tomemos uno, 25 aquí o uno, dos, seis, tal vez. Uno es quizá un poquito demasiado poco, así que tomemos dos, dos a seis, así que el precio siempre será de 2-6. Entonces probemos esto. Ahora solo vayamos por el planeta. Sé que primero necesitamos recolectar recursos, digamos cinco a las. Así que probablemente podremos Por esto. Bien, también podemos recolectar más. Ahora tenemos siete, y eso siempre debería ser suficiente. Así que comprar reparación precio de reparación se establece en seis ahora. podemos ver aquí porque aquí bajo variables, ahí está esta casilla de verificación aquí, y si la desmarca, se ocultará Si lo reviso, se mostrará. Sabemos que necesitamos seis recursos para comprar una reparación. Tenemos siete, así que compremos uno. Y ahora nos queda un recurso y cuatro reparaciones. Entonces eso está funcionando El único problema es que el precio no es correcto aquí, entonces hay cinco recursos en este texto aquí y este texto está, claro que está arreglado porque está en el disfraz. Entonces aquí tenemos estos cinco recursos, y no es variable. Y aquí deberíamos estar mostrando el valor del precio de reparación variable. Bien. Lo que podemos hacer es trasladar esto aquí a este lugar. Entonces primero, vamos a aferrarnos a él. Tenemos diferentes opciones de visualización aquí, normal, lectura, gran deslizador de lectura u ocultarlo. Así que sólo podemos sacar la lectura grande. Esto es muy grande. Entonces podemos simplemente ponerlo tal vez aquí, y luego podemos deshacernos de este texto aquí. Simplemente borra ese texto aquí en el disfraz de sprite, pon eso tal vez en el medio ligeramente arriba Eso está bien. Ahora también podemos hacer eso un poco más pequeño aquí en el exterior 12. Eso se ve mejor. Y aquí tenemos el valor de la variable, y tal vez deberíamos poner algo de texto al frente para que el jugador sepa que este es el precio de la reparación. Entonces hagamos otro sprite solo para mostrar esto aquí. Sólo se puede pintar. Así que vamos a poner aquí el texto. Precio colon, tal vez sí, eso es creo que k. el tamaño está bien, así que pongámoslo en el centro aquí. Pero el problema es que necesitamos un fondo para eso, vamos a arrastrar un rectángulo aquí, y de esta manera, el rectángulo está al frente. Pero primero, vamos a cambiarlo a blanco aquí, así que el relleno debe ser blanco. La saturación necesita bajar a cero. Bien. Pero un problema más, está encima de nuestro texto aquí. Entonces tenemos que cambiar. Tienes estos botones aquí, adelante, atrás, adelante atrás. Entonces lo metemos en la parte de atrás. Así que da click en este botón. De esta manera está realmente en la parte de atrás. Por así decirlo el fondo es el rectángulo y el precio está por encima de eso. Por lo que también podemos seleccionar el precio y ponerlo al frente. Esto es lo mismo. Entonces nada cambió aquí. Pero ahora tenemos el precio, pero es un poco demasiado grande, claro. Hagámoslo más pequeño. Aquí necesitamos algo de espacio para esta variable. Hagámoslo así, tal vez todavía un poco demasiado grande, podemos hacerlo más pequeño aquí también cambiando el tamaño aquí. Vamos a ponerlo a 80, tal vez, todavía un poco demasiado grande, algo así. Entonces paramos el juego aquí. Pon este botón aquí, pon el precio aquí. Y luego encima de eso, podemos poner eso aquí. Pero el problema aquí es que no se puede cambiar el fondo de esta pantalla aquí de la variable display. Así que tiene que ser así. Pero podemos mostrar el precio con este nuevo sprite aquí. Y pongamos eso un poco arriba, para que quede centrado aquí. Bien, entonces eso se ve bien. Pero ahora tenemos que mostrar este sprite también, y también tenemos que mostrar la variable Entonces, primero vamos a deshacernos de la variable. Entonces desmarcamos esto aquí, o tal vez deberíamos hacerlo en el código, eso es mejor, claro Porque necesitamos inicializarlo, estar escondido aquí. Entonces vamos primero a Sprite one, y cuando empecemos el juego, tenemos que escondernos porque el cohete no ha aterrizado en este planeta, así que lo escondemos, es lo mismo que para el botón de aquí, y aquí viene algo complicado porque podrías arrastrar esto aquí al sprite de precio, pero no voy a hacer eso, y hay una razón para eso Aquí está el problema con las variables locales y esta copia de un bloque a un sprite diferente Entonces si arrastras esto aquí, Este conjunto de precio de reparación dos escoge al azar 226 a este precio texto sprite aquí. Hagamos esto. Verás que aparecerá aquí, claro, es una copia, pero también hay este precio de reparación variable local aquí. Scratch también creó una variable local aquí. Aquí tenemos dos variables locales. Uno está aquí. Y uno está aquí, y tienen el mismo nombre. Ese es el problema aquí. Entonces se podría decir, Bien, precio de reparación, eso es lo mismo que este, pero no lo es, y aquí está la prueba. Voy a mostrar el precio de reparación aquí, y aparece por aquí. Y si hago lo mismo aquí, aparece aquí junto al texto del precio. Se trata de dos valores diferentes, también, cuatro y dos, porque hay dos variables distintas. Cada uno es local al sprite. Entonces esto es local para esta novia, este precio de reparación, y esto es local a este spride Entonces, ¿qué significa eso? Si pongo aquí el precio de reparación a un número aleatorio, este precio de reparación seguirá siendo el mismo. Entonces si lo pongo aquí a otra cosa, por ejemplo, podemos fijarlo a, digamos, a cero o a menos uno tal vez para que podamos ver que realmente es este valor aquí, y empiezo el juego. Vemos aquí tenemos dos. Entonces, si golpeamos un planeta, entonces podemos ver que este precio de reparación de texto de precio es menos uno, y este es cuatro. Este sigue siendo menos uno, y este de aquí es cuatro aleatoriamente establecido por este bloque de aquí. Entonces aquí realmente hay que tener cuidado. Si arrastras algo con variables locales, un bloque que está usando una variable local o configurando aquí en este caso, entonces estará creando o scratch, estará creando una nueva variable local en el otro sprite Pero estas no son las mismas variables. Ambos son locales para cada sprite. Esto es un problema aquí, vamos a deshacernos de éste, eliminar la variable de precio de reparación. No necesitamos eso. Pero tenemos que mostrar esto aquí en el botón de comprar reparación. Así que cada vez que mostramos esto aquí, cuando recibo mostrar la pantalla de trading, necesitamos mostrar esta variable aquí. ¿Cómo mostramos y ocultamos variables? Esto es aquí, estas dos cuadras. Mostrar precio de reparación variable, ocultar precio de reparación variable. Entonces cuando G es click, ocultemos esto porque al inicio del juego, no queremos eso. Y cada vez que recibo mostrar la pantalla de trading, el mensaje, mostrará el precio de reparación variable aquí, esta variable local. Aquí, el texto del precio sólo se mostrará y se ocultará. Necesitamos agregar aquí este evento cuando reciba la pantalla de comercio del espectáculo, entonces solo nos mostramos aquí. Eso es, o eso debería ser, probémoslo. Voy directo al planeta y aquí lo tenemos. El precio es de cuatro. No tengo ningún recurso recaudado y no tienes suficientes recursos se muestra. Eso está bien. Recolectemos algunos recursos. Al menos cinco, diría yo, tal vez más si los hay. Sí, ya tengo tres. Cuatro, y tal vez dos más. O choque. Hay uno más, y ahora necesitamos un planeta. Bien, entonces aquí lo tenemos recursos ocho. Así puedo comprar dos reparaciones. Vamos a comprar uno. Ya tenemos cinco. Y compremos otro, y ahora me quedan dos recursos, y no tengo suficientes para comprar uno más. Entonces las reparaciones que quedan son cuatro porque tuve el choque. Así que eso es ahora tengo cuatro, pero compré dos, así que eso es todo correcto. Bien, así es como puedes hacer el precio de la reparación aquí sea aleatorio. Por lo que siempre se elige 2-6 un número aleatorio. Entonces esto se vuelve un poco más impredecible, cuál será el precio, cuántos recursos necesitas. Entonces, si el jugador va a este planeta y luego no tiene suficientes recursos, entonces eso es mala suerte, claro. Y entonces el jugador necesita volver a viajar por el espacio y recolectar más recursos para luego regresar al planeta. Pero el problema es que no hay manera de volver a viajar. Entonces eso es lo que tenemos que implementar en el siguiente video. 27. 27 Corrección del código de fondo: En este video, quiero corregir un error que acabo de darme cuenta que presentamos antes, y lo introdujimos cuando cambiamos el vestuario de los sprites de fondo Así que aquí hemos eliminado este rectángulo. Ese fue el fondo para esto para las estrellas, el rectángulo negro, y lo hemos borrado porque aquí teníamos este telón de fondo, el fondo negro, este, y entonces no necesitábamos el otro. También ves que esto no está correctamente en el centro. Pero ese no es el problema aquí. El problema es que aquí hemos cambiado este disfraz y con borrar este rectángulo aquí, hemos cambiado el tamaño de este sprite aquí Ese es el problema aquí. Si esta posición y no es correcta, entonces este sprite de fondo no se restablecerá a esta posición aquí Yo intencionadamente he hecho mal este valor aquí, así que no es el valor correcto, y verán lo que esto causa. Sólo para el primer sprite de fondo. Yo he hecho esto. El otro ya lo corrigí. Se puede ver que el primer fondo está atascado aquí. Aquí se puede ver una estrella de este fondo, y no se restablece. Eso significa que no va a entrar en esto si y posición menor a menos 350. ¿Por qué no? Debido a que no se puede cambiar la posición más de lo que podemos comprobar cuál es el valor, -320, no se puede establecer por debajo de eso Sólo puedo fijarlo en -500. Pero si hago eso, automáticamente volverá a -320. No es posible cambiar y por debajo de ese valor. Esta condición aquí siempre será falsa, y no se restablecerá. Por eso tenemos que cambiar eso. Tenemos que ajustarlo al tamaño del sprite. Hagámoslo. Aquí tenemos menos 320, tenemos que comprobar si está por debajo de -319 Y luego también tenemos que restablecerlo a rojo 20. Comprobemos si esto soluciona el problema. Choque. Pero parece que realmente está arreglando el problema porque podemos ver que el primer sprite de fondo se está moviendo correctamente y se restablece correctamente. Eso está bien. Error arreglado, y siempre tendrás estos bugs que necesitas depurar, es decir, corregir errores. Para corregir errores, primero hay que encontrar el error, y ese es el proceso de depuración Primero encuentra el error, trata de aislar los casos donde ocurre el error. Y luego arreglas el error, y eso es depurar Scratch no es realmente compatible con la depuración ya que otros lenguajes, otros lenguajes de programación o entornos pueden hacer eso porque no es capaz establecer puntos de interrupción donde se puede detener el script y luego inspeccionar las variables Pero puedes inspeccionar las variables, claro, mostrándolas aquí. Entonces es por esto que puedes bajo variables, hacer que estas variables se muestren aquí con una casilla de verificación. Así que siempre podemos mostrar aquí el valor de la variable travel stopped, y podemos ver si esto es correcto. Entonces también podemos mostrar la posición y del sprite, por ejemplo, así que tenemos que ir al movimiento, y aquí tenemos la posición x y la posición y, y también la dirección No necesitamos eso por el momento. Pero aquí, y posición, puedes comprobarlo, y luego también será visible aquí. Y luego se puede ver la posición y de fondo uno. Y entonces verás que si llega al fondo aquí, se restablecerá nuevamente a la parte superior. Eso se trata de arreglar el error. Eso me acabo de dar cuenta en este momento, pero durante la codificación durante la programación, siempre habrá la necesidad de depurar también Entonces esta fue una introducción a la depuración más o menos, pero no había intención de hacerlo Antes sólo era un error. Pero así es como lo arreglas, y también de nuevo, cómo puedes establecer estos límites aquí, estos -319 Si lo haces mal, algo como esto aquí, entonces este fondo se quedará atascado y no se restablecerá. Y entonces puedes ver cuál es el valor mínimo de este fondo, y luego puedes usar este valor aquí menos 320 para hacer esta condición aquí, por lo que debería ser uno más. Un píxel, por así decirlo, más que esta posición extrema, y luego puedes usar esto. Y luego estableces lo mismo que aquí en el negativo como una y positiva para restablecer el fondo aquí. Y también hay una cosa más que podemos hacer para que sea un poco más fácil aquí en nuestro cerebro. Para que podamos intercambiar esto aquí. Entonces con el conocimiento de que esta posición Y siempre será un mínimo de -320, podemos intercambiar esto aquí con un igual Entonces, si la posición y es igual y luego menos 320, entonces restableceremos el sprite aquí Esto es más fácil, pero solo podemos hacer esto porque esta posición y del sprite es siempre -320 si se establece por debajo de eso Siempre se restablece, por así decirlo, a este valor mínimo aquí. Por lo que siempre asumirá este valor. Si usáramos una variable aquí y siempre la cambiaríamos por menos dos, entonces podríamos aterrizar en algo como -321, y entonces esta condición no se cumplirá Pero como este es realmente un caso especial aquí con la posición x, podemos hacerlo así, y entonces no tendrás que agregar uno a este límite aquí. Entonces es solo si la posición y está en el mínimo de -320, entonces ve a esta posición inicial aquí Entonces probemos esto. Y veremos que también funciona. De esta manera, puedes usar el mismo valor aquí, 320. Esta vez es -320, y aquí es positivo, 320, y es un poco más fácil 28. 28 Sal de la pantalla de negociación: R Ahora que tenemos la pantalla de trading funcionando, tenemos que salir de ella de nuevo, claro. Entonces vayamos a la pantalla. Nuevamente, aquí tenemos la pantalla de trading, podemos comprar. Si tuviéramos suficientes recursos, hubiéramos podido comprar aquí, pero no lo haremos así que tenemos que salir de esta pantalla para poder viajar nuevamente por el espacio para recolectar recursos y luego realmente comprar reparaciones aquí en este tipo de tienda, que es. Bien, vamos a deshacernos de esta posición aquí. Lo primero. Entonces, ¿dónde tenemos eso? Es BG uno, así que atrás tierra uno, y aquí está la posición. Estás ahí abajo, desmarca la casilla de verificación, y luego se va. Parada de viaje. Tampoco necesitamos eso. Así que vamos a quitar la casilla de verificación aquí. Retire la marca de la casilla de verificación aquí. Entonces ahora esto también se ha ido. Y para la salida, necesitamos un botón, claro. Entonces tenemos que pintar otro botón. A lo mejor, no pintar. Vamos a usar un botón preestablecido aquí. A lo mejor este servirá. Entonces solo borra este. Este es el correcto, y ahora podemos personalizarlo. Entonces al menos tenemos que poner aquí un texto que diga salida. Hazlo un poco más bonito. A lo mejor hacer el color, el texto color negro aquí, y ponerlo en el centro o tal vez aquí, un poco por encima del centro. Eso está bien. Y también el color, el color de fondo aquí debería ser otra cosa, tal vez duración. Sí, creo que eso es mejor, algo así, y también la frontera aquí, esto es un gradiente por el momento. Vamos a hacerlo sólido aquí, y entonces tal vez solo negro en este caso, está bien. Y entonces tenemos que hacerlo un poco más pequeño. Bien. Entonces creo que eso debería estar bien. Y aquí cambiamos el tamaño también al 80%. Bien. Bonito. Vamos a colocarlo por aquí para que el jugador pueda ver claramente que este es el botón para salir de esta pantalla de trading. Bien, vamos al código aquí al guión. Y necesitamos un evento, claro, cuando se hace clic en sprite Cuando se hace clic en este sprite, ¿qué hacemos entonces? Por supuesto, necesitamos establecer la variable. necesario establecer la variable de recorrido detenido, por lo que el recorrido establecido se detuvo 20. Esto hará que casi todo vuelva a aparecer aquí y se mueva de nuevo. Intentemos si esto ya hace algo. Por lo que inmediatamente vamos a un planeta aquí. Primero vemos, ahí está, e intentamos la salida. Bien, entonces vemos que las rocas se mueven de nuevo, las estrellas se mueven, los planetas se mueven. El cohete no se mueve, o al menos no es visible. Entonces vamos y además el fondo no es visible. Primero arreglemos el chip de cohete aquí. ¿Por qué no se mueve la cadera del cohete? Porque está atascado en este bucle para siempre. Y entonces lo hará justo si la parada de viaje vuelve a ser, cero, solo será control de jugador y prueba rocosa. Y aquí no hay nada que vuelva a mostrarlo. Bien. Entonces tenemos que demostrarlo. Así que pasa a looks y luego show o ya lo tenemos aquí, para que podamos deshacernos de eso y usar este programa aquí. Y ponlo aquí en esto si la parada de viaje es igual a cero. Entonces lo primero que hacemos ahí es show y cada vez que pasa por este bucle y stlop de viaje es cero Nosotros lo mostramos. Realmente no importa que lo demostremos varias veces. Es casi un no, no hay operación. Entonces esto debería estar bien. Así que vamos a retroceder eso. Y ahora cada vez que esa parada de viaje está en este bucle cero para siempre, se muestra el cohete. Eso debería estar bien. Probemos esto. Hay un planeta, y salimos, y luego tenemos de nuevo el cohete. También esto está funcionando. Tómate un tiempo para que todos los cohetes y las estrellas bajen, pero está bien. Creo que eso es bueno. Lo que falta aquí es, por supuesto, el fondo también necesita mostrarse siempre que la parada de viaje sea cero. Eso también es fácil. Quita eso aquí, ponlo fuera, y luego ponlo de nuevo aquí en este viaje parada es igual a cero, lo mismo para el segundo fondo. Entonces muéstralo cada vez que pase por el bucle, cada iteración, ese stop de viaje es igual a cero Entonces los antecedentes también deberían estar bien ahora. Vamos a probarlo. Por supuesto, todo lo que haces tienes que probar. Entonces solo haz un pequeño cambio y luego prueba si este pequeño cambio realmente funciona. Entonces así es como lo hago. Si haces muchas, muchas cosas y cambias muchos bloques insertas ahí y cambias de valor ahí, entonces pruébalo , y luego te das cuenta de que ya nada funciona. Esto no es tan bueno. Entonces cambia un poco y luego prueba este cambio. Esa es la mejor manera de hacerlo. Bien, así que hagámoslo. Los antecedentes también deberían funcionar. También debería reaparecer si hacemos clic en salir. Sí, lo es. Pero lo que aún falta es que el telón de fondo no se cambia. Entonces tenemos que cambiar aquí a este primer telón de fondo aquí. Bien, ¿dónde hacemos eso? También, en este sprite. Vamos a cambiar el nombre del sprite aquí para salir o simplemente salir. Nosotros lo haremos. Establezca la parada de viaje a cero, y luego también podemos establecer el telón de fondo aquí, cambiar telón de fondo, dos, telón de fondo uno y probarlo. También podemos probar si podemos comprar algo con los recursos y luego salir. Ahora, aquí es demasiado caro. No podemos comprar reparación, pero salgamos. Y ahora vemos que todo está vuelta a la forma en que estaba antes, a excepción de, tenemos la reparación de compra Y el botón de precio aquí, así que tienen que ir, y también el botón de salida tiene que ir. ¿Cómo lo hacemos? ¿Eso es un poco diferente? Yo sugeriría volver a usar un mensaje, así que difunde un nuevo mensaje aquí. Así que tenemos mostrar la pantalla de comercio, y necesitamos ocultar la pantalla de comercio. Así que crea un nuevo mensaje de alta pantalla comercial, y de esta manera podemos reaccionar. En este sprite, también podemos reaccionar. Entonces, cuando reciba ocultar la pantalla de comercio, entonces simplemente ocultaremos el sprite aquí Entonces, escóndete así. Y también, necesitamos mostrar el botón de salida. Esto es algo que no hemos hecho hasta ahora. Así que cada vez que reciba esta pantalla de intercambio de tomas, quiero mostrar el sprite aquí Para que tengamos el manejo de este mensaje de la pantalla de comercio de Ocultos y también el mensaje de la pantalla de comercio de mostrar, y tenemos que hacer lo mismo aquí para el texto del precio y para la reparación de compra. Así que solo puedo copiar esto cuando reciba altura de pantalla comercial alta al texto del precio y también al botón de comprar reparación. Entonces esto también hará lo mismo aquí en los otros Sprites. Bien. Y también, lo que tenemos que hacer es lo que se hace aquí, cuando vaya haga clic, oculte, o tomemos este , cuando vaya clicado, ocultarlo y copiarlo al botón de salida aquí Entonces de esta manera, también este botón de salida se oculta cuando comienza el juego. Empecemos el juego. Sin botón de salida. Aterrizemos en un planeta. Aquí está. Ahí tenemos el botón de salida, tenemos el botón por reparación, y el texto del precio. Entonces no tenemos recursos. No importa. Simos, y aquí podemos volver a reunir recursos. Bien. Lo que aún falta es, por supuesto, esta variable necesita ser ocultada también. Entonces tenemos que hacer eso porque es una variable local. Tenemos que hacer eso en el botón por reparación aquí. Hagámoslo. Variables, Variable de alto Siempre que recibo ocultar pantalla de negociación, Ocultar precio de reparación variable. Entonces volvamos a probarlo. Salir, y ahí lo tenemos. Así que ahora podemos cambiar entre este modo aquí, el modo de viaje y recolección, y este modo de comercio aquí. Así que puedo comprar en realidad dos reparaciones aquí, salir y cobrar más recursos. Para que pueda comprar más reparaciones aquí. Vamos a intentarlo de nuevo. Puedo comprar uno más, y luego no me quedan más recursos, y luego salir, y puedo continuar el juego. Así que muy agradable, podemos salir de la pantalla de trading. Podemos entrar en la pantalla de trading. Entonces tenemos estos dos modos viajar y coleccionar y el modo de comercio, que es muy agradable. Y lo estamos haciendo Al usar una variable aquí, como has visto, esta variable de stop de viaje, que siempre se comprueba en el loop de juego controlador para cada sprite, y lo estamos haciendo también con mensajes Entonces tenemos esta pantalla comercial alta y mostramos los mensajes de la pantalla comercial que se usan aquí. De esta manera, no necesitamos ese bucle de juego para siempre para cada sprite que no sea necesario También se llama ocupado esperando aquí. Entonces si estamos en este modo aquí, parada de viaje no es cero, sino una, Estamos aquí en este concurrido bucle de espera. Para siempre y luego otra cosa esconderse y esperar con solo esperar, esperar, esperar todo el tiempo. Y aquí, este no es el caso. En realidad no estamos ocupados esperando. Solo estamos esperando en este caso una notificación aquí para un mensaje, y luego estamos actuando sobre la recepción de este mensaje aquí. Y eso es un poco diferente. A diferentes métodos para lograr el mismo objetivo o similar, tal vez. Pero aquí también tenemos un loop de juego de control y esto es más fácil comprobarlo aquí en el bucle que hacerlo a través de una recepción de mensajes aquí. Bien. Entonces ese es nuestro juego. Creo que es un juego muy bonito. Puede que no sea muy difícil por el momento, pero puedes modificarlo un poco Eso se pone más difícil, tal vez no tantos planetas, tal vez más rocas y menos recursos. Podemos, por supuesto, también agregar una mejora aquí para nuestro chip de cohete, así que tal vez el chip de cohete pueda disparar rayos láser o algo así y luego destruir los meteoritos, las rocas de aquí Y entonces tal vez las rocas, también revelan algunos recursos más, no sé, tal vez planetas ocultos o no sé. Podrías hacer eso, y también puedes actualizar, por supuesto, la pantalla de trading aquí para que no solo puedas comprar una reparación, sino que también podrías hacer una actualización a tu cohete aquí para que tal vez luego puedas disparar a un láser algo más o misiles o algo así. O también puedes asentarte en planetas. Entonces, si tienes, digamos, 50 recursos pueden ser capaces de asentarse en este planeta, y entonces también puedes cosechar recursos en el planeta y con el paso del tiempo, esto realmente podría ser darte más recursos, para que puedas asentarte en más planetas y así sucesivamente. Pero por el momento, este es nuestro estado final de este juego. Entonces puedes, por supuesto, extenderlo. No es tan difícil extenderlo. Entonces, por ejemplo, si quieres vender o dejar que el jugador compre otra cosa, solo necesitas copiar esto aquí y luego hacer otra variable, tal vez el estado de actualización del chip cohete, por ejemplo. Y entonces hay que verificar, claro, tal vez aquí en el control del chip del cohete, se puede comprobar si hay espacio para la clave espacial. Si se presiona la tecla de espacio, puedes disparar este rayo láser, y si este rayo láser choca con una roca, la roca simplemente desaparecerá, o puedes entonces después, si entramos en animaciones, también puedes hacer una explosión, tal vez animación, algo así. Bien. Pero eso es todo para este juego aquí, en la siguiente sección, comenzaremos un nuevo juego, y esto requerirá que exploremos más funcionalidades aquí en scratch porque hay más Así que no solo tienes estas variables aquí, sino que también tienes listas, y esto cubrirá ahí en este próximo juego, y también haremos uso de más bloques personalizados, y también habrá animaciones. 29. 29 Nuevo juego Controla el personaje principal: Este será nuestro nuevo juego, y será un juego de aventuras. Al igual que algunas viejas aventuras de tal vez apuntar y hacer clic, tenemos un personaje principal, y este personaje principal se llama Avery porque tenemos en scratch un sprite preestablecido llamado Avery, que es una chica que también tiene Estaremos usando este sprite, y así Avery va en esta aventura, y el jugador puede controlar a Avery con las teclas del cursor y luego interactuar con objetos, recogerlos y resolver acertijos con la ayuda de Lo que tenemos que hacer primero es, por supuesto, crear un nuevo proyecto. Denle el nombre de la aventura de Avery. Ya he hecho esto aquí. Entonces necesitamos crear nuestro primer sprite. Normalmente, tienes este gato. Ya he quitado el gato aquí. Vamos a agregar Avery. Aquí tenemos a Avery de pie y en dos poses. Vamos a revisar los disfraces. Esta pose y esta, cambiemos el orden aquí. Puedes arrastrar esto aquí. Tengamos primero al Avery de pie, y luego esto puede ser hablar de Avery como un segundo Necesitamos más sprites aquí, más disfraces, no más sprites, más disfraces, y podemos insertarlos aquí, elegir un disfraz, y luego tenemos estos disfraces para caminar Seleccionemos el primero de él, y luego el segundo, y luego el tercero y el cuarto. Ahora tenemos aquí el aviario ambulante, y aquí tenemos el de pie cada aviario y el aviario hablante Vamos a mover el aviario hablante aquí hasta el final. Primero tenemos el pie cada uno, luego el aviario ambulante, y el último disfraz es el aviario hablante Con la ayuda de estos disfraces, haremos la animación de caminar, por supuesto, y también de pie y hablando. Eso es todo para los disfraces por ahora, y vamos a revisar el código. Hagamos que el jugador controle al personaje, nuestro aviario principal Primero, vamos a eventos, por supuesto, cuando se hace clic, y necesitamos un bucle para siempre aquí Este será nuestro bucle de juego, y aquí comprobaremos los controles, y los controles son las teclas, la flecha izquierda y la flecha derecha. Vamos a conseguir un si aquí. Esto comprobará la flecha izquierda. Entonces vamos a la tecla de detección presionada y aquí desde el menú desplegable, elegimos flecha izquierda, y luego también ya podemos dulicar esto y hacer uno para la flecha derecha Entonces, ¿qué hacemos? Estamos cambiando x para este sprite en cierta cantidad que el personaje se mueva en esta dirección Así que ve al movimiento y cambia x por. Aquí, esta será la izquierda así. Digamos que movemos x por, o cambiamos x por menos tres, irá a la izquierda, Duplicamos esto, y aquí lo movemos por o cambiamos x por más tres, k Ya podemos probar esto. Veamos cómo funciona esto. Empecemos. Y somos capaces de mover al personaje. Bien, a continuación estaremos cambiando la orientación, así que Avery debería estar mirando hacia derecha cuando se haga clic en la flecha derecha o se presione, y por supuesto, a la izquierda si se presiona la flecha izquierda Tenemos que mover la orientación de Avery del personaje principal, y esto lo hace un bloque que también está en movimiento, claro, y este es este punto en dirección Podemos decirle a scratch que oriente este personaje hacia la dirección correcta o hacia la izquierda y también otras direcciones, pero en este caso, solo necesitamos derecha e izquierda. Hagamos esto. Si se presiona la flecha hacia la izquierda entonces apunta en dirección 90 grados, eso debe ser -90 grados, así puedes cambiarlo aquí a -90 En el otro caso, apunte en dirección 290 grados, si se presiona la flecha hacia la derecha. Entonces, si haces clic aquí, puedes ver que esta es la dirección correcta aquí. Vamos a probar esto. Y vemos que no es correcto. Y esto se debe a que no hemos establecido el estilo de rotación correcto, y este es este bloque de aquí. Establecer estilo de rotación. Este es el último bloque aquí. Podemos configurarlo aquí al principio, establecer el estilo de rotación a izquierda, derecha. Por defecto es todo alrededor, y lo configuramos a izquierda derecha. Intentemos esto, y funciona. Ahora podemos voltear el personaje principal de derecha a izquierda. Y ahora a la animación en el siguiente video. 30. 30 animación de caminar: I. Ahora queremos agregar una animación al movimiento aquí. Por el momento, solo podemos movernos y cambiar la orientación del personaje principal. Pero también queremos una animación, una animación de caminata, y también tenemos los disfraces aquí para una animación de caminata. Este es el primer marco, por así decirlo, este es el segundo, tercero, cuarto. Tenemos que recorrer estos marcos aquí, los cuatro marcos para caminar, los cuatro disfraces para caminar aquí, y esto se puede hacer en un segundo bucle. Vamos a ir clicked, luego para siempre. Aquí haremos la animación. Bien, entonces, ¿cómo puedes hacer una animación? Hay que cambiar el disfraz a uno diferente al siguiente, por ejemplo. Esto es subestima. Entonces veamos a Undos cambiar el disfraz dos. Una específica, aquí puedes elegir cualquier disfraz en el sprite que te guste, o también puedes decir siguiente disfraz. Entonces, por ejemplo, si tenemos el disfraz de pie, siguiente disfraz, iremos al primer disfraz para caminar aquí. Si estamos animando, haciendo la animación de caminar, simplemente cambiaremos al siguiente disfraz aquí Entonces si llegamos a este disfraz, tenemos que verificar esto y luego colocarlo el primer disfraz para caminar aquí. Hagamos esto. Primero, solo cambiamos al siguiente disfraz, elegimos este de aquí, y luego el siguiente disfraz y este para siempre. Veamos cómo funciona esto. Sí. Obviamente hay una animación aquí. No es el correcto, pero está cambiando a través de todos los disfraces aquí. Pero es demasiado rápido, así que tenemos que agregar un peso aquí. Vamos a controlar esperar. Y entonces no esperamos ni 1 segundo. Eso es demasiado largo. Entonces digamos 0.2 tal vez. Veamos cómo se ve esto. Se ve bastante bien. Podemos probar tal vez 0.3. Vamos a probar esto. Creo que está bien. Aquí tienes la animación, pero el problema es que no necesitamos la primera aquí, y tampoco necesitamos la última aquí. Tenemos que verificar en qué estado se encuentra la animación y luego configurar el disfraz correctamente. Hagamos esto. Para ello, necesitamos un si aquí o tomamos un if else. Entonces tenemos que comprobar en qué disfraz se el personaje en este momento en el tiempo. Esto se puede hacer también aquí bajo miradas. Entonces aquí tenemos el número del disfraz o el nombre del disfraz. Entonces esto es una especie de variable, vamos a arrastrar eso aquí, y verificamos, digamos el número. Entonces verificamos la igualdad, si el número del disfraz es igual, y luego tenemos que verificar qué número es el último fotograma de animación caminando. Entonces este es el primero, el segundo de pie, tercero, cuarto, quinto. Entonces son cinco. Entonces, si llega a cinco, o si el traje actual es cinco, el número, necesitamos fijarlo a un disfraz específico, y ese es el primero. Entonces uno, dos, dos es el número del primer disfraz para caminar. Bien. Entonces vamos a looks y luego cambiamos de disfraz. No necesitamos el número aquí. Podemos simplemente fijarlo a este marco aquí. Supongo que es correcto. Volvamos a comprobarlo. No, no lo es. Es cada caminata, cada caminata A, por supuesto. Si llega al último fotograma de animación, entonces cambiamos al primero. Y el primero es cada A. caminando Y si este no es el caso, simplemente cambiamos al siguiente disfraz aquí. Y claro, tenemos que esperar también en el para siempre. Para que la velocidad de animación no sea demasiado alta. Comprobemos esto y esto parece funcionar bien. Avery está caminando por aquí. También podemos dejarla caminar en la dirección diferente. Entonces, izquierda y derecha, todo funciona. Pero ella no para de caminar. Ella camina todo el tiempo, así que la animación no se detiene aquí. Y esto, tenemos que ver con una variable. Entonces necesitamos establecer una variable a un valor específico y luego verificar este valor en el bucle forever aquí. Así que vamos a introducir una variable de caminar aquí, hacer caminar variable. Y sólo necesitamos eso para este sprite. Para este spride, solamente, todos los demás sprites tienen sus propias animaciones, si las hay, así que solo lo necesitamos para este Y tenemos que ponerla, por supuesto, a cero al inicio. Así que ponte caminando o ya tenía una variable caminando aquí. Vamos a deshacernos de esta, y también vamos a deshacernos de mi variable aquí. Así que ponga caminar a cero al inicio. Entonces si estamos aquí en esta flecha izquierda o flecha derecha presionada, entonces tenemos que ponerla en una. Hagamos esto aquí, lo configuramos en uno, y también Y entonces tenemos que checar en este bucle para siempre si debemos continuar la animación o si deberíamos simplemente esperar aquí. Este año adentro, puedo alargar eso, necesita estar en otro si. Vamos a esto si, y necesitamos un si entonces else. Aquí está, arrastra eso para siempre. Si caminar es igual, necesitamos un operador igual aquí. Entonces necesitamos nuestro caminar variable. Si caminar es igual a uno, entonces podemos continuar e animación. Ponemos eso aquí en el entonces y yo caminando no es uno, entonces debemos quedarnos quietos. Tenemos que cambiarnos a este disfraz aquí. Cambia el disfraz a Avery. Creo que es B, hagamos esto. Cambia el disfraz a Avery B, y probemos esto Izquierda, derecha, todo está funcionando, pero no se detiene aquí. Eso es un problema, claro, tenemos que volver a poner a caminar 20, y ¿dónde hacemos eso? Poner caminando a cero, podríamos hacerlo aquí, pero el problema es que debería ser condicional. Hay múltiples formas de hacerlo. Podemos tener un anidado si entonces else. Vamos a arrastrar estos sifs aquí fuera del para evepe. De esta manera se vuelve más fácil, y necesitamos usar if que else para cada uno. Si un else y esto aquí tiene que ir aquí, y esto tiene que ir aquí, claro. Si se presiona la tecla flecha izquierda, luego establece esperando a uno, así que eso es lo mismo que antes. Puede deshacerse de esto si entonces. Pero en el caso contrario, verificamos la otra clave aquí, pero no con si entonces, sino también con if then else. Entonces tomemos esto aquí. Arrastre la condición por aquí y arrastre este bloque por aquí. Esto podría ser un poco complicado porque estamos anidando aquí si las condiciones Primero estamos comprobando la primera tecla de flecha izquierda. Si se presiona esto, y si no se presiona, estamos comprobando aquí en el caso els la tecla de flecha derecha presionada. Si este tampoco es el caso, nos estamos metiendo aquí en el caso els de este interior si entonces else. Ahí podemos establecer caminar a cero porque no se presionó la tecla de flecha izquierda porque estamos en este caso els, y además tampoco se presionó la tecla de flecha derecha, así que estamos en este caso els. No se presionó ninguna tecla, y podemos establecer caminar a cero entonces. Entonces pongamos todo eso aquí en la lupa for eve otra vez, y probémoslo a la izquierda, a derecha, de pie, y funciona Ahora tenemos nuestra animación aquí. Entonces, cómo funciona esto es simplemente cambiando de vestuario, y si el disfraz está en cierto punto, en este caso, es el disfraz número cinco, necesitamos restablecerlo al primer fotograma de la animación, que es cada A caminando, y de lo contrario, solo estamos cambiando al siguiente, pero solo si caminar es uno, y si caminar no es uno, solo estamos cambiando al disfraz de pie. ¿Cómo determinamos si caminar debe ser uno o cero? Solo estamos comprobando si alguna tecla fue presionada, así que no cualquier tecla sino la tecla de flecha izquierda o derecha, si no se presiona ninguna de una, entonces ponemos caminar a cero. De esta manera, tenemos esta agradable animación para caminar. Ahora tenemos todas las caminatas y el jugador puede controlar en qué dirección o si debe quedarse quieta. Creo que esto es lindo? controlar al personaje principal aquí, y continuamos en el siguiente video. 31. 31 Configuración de la primera habitación: Ya que podemos controlar a nuestro personaje aquí nuestro personaje principal ahora. Entonces así, tenemos que prepararnos para nuestro primer acertijo, nuestro primer rompecabezas en la primera habitación Y hablando de primera habitación, tenemos que elegir un telón de fondo diferente aquí porque esto simplemente está vacío. Así que vamos a comprobar lo que está disponible. Y mi idea es que estemos empezando en una recámara. Así que tomemos tal vez el segundo dormitorio aquí. Y coloca avery en esta habitación. Vamos a moverla un poco, así que la posición inicial quizá debería ser algo así como aquí, y como necesita caminar de izquierda a derecha, no puede subir aquí. Tiene que haber suficiente espacio y no hay obstáculos aquí abajo, y de esta manera, ella puede caminar libremente hacia la izquierda y hacia la derecha. Arreglemos la posición inicial de Avery. Podemos simplemente establecer go a x, ir a y aquí, y estas coordenadas son coordenadas actuales, así que está bien. Ella siempre está empezando desde ahí. Si la movemos y luego vamos, se le restablecerá a esta posición inicial y de ahí, podrá moverse en su habitación a la izquierda y a la derecha. Esa es la parte móvil, y esa es la parte de fondo. Ahora necesitamos objetos para que Avery pueda interactuar con ellos y resolver un rompecabezas El primer rompecabezas será que la puerta de su habitación esté cerrada con llave. Necesitamos encontrar una clave y ¿cómo ha sucedido esto? Mi idea era que anoche estaba sonámbulo y accidentalmente cerró la puerta y puso la llave debajo de la cama para que ahora necesite encontrar la llave debajo de su cama y luego abrir la puerta para salir de la primera habitación Vamos a poner en práctica eso. Para ello, por supuesto necesitamos una clave. Busquemos un sprite clave. Tecla Enter, y ahí tenemos una. Afortunadamente, esto es un poco demasiado grande. Tal vez solo el 50% o el 30%. Sí, a lo mejor está bien. Vamos a mover esta llave a alguna parte. Debajo de la cama, tal vez en la sombra aquí cerca de la parte superior de la cama, tal vez. Creo que está bien. Por lo que no es inmediatamente visible aquí y el jugador tiene que detectarlo primero y luego recogerlo. Esta es la clave, el objeto para que la primera habitación resuelva el rompecabezas, y ahora tenemos que pensar cómo el jugador debe llegar a la solución. Entonces lo primero que haría es que si todos quieren salir de la habitación, ella debe ir a la izquierda o a la derecha, y debe haber una puerta, pero la puerta está cerrada, así que ya podemos decidir si la puerta está del lado derecho o del lado izquierdo. Yo diría que está aquí, así que tenemos que decirle al jugador que esta es una puerta ahí y la puerta está cerrada con llave. Entonces, ¿cómo hacemos eso? Tenemos que verificar la coordenada x aquí, y si la coordenada x es mayor que un cierto valor, entonces podemos dejar que Avery hable Pero hay una solución diferente a este problema. Podemos hacerlo comprobando la coordenada x aquí, pero también podemos poner un objeto aquí, tal vez un objeto con cierto color aquí. Y entonces si Avery golpea este objeto o golpea el color, entonces podemos dejarla hablar Probemos la segunda solución. Ponemos un color especial aquí y si Avery le pega al color, entonces la dejamos hablar Entonces vamos al telón de fondo. Nuevamente, telones de fondo aquí. También podemos borrar el primero. No necesitamos eso. Entonces cambiemos primero el color a algo marrón, piensa que debería estar bien, un poco más oscuro, tal vez. Y luego un rectángulo. Entonces pongamos ese rectángulo aquí. Y esta es, por así decirlo, la puerta de aquí. Avery podría simplemente caminar hacia la puerta, y luego tenemos que verificar de alguna manera si ella golpea este color aquí Si este sprite está tocando este color. Ojalá, este color sea único aquí en la habitación y no se encuentre en otro lugar. Entonces entonces tenemos que cambiar el color, claro, pero ese no es el problema. Eso lo podemos hacer. Pero primero probémoslo con este color, y luego tenemos que verificar el toque de un color. ¿Cómo lo hacemos? Sensing, Esta es la categoría correcta aquí, pero estamos en telones de fondo Entonces cambiemos a Avery. Entonces aquí tenemos la posibilidad de. El color es tocar color o el sprite tocando el color, y este es el correcto Entonces esta puede ser la condición, y podemos poner eso aquí en una declaración if. Así que vamos a conseguir un si entonces. Es, me toco el color, y ahora tenemos que escoger el color. Aquí tienes el recogedor de color. Simplemente haz clic en eso, y ahora puedes elegir un color aquí desde la pantalla. Tomamos, por supuesto, el color de la puerta. Entonces ese es nuestro color. Y si le pegamos a eso, simplemente dejamos que Avery hable algo Vamos a buscar primero y saludar, y eso debería estar bien por ahora. Entonces podemos poner esto en el for velope y cada iteración, comprobaría el toque de este color, y si toca el color, dirá hola Probemos esto caminando hacia la puerta. Hola, y esto funciona. Por supuesto, ella siempre está saludando ahora, y deberíamos poner eso en un if else. Nuevamente, reemplazamos eso aquí por si entonces else. Mueve esa condición por aquí y mueve el hola por aquí. ¿Y cómo nos deshacemos de la burbuja del habla aquí? Pongamos eso primero en el F everop otra vez. Nosotros no decimos nada. Entonces otra vez, di y no hola, pero lo borramos por completo. Entonces no hay nada, no hay ningún personaje aquí, completamente vacío, y de esta manera, la burbuja del habla desaparece. Bien, intentemos eso. Caminando hacia la puerta. Estamos golpeando la puerta. Ella dice, hola, y nos estamos alejando de la puerta y el hola se ha ido. La burbuja del habla se ha ido. Además, notamos que este es el color correcto. Esto es único en esta habitación. Entonces sólo tenemos este color aquí en la puerta. Esto funciona, y vamos a cambiar este hola a la puerta está cerrada con llave. La puerta está cerrada con llave. Debo haberlo cerrado mientras sonambulismo por la noche y poner la llave en alguna parte larga explicación, pero esto debería ser una pista para el jugador qué buscar Intentemos eso otra vez, reiniciando, yendo a la puerta, golpeando la puerta, La puerta está Debo haber cerrado con llave. Hay ortografía confundirlo mientras duermes caminando por la noche y poner la llave en alguna parte. Corregamos esto y ahora es correcto. Alejándose de la puerta y el cuenco del discurso desaparece. Este es nuestro primer mecanismo aquí, y se basa en este color conmovedor. Puedes usar esto con colores especiales que elijas, y luego puedes sentir una colisión de un sprite con un color y luego decir algo, por ejemplo, aquí, o también puedes hacer otra cosa Bien, entonces esa es la pista para el jugador aquí, y ahora tenemos que verificar cómo podemos obtener la clave aquí, cómo el jugador puede recoger la llave Si el jugador tiene la llave, entonces Avery puede abrir la puerta y salir de la habitación 32. 32 Mostrar información de clave: Ahora vamos a crear el código para el objeto clave. Aquí tenemos la clave, el sprite, y aquí tenemos el código Por el momento no tenemos ningún código, pero lo insertaremos ahora cuando vaya clicado como siempre Y luego lo que hacemos cuando vamos clicked. Cuando vaya clicked, hacemos un para everop. Y comprobamos si el puntero del ratón está tocando este sprite aquí Vayamos a si más. caso contrario, ponlo en los cuatro velope, y entonces necesitamos la categoría de detección aquí Si toca el puntero del mouse, si este sprite está tocando el puntero del mouse, entonces digamos algo o pensemos algo. Así que piensa. No, no, pero es una clave y en el otro caso, en el otro caso, no pensamos en nada para que esto solo se muestre si el puntero del mouse realmente está tocando el sprite de la tecla Vamos a probar eso. Al pasar el cursor sobre la llave, es una llave, funciona, y si guardo el punto del mouse, entonces ya no está Eso es lindo. Pero queremos algo más. Esta burbuja aquí solo debería aparecer si Avery está cerca de esta llave Si ella está, por ejemplo, aquí, así que a unos pocos píxeles de la llave, entonces debería mostrar esto. Es una llave si pongo el cursor sobre la llave, y si ella está como aquí, ejemplo, entonces no debería estar ahí De esta manera, hacemos que el jugador mueva al personaje para explorar los alrededores aquí, y no es solo el puntero del mouse el que necesita ir a todas partes y buscar algo para, por ejemplo, recoger o mirar o usar. Hagamos esto. ¿Cómo lo hacemos? Ciertamente hay múltiples formas de hacerlo. Usaremos otro sensor aquí. Entonces tenemos esta distancia hasta aquí es puntero del ratón. Es un valor por defecto, pero también podemos elegir Avery, así que voy a sprite aquí Distancia a Avery, y la distancia a Avery debe estar por debajo de cierto límite Entonces vayamos a los operadores y elijamos esto aquí. Menos que, la distancia a Avery debería ser menor que, digamos, dejémosla como 50 o algo así Podemos ajustarlo posteriormente también. No hay problema, déjalo así. Entonces necesitamos verificar si el puntero del mouse está tocando la tecla y también que la distancia a Avery esté por debajo de 50 aquí Y este fin no lo hemos usado antes, pero esto está aquí también bajo operadores. Entonces aquí tenemos este fin. Así que vamos a arrastrar eso aquí. La distancia dos es el segundo operando aquí, y el primero es el puntero táctil del mouse Entonces tenemos ahora dos condiciones, y ambas deben cumplirse para exhibir esto. Es una llave. primera condición es tocar el puntero del mouse, y la segunda es que la distancia a Avery es inferior a 50 Entonces esta es la condición completa con este fin aquí, y lo ponemos aquí. Entonces hay que tener cuidado al insertar esto, entonces el borde izquierdo aquí debería estar alineado con esto si forma aquí. Entonces está resaltando si lo pones en el lugar correcto aquí, y luego puedes soltarlo, y luego tienes si tocas el puntero del mouse y la distancia a Avery está por debajo de 50, entonces puedes mostrar esto Es una llave, de lo contrario, no mostrar nada. Probemos esto. Primero, intentamos cursor sobre la llave cuando Avery está aquí La distancia es por supuesto, más de 50 aquí, y no está mostrando nada, así que eso es bueno. Caminemos más cerca Oh, aquí vemos que el orden Z no es correcto aquí Pero está funcionando, es una clave. Ahora está mostrando, es una llave, y si muevo a Avery un poco a la derecha, no lo está mostrando Eso es lo que queremos. Avery tiene que moverse cerca de la llave para realmente recibir este mensaje aquí Es una llave. Eso está funcionando, pero necesitamos arreglar el orden aquí para que la clave esté siempre en segundo plano, pero eso es fácil cuando vaya haga clic entonces, necesitamos establecer esto en la capa posterior. Aquí, ve a la capa frontal, cámbiala por atrás, así que ve a la capa posterior. Y luego poner eso directamente después cuando se hizo clic en la bandera. Y ahora eso debería estar bien. La clave debe estar en el fondo, y funciona. Vamos a pasar el cursor. Es una llave. También del otro lado, está funcionando Es una llave, y si me alejo de la llave, entonces ya no funciona. Eso es lo que queríamos, y eso es lo que también logramos. Este operador final aquí es nuevo. Entonces puedes combinar dos condiciones aquí, esta condición de punto de ratón conmovedor con esta distancia a Avery por debajo de 50 condición Este de aquí es el segundo operante, y este es el primero Sólo si estos dos son ciertos, entonces mostramos esta burbuja de pensamiento, y de lo contrario, esta burbuja de pensamiento desaparecerá. 33. 33 Recoger la clave: Ahora que podemos mostrar aquí una descripción del objeto de nuestra clave. Necesitamos poder que el jugador lo recoja y lo ponga en el inventario. Vamos a probar esto. Cuando el jugador hace clic en la clave, y necesitamos cambiar a la clave, por supuesto, para eso, entonces algo debería suceder. Vamos a eventos cuando este spride hizo clic, y luego tenemos que hacer algo Primero, necesitamos una nueva variable aquí. Para todos los sprts para que se pueda acceder a él en todas partes, no sólo en el spride Lo llamamos clave recogida, y esto será cero si la llave aún no fue recogida y se establecerá en una en este caso aquí cuando esta novia haga clic, pero también hay que considerar esto si aquí Entonces necesitamos esto si toca el puntero del mouse y la distancia dos, no tocamos específicamente el puntero del mouse. Creo que eso no es necesario porque la distancia a Avery es esta condición importante que aquí necesitamos Así que vamos a duplicar este click derecho sobre esta distancia a Avery, y lo ponemos aquí primero Y necesitamos un control aquí si entonces Entonces si distancia a Avery, cuando se hace clic en el sprite, cuando se hace clic en la clave, es menor que 50, podemos recogerlo, y establecemos Recogió dos o uno, y al principio, necesitamos fijarlo, por supuesto, al valor predeterminado de cero aquí. Bien, intentemos eso. Aquí tenemos la visualización del valor de la variable aquí. Clave cogió cero al inicio, eso es correcto. Y tenemos que intentar dar click en la clave en este punto. No es posible. Eso está bien. Eso es lo que queremos. Y ahora podemos ver que es una llave, y ahora deberíamos poder recogerla y aquí está funcionando. Entonces nuevamente, reiniciemos el juego. Intentamos dar click sobre la clave. No está funcionando, y en cuanto se muestre una clave, podemos hacer clic en ella y recoger la clave. La variable se establecerá en uno. ¿Qué más tenemos que hacer aquí? Tenemos que ir a looks y ocultar primero el sprite para que desaparezca aquí de la pantalla Entonces probemos esto yendo por aquí. Bien. La llave, es una llave, y ahora puedo pinchar sobre ella, y ahora se ha ido, muy bonito. Esta es la parte de recoger y está funcionando bastante bien. Ahora necesitamos tener un inventario donde exhibamos todos los artículos, por ejemplo, esta llave aquí que actualmente están en el inventario, en el bolsillo, por ejemplo, o tal vez tenga una mochila, algo así. Entonces necesitamos mostrar todos los artículos en este momento, solo tenemos un artículo aquí, la clave, y esto debe mostrarse en el inventario. 34. 34 Mover la clave del inventario: Ahora queremos poner nuestra llave recogida en el inventario. Entonces hagamos un inventario. Debería ser algo así como una mochila o algo así. Pero en la práctica, creo que es sólo un rectángulo con un color de fondo, y eso es todo. Vamos a pintar un nuevo sprite. Así que elige pintar aquí, y luego solo hacemos un rectángulo aquí. Entonces así, ponlo en el medio aquí. A lo mejor eso es un poco demasiado grande. Entonces tal vez algo como esto. Ahora no es el color correcto, supongo. Cambiemos eso a casi blanco, diría yo. Entonces brillo un poco más bajo que eso, eso debería estar bien. Podemos retocarlo más tarde. Y además la posición y el tamaño no es correcto. Entonces pongamos el tamaño aquí a ocho, a ver cómo se ve eso. Y luego vamos a moverlo al fondo aquí, y podemos ver que Avery o sprite aquí está un poco demasiado Así que vamos a moverla. Vamos a entrar en su código. Y cuando establecemos aquí la posición inicial, tal vez podamos fijarla 250 -50 Veamos cómo se ve esto. Ahora un poco menos que eso. Un poco más B preciso. Empecemos de nuevo. Sí, tal vez sólo un poquito más como 42, y ahora tenemos la posición correcta, supongo. Así que vamos a controlarla un poco. Eso se ve bien. Y también esto puede ser un poco más pequeño, tal vez. Entonces solo cambiamos el tamaño aquí, vamos a la flecha aquí y luego cambiamos el tamaño en los bordes aquí, algo como esto, o incluso más pequeño tal vez algo como Creo que está bien, así que lo dejamos así. Por ahora, esto es solo el fondo nuestra mochila, digamos, necesitamos mover la llave, que está aquí a este inventario si el jugador la recoge. Aquí tenemos el código cuando el jugador recoge la llave ahora en este momento la escondemos, pero en lugar de ocultarla, deberíamos moverla a la nueva ubicación dentro de la mochila aquí. Vamos a deshacernos de la piel y en su lugar, tomamos la llave que es invisible en este momento. No lo hemos inicializado para mostrar. Entonces, para estar seguros, hagamos esto. Al principio, mostramos nuestra tecla presionándola aquí en el programa, y luego es visible aquí. Detengamos el juego, y luego movemos la llave por aquí al inventario. A lo mejor aquí es un buen lugar. Y luego vamos al movimiento y vamos a x y, y esta es la posición actual aquí. Simplemente arrastramos eso aquí hasta cuando el sprite hizo clic. Ahora lo que tiene que pasar es o lo que va a pasar es que si el jugador hace clic en la llave, se moverá de aquí a aquí, así que está en la mochila. Y además esta llave recogida se establece dos, una. Podemos usar este valor variable aquí, podemos usar en la puerta si el jugador golpea la puerta, así que empecemos de nuevo. Y el problema aquí es que no hemos establecido una posición inicial, así que es por eso que la clave en este momento, podemos hacer clic en la tecla aquí en el sprite, y luego parpadea hacia arriba Mira aquí, y puedes ver que parpadea. Entonces está por debajo de nuestro inventario derecho. Entonces pongamos ese sprite en la capa posterior. Entonces cuando vaya clicked Luego bajo miradas, tenemos esto ir a la capa frontal y esto va a cambiar a capa trasera aquí Esto va a estar bajo la llave ahora, debería ser. Veamos dónde está la llave. No, todavía no lo es. A lo mejor también necesitamos, tenemos esto ir a capa trasera aquí. Deberíamos cambiar también para ir a la capa frontal. Eso fue un error. Aquí tenemos la llave, pero no está en la posición correcta, así que tenemos que volver a colocarla a este lugar debajo de la cama. Vamos a moverlo ahí. Algo así aquí. Eso se ve bien. Ir dos x y debe ser la posición correcta, y esta es la posición inicial de nuestra llave. Vamos a probarlo. Ve a la llave, y luego trata de recogerla. Ese es el problema aquí. Aquí no está en la capa correcta, se muestra sobre ay aquí. Eso es un problema, pero podemos resolverlo más tarde. Y también tenemos un problema aquí porque la puerta está cerrada, debo haberla cerrado mientras sonambulismo, que es el color que es el mismo que la puerta aquí Entonces eso también es un problema. Bueno, ahora vamos a hacer clic en el Sprite, y esto al menos funciona Por lo que esta llave se traslada a esta ubicación aquí en el inventario. Bien, primero arreglemos este problema de capa. Entonces aquí, claro, tenemos que volver a la parte de atrás porque tenemos que asegurarnos de que la clave está detrás de nuestro personaje principal aquí. Pero entonces si lo trasladamos al inventario, tenemos que asegurarnos de que también va a la capa superior a la capa frontal. Así que cada vez que lo movemos aquí, solo podemos ir a la capa frontal. Entonces probemos eso. Entonces ahora está detrás de Avery. Todo. Aquí está este problema de color, pero hagamos clic en él y lo tenemos en nuestro inventario. Vamos a deshacernos de este problema de color. Entonces, obviamente, la llave tiene un color, que también es el color de la puerta. Entonces necesitamos cambiar el color de la puerta o el color de la llave. Entonces cambiemos este color aquí en nuestro telón de fondo. Así podemos acercarnos un poco aquí. O tal vez sea más fácil cambiar el color de la llave, así que vamos a comprobarlo. Sí, aquí es un color, todo un color, así que quizá podamos seleccionar todos aquí. Seleccionar todo es comando A o Control A en Windows y en Mac es comando A. Así que solo selecciona todo, y podemos elegir un relleno diferente aquí. A lo mejor es una llave verde, algo así. Entonces brillo un poco más oscuro, tal vez esa duración, un poco menos y un poco diferente en el color, no muy bonito, pero espero que haga el truco. Ahora no es muy agradable aquí. El contraste no es muy agradable. Así que vamos a hacerlo aún más oscuro. Ahora es mejor. Aquí tenemos una llave verde. Entonces probemos esto. Todavía hay una colisión. Oh, lo he seleccionado aquí y accidentalmente lo he movido con unas teclas de cursor. Entonces debemos deshacer eso. Cambiemos el código y luego reiniciemos el juego. Bien, entonces no obtenemos este color o este mensaje sobre la puerta, así que todo bien. Entonces vamos a hacer clic en la clave, y aquí está. Bien, ahora tenemos que ir a la puerta, y por supuesto, sigue cerrada porque no hemos implementado algo para abrir la puerta. Hagámoslo en el siguiente video. 35. 35 Desbloqueo de la puerta: Ahora que tenemos la llave en nuestro inventario o que el jugador tiene la llave en el inventario, podemos abrir la puerta, al menos teóricamente, el jugador podría abrir la puerta, y esto es lo que implementamos en este video Es bastante fácil. Ya tenemos la variable aquí, set key picked up to one, así que solo podemos probar para eso. Y para ello, tenemos que ir al jugador. Y aquí tenemos la parte de color conmovedor, y en caso de que el jugador toque el color de la puerta, dice Avery, la puerta está cerrada Debo tener y así sucesivamente. Y esto es lo que necesitamos cambiar. Entonces necesitamos verificar o insertar un cheque aquí. Entonces vayamos al control. Y entonces esto si, y tenemos que comprobar la variable, por supuesto, para la igualdad. O mejor que tomemos no si la n sino si entonces else, si entonces else y esta comprobación de igualdad. Si es cero, entonces necesitamos la variable, si la clave cogida es igual a cero, entonces podemos decir que la puerta está cerrada con llave. Pero si la clave recogida no es cero, sino una, podemos dejar que el jugador hable otra cosa. Saluda por 2 segundos o tal vez sean 3 segundos, y la dejamos decir. Ya que ahora tengo la llave, puedo abrir la puerta. Ahora puedo abrir la puerta y finalmente salir de mi habitación. Bien. Los segundos deberían ser suficientes. Y ahora colocamos esto de nuevo en este si tocando color, este color marrón de la puerta aquí. Vamos a probar eso. Primero recogemos la llave, o intentemos primero no tener la llave y luego tocamos la puerta, las puertas cerradas. Eso está bien. Eso está bien. Ahora tenemos que recoger la llave aquí. Acércate un poco más. Ahora podemos recoger la llave, y entonces deberíamos poder abrir la puerta. Ya que ahora tengo la llave, puedo desbloquearla y finalmente salir de la habitación, o puedo desbloquearla. Eso es mejor. Lo que hemos visto es que Avery debe dejar de caminar Por eso necesitamos cambiar el disfraz a Avery B al disfraz de pie para duplicar, y luego también lo hacemos antes de decir aquí esta frase A ver si esto funciona. Vamos a por la llave. Ahora sigue caminando. El problema es que esto aquí hace que el programa se atasque o que el script de aquí se atasque durante 3 segundos. Entonces esta animación por aquí sigue progresando, así que por eso esto no funciona Pero lo que podemos hacer es que podemos establecer podemos deshacernos de eso aquí, y podemos establecer la variable walking a cero, establecer Aquí set walking 20, entonces esta animación aquí en este código aquí no debería progresar. Probemos esto. Primero consiguiendo la llave. Eso es lo suficientemente cerca. Ahora tengo la llave y Avery se queda quieta y dice la frase Eso es lindo. Pero claro, también necesitamos salir de la habitación en realidad ahora e ir a la habitación contigua y lo haremos en el siguiente video. 36. 36 El menú de acción: Antes nos encargaremos de los vestuarios y Avery saliendo de la habitación yendo a la habitación contigua Mejoraremos un poco nuestro inventario para que puedas hacer clic en cualquier artículo del inventario en este momento, es solo la clave y luego obtener un menú con comandos que puedas o con acciones que puedas usar en este artículo específico. Entonces en este caso, es nuestra clave. Para eso, estamos creando un nuevo sprite aquí. Primero renombramos este sprite aquí porque es solo frío Sprite uno, simplemente lo llamaremos n tree así Entonces otra cosa, tenemos que arreglarlo. Empecemos de nuevo un juego. Sólo tienes que ir a la llave, y ahora lo que ves por aquí, si hago clic en la tecla, ves un destello aquí, y esta es la burbuja de pensamiento. El problema es que la burbuja de pensamiento es visible aquí cuando la clave se mueve al inventario. Tenemos que ocultar la burbuja de pensamiento si movemos la llave. Vamos a esto si toca el puntero del mouse. Piensa que es una clave y si no pienses en nada. Aquí, estamos mostrando la burbuja de pensamiento, si la p, el puntero del ratón está tocando la tecla, y luego si se hace clic en el sprite, necesitamos ocultar la burbuja de pensamiento Simplemente dulicar esto no creo nada. Antes de mudarnos aquí a esta nueva ubicación, no pensamos en nada y de esta manera, ya no debería haber flasheo. Vamos a probar eso. Deténgase aquí, y luego haga clic en la tecla y luego esto ya no parpadea. Esto es ahora, así que vamos a crear un nuevo sprite para nuestra acción. Esta acción será la acción de uso para que podamos usar la clave. Y luego si haces clic en el uso, la puerta debe abrirse y Avery desbloquearse y Avery puede ir a la habitación contigua Dibujemos un nuevo sprite aquí, y necesitamos algún tipo de rectángulo Supongo, pongamos aquí un rectángulo. El relleno debe ser blanco, así, y podemos dejar el borde aquí, negro. Eso está bien. Pero es demasiado grande, claro. Primero escribamos el texto aquí. Se usará texto, y por supuesto, necesitamos poner el relleno aquí negro para que podamos leer el texto. Entonces movemos esto aquí y luego seleccionamos de nuevo el rectángulo, haciéndolo un poco más pequeño aquí, todavía demasiado grande. Entonces tal vez algo como esto, y el sprite, por supuesto, es demasiado grande en este momento Entonces digamos que es 60%. Eso parece estar bien. Entonces movamos eso aquí a este lugar para que simplemente aparezca aquí cuando se haga clic en la clave en el inventario Vamos al código. Creo que la apariencia aquí está bastante bien. Eventos, cuando se hace clic, tenemos que ocultarlo primero porque no se debe mostrar al inicio Elige esconder y muévelo aquí. Probemos esto, y ya no está. Eso es bueno. ¿Cuándo debería mostrarse? Debe mostrarse cuando se hace clic en la clave, pero no cuando se hace clic en la clave aquí, sino si la clave está en el inventario Vamos a la llave. Aquí tenemos cuando este sprite hizo clic, y aquí tenemos que decirle a este nuevo sprite que Y ya hemos usado algo así, cómo decirle a otro sprite que haga algo Y esto lo podemos hacer con la difusión de mensajes. Aquí tenemos transmitido el mensaje uno, y tenemos que poner eso aquí y no lo llamemos mensaje uno, sino que lo llamaremos acciones de visualización y de esta manera. También puede ser utilizado por un segundo botón, un segundo sprite, que ejecutará una acción Este caso, solo tenemos uno, y vamos a cambiar el nombre de este aquí para usarlo así. Esta clave necesita decirle al sprite de aquí que se muestre, así que transmitimos, el mensaje, y vamos al uso sprite Y aquí necesitamos recibir ese mensaje. Cuando reciba acciones de visualización, luego mostrar Así que de esta manera con el clic en la tecla, se mostrará. Intentemos eso, y está funcionando. Así que cada vez que hago clic aquí en la clave, esto se muestra aquí. Por supuesto, esto no es correcto. No debería mostrarse si la clave no está en el inventario. Entonces eso es lo que necesitamos implementar ahora. Y esto es un simple si. Entonces vamos a las variables aquí, clave recogida. Esta es la variable que necesitamos verificar, así que ve a operadores. Si la clave recogida es igual a uno, y ahora necesitamos un control if si entonces y aquí si k recogido es igual a uno, entonces podemos hacer la transmisión aquí. A veces no es tan fácil poner el if alrededor de cuadras aquí. Yo solo lo hago así, y luego me muevo el segundo si aquí abajo este si. Por favor asegúrate de tenerlo así, no anidado porque entonces también solo se ejecutaría o solo se verificaría aquí si la clave recogida es igual a una, y eso es, por supuesto, no correcto Es necesario ponerlo debajo de esto primero si. Asegúrate de hacerlo así. Entonces, si la clave recogida es igual a uno, entonces podemos transmitir, y luego se pueden mostrar los comandos de uso. Y cuando el usuario hace clic en el uso, podemos simplemente ocultarlo, tal vez. Entonces vamos a mirar, por supuesto, y escondernos, y luego necesitamos un evento cuando este sprite haga clic en ocultarlo Vamos a probar eso. Pasamos a la llave para que podamos recogerla. Ahora lo tenemos en el inventario, hacemos clic en la tecla, se muestra el comando use, se muestra el botón de acción de uso y hago clic en el botón y se ha ido, ya no se muestra. Esto funciona. Pero ahora, por supuesto, necesitamos implementar algo que tú o el jugador necesitan hacer clic aquí en el botón de uso, y solo entonces la puerta se puede desbloquear, y solo si Avery está realmente cerca de la puerta, entonces el jugador puede desbloquear la puerta con una llave mediante este uso de llave de uso, y luego la puerta se puede desbloquear, pero solo si Avery está cerca de la Entonces vamos a implementar eso en el siguiente video. 37. 37 Desbloqueo de la puerta con la acción de uso: Por el momento, la puerta se abre en cuanto se recoge la llave y Avery golpea la puerta o toca la puerta, luego se abre la puerta, y queremos cambiar eso La llave es necesaria para ser utilizada en la puerta. Entonces comencemos de nuevo el juego. Camina hasta la llave, recójala. Y en este caso, no haces nada, claro, porque Avery no está tocando la puerta Y si ahora toca la puerta, se desbloquea automáticamente, pero queremos que se desbloquee cada vez que se presiona el uso de la llave cuando Avery toca la puerta Entonces, ¿qué tenemos que hacer para eso? Tenemos que ir a nuestro sprite de uso aquí. Y cada vez que se hace clic en este sprite de uso, lo estamos ocultando. Eso está bien. Pero también estamos transmitiendo un nuevo mensaje. Entonces aquí difusión, no, necesitamos un nuevo mensaje aquí, y este nuevo mensaje se usará clicked Y esto tiene que ser, por supuesto, recibido por Avery. Vayamos a Avery, y luego cuando reciba, use clicked, y ahí es cuando necesitamos verificar si Avery toca Así que vamos a introducir una nueva variable aquí, hacer una variable sólo para esta novia, y la llamamos tocar puerta, y la pondremos cada vez que se toque la puerta. Entonces en este caso, lo estamos configurando puerta que toca uno, y en este otro caso, si no se toca la puerta, estamos poniendo por supuesto a cero. Vamos a comprobar si esto funciona. Vamos a la puerta. Tocar puerta es uno, y si me alejo de la puerta, es cero. Así que eso funciona. Y ahora tenemos que checar aquí en uso clicked cuando recibo uso clicked, eso significa que el usuario ha hecho clic o el jugador ha hecho clic en el uso en el Upright, entonces necesitamos verificar si estamos Entonces hagamos un si entonces else. No sé si necesitamos el caso, pero hagámoslo con eso. Y luego cheque de igualdad, y ahora necesitamos nuestra variable. Entonces tocar puerta, si tocar puerta es igual a uno, Entonces estamos tocando la puerta y estamos recibiendo uso clicked Y en este caso, podemos decir, como ahora tengo la llave, puedo desbloquearla. Entonces movamos eso de aquí a esto si entonces, y esto debería decir esta frase aquí. Pero el problema está en esto para evalue, estamos diciendo nada aquí todo el tiempo Así que eliminemos eso temporalmente y luego iniciemos de nuevo el juego para estar seguros. Al hacer clic en el uso ahora no debería hacer nada. Entonces eso está bien. Entonces ahora necesitamos tocar la puerta, tocar la puerta es una, y ahora hacemos clic en el uso, y esto debería mostrarse. Esta la puerta está Desbloqueada ahora. Eso parece funcionar, muy bonito. Reiniciemos el juego, y caminemos hacia la puerta. La puerta está cerrada se muestra, así que eso es k dos. Vayamos sin tocar, y ahora este mensaje, esta burbuja aquí se queda. Entonces eso es un problema. Así que solo podemos volver a ponerlo aquí si no tocamos en el caso contrario, solo estamos borrando la burbuja aquí A ver si esto funciona. Empecemos de nuevo, recogiendo la llave y luego hacer uso de ella mientras tocamos la puerta. Y esto está funcionando. Y también puedo alejarme de la puerta. Y si reiniciamos el juego y luego solo vamos a la puerta, debería mostrarse. Esta puerta está cerrada, así que eso también está funcionando. Eso está bien, como es. Pero claro, tenemos que pensar otros artículos que entran en el inventario. Y esto es fue asumiendo que la clave se selecciona aquí alguna manera para que la recojamos y luego haga clic en la clave y luego haga clic en usar. Pero si tuviéramos otro ítem aquí, digamos que tenemos algo una manzana tal vez, y hacemos clic en el Apple y luego hacemos clic en usar, entonces esto no funcionaría porque todo está asumiendo que este uso se hace clic en la clave Tenemos que generalizar aquí un poco. Si tenemos más de un artículo aquí en nuestro inventario, necesitamos verificar en qué artículo se hizo clic y para qué artículo es esta acción de uso Yo, por ejemplo, se usa una manzana, cada necesita comer la manzana y no abrir la puerta, claro. Eso es lo que no está funcionando en esta situación tan especial aquí como la tenemos. La lógica es un poco demasiado específica aquí. Tenemos que generalizar la lógica aquí. Pero primero, vayamos a la habitación contigua, y ahí podríamos tener un segundo artículo que podamos recoger, y tal vez sea tal vez sea la cocina, la habitación contigua, y ahí podemos encontrar una manzana y recogerla y usar la manzana. 38. 38 Bloque de habla personalizado: Entonces falta una cosa más aquí en esta pantalla. Si volvemos a empezar un juego, Entonces vamos aquí, la puerta está cerrada con llave. Primero tenemos que recoger la llave. Todo está bien. Pero el problema es que si luego recogemos la llave, y la usamos, y no estamos tocando la puerta, entonces no pasa nada. Este es exactamente este caso aquí, y en este caso, tenemos que decir algo más. A lo mejor digamos que doblamos esto, y luego decimos algo así como, no puedo usar esta clave aquí, y esto puede ser por 2 segundos aquí. Hagamos esto, recoja la llave, intentemos usarla sin tocar la puerta. Y no funciona. Por qué no funciona. Es porque aquí lo estamos diciendo, pero el problema está aquí en nuestro bucle para siempre, estamos en este caso, no tocando el color. Entonces no tocar la puerta y en el caso s, aquí no estamos diciendo nada. Entonces por eso se borra de inmediato la burbuja del habla. Ese es el problema aquí. Para resolverlo, quiero refactorial nuestro código. Refactorizar que teníamos esto ya es cambiar el código, pero no cambiar la funcionalidad En este caso, es como si tuviéramos una flecha, tenemos un bug, por así decirlo, pero aquí no estamos resolviendo esto en esta estructura, sino que primero hacemos una refactorización y luego podemos resolver con esta refactorización, podemos resolver fácilmente Hagamos esto. La idea es tener aquí un bloque personalizado. Ya lo hicimos, hacemos un blog, y a este bloque lo llamamos, habla. También podemos hacerlo así, hablar en minúsculas, y lo que también podemos hacer es agregar entradas aquí. Entonces podemos agregar un número o entrada de texto. Podemos agregar una entrada de bleen o podemos agregar una etiqueta. Entonces, centrémonos en este primero, agreguemos una entrada. La primera entrada será el mensaje real. Entonces lo llamamos mensaje, y necesitamos una segunda entrada a este bloque, que se llama duración, y esta es la duración de la burbuja de voz que muestran las burbujas de voz. Entonces tenemos dos parámetros aquí. Entonces primero está el mensaje que se debe pronunciar, y el segundo es la duración. Así que vamos a hacer clic en, y ahora tenemos nuestro bloque personalizado aquí. Entonces tenemos esta definición Así que vamos a moverlo aquí abajo. Entonces tenemos suficiente espacio para implementarlo. ¿Cómo lo implementamos? Podemos usar nuestros parámetros aquí. Tenemos mensaje y duración, y podemos usarlo como una variable. Podemos arrastrar esto aquí y ponerlo en algún lugar donde también se permitan variables. Hablemos primero aquí. Así es como se llama también, y vamos a buscar y conseguir que esto diga hola aquí. Pero aquí no queremos saludar, pero queremos decir mensaje. Lo que se suministre aquí como primer parámetro, y veremos cómo hacerlo se establecerá aquí, se hablará. Llamemos a este bloque aquí con este parámetro de mensaje. Entonces aquí, tenemos decir que no puedo usar el esquí aquí por 2 segundos, y estamos sacando esto de la ls y vamos a mis cuadras, arrastramos el habla aquí al otro. Y ahora podemos suministrar dos parámetros. El primero es, como dije, el mensaje, así que copiamos esto hasta aquí, así que este será el mensaje, y ahora podemos probarlo. Así que solo consigue la llave. Y aquí usamos la llave. Entonces tal vez la hayas visto. Puedo hacerlo de nuevo, e, y ya ves la burbuja, la burbuja del habla, pero aquí se borra de inmediato ¿Por qué es eso? ¿Por supuesto? Debido a esto decir aquí. Podemos deshacernos de la opinión. Esto dice que nada borrará o borrará la burbuja del habla aquí. Entonces nos deshacemos de eso y lo intentamos de nuevo, e, y ahora esto se queda, claro, se queda para siempre, por así decirlo, o al menos hasta que haya otro mensaje que hablar. Entonces ella siempre está hablando de esto ahora. No puedo usar esta clave aquí. Pero podemos por supuesto, usar la clave aquí y ahora ella está diciendo esto aquí. Y ahora no está diciendo nada. Aquí, decimos ya que ahora tengo la llave, puedo desbloquearla y finalmente salir de mi habitación, y esto se dice por 3 segundos y después de 3 segundos, se borra esta burbuja del habla. Por eso está desapareciendo aquí. Pero de todos modos, tenemos que tener en cuenta la duración aquí para que también podamos reemplazar esto con nuestro nuevo bloque de hablar. Hagamos esto. Para que esto funcione, tenemos que esperar Así que esperamos segundos, y estos segundos aquí son la duración. Así que vamos a arrastrar la duración aquí, el segundo parámetro a esperar. Y luego después de haber esperado el tiempo que se suministró aquí en los parámetros, podemos decir nada. Parece decir y luego borrar el texto aquí, así que está vacío. S mensaje, espera la duración que tenemos de la persona que llama aquí, y luego no digas nada. Aquí, podemos decir 2 segundos tal vez, y para éste, podemos arrastrar eso aquí y primero copiamos este mensaje al primer parámetro aquí. Y entonces el segundo será de 3 segundos aquí. Así que ahora podemos deshacernos de éste y reemplazarlo con nuestro bloque personalizado. Probemos esto. Consigamos la llave, y luego la podemos usar aquí, y deberíamos no puedo usar esta clave aquí, y luego está desapareciendo Entonces eso es esto de aquí. Pero ahora vamos a la puerta y aquí podemos usar la llave. Ya que ahora tengo la llave, puedo desbloquearla y finalmente salir de mi habitación. Eso está bien. Todo bien. Vamos a deshacernos de esto decir aquí y reemplazarlo también con nuestro bloque. Arrastramos eso aquí, habla. El primer parámetro es, por supuesto, nuestro texto, y el segundo, tal vez podamos decir, esperemos 3 segundos porque es una frase larga y necesitamos 3 segundos para leerla. El jugador promedio podría leerlo en 3 segundos. Probemos esto. pasar por aquí, si estamos tocando la puerta, la puerta está cerrada, y entonces Avery sigue caminando, como pueden ver, y no puedo mover a Avery cuando este mensaje se muestra No puedo moverla. Si entro más por la puerta, también estoy teniendo problemas para salir de la puerta. Entonces esa no es una buena experiencia de usuario, supongo. ¿Cuál es el problema aquí? Aquí no está reaccionando a mis teclas de flecha. ¿Por qué es eso? Porque estamos esperando aquí. Si llamamos hablar, estamos esperando esta duración, y si son 3 segundos aquí, entonces estamos esperando aquí, estamos bloqueados aquí, 3 segundos, y es por eso que todo este bucle para siempre aquí no continúa, y no podemos entrar en la flecha si izquierda presionada, si tecla, flecha derecha presionada. Esto no es posible porque está atascado por aquí, y hay que esperar a que la duración continúe aquí. Eso no es lindo, pero hay una manera de sortear eso. Podemos hacer que sea asincrónico. Es decir, no tenemos que bloquear aquí, pero aún después de la duración, podemos eliminar la burbuja del habla aquí. ¿Cómo lo hacemos? Estamos trabajando con mensajes de difusión. Pasemos a los eventos y creemos un nuevo mensaje de difusión. Si decimos el mensaje, entonces es, por supuesto, exhibido, y luego tenemos que esperar en otro evento. Aquí, tenemos un nuevo mensaje y lo llamo eliminar discurso, y esto nos va a hacer la espera. Esto va a hacer esto aquí. Pero aquí solo podemos transmitir. Para que entonces podamos reaccionar ante este mensaje con cuando reciba. Cuando reciba este nuevo mensaje de eliminación de voz, podemos esperar la duración y luego no decir nada. Probemos esto. Parece estar funcionando, pero no del todo porque la burbuja del habla se va de inmediato. Entonces, ¿por qué es eso? Es porque esta duración aquí no está tomando en cuenta, pero siempre es cero aquí. Porque este es un parámetro aquí en esta función, en este bloque personalizado, pero no se sabe aquí cuando recibo remove speech. Tenemos que transferir de alguna manera este valor aquí, este valor de duración sobre esto cuando recibo manejador aquí Cómo lo hacemos con una variable, claro. Hagamos una nueva variable, y la llamamos eliminar tiempo de voz o digamos duración, o llamémosla duración del habla. Es más corto, no para todos los sprites porque no necesitamos eso para los otros sprites solo para este sprite solamente, y luego tenemos esta nueva Y claro, tenemos que fijarlo aquí. Entonces cuando lo consigamos, duración del habla, podemos simplemente configurarlo aquí, establecer la duración del habla dos duración al segundo parámetro aquí. Y ahora podemos usarlo también aquí. Entonces nuestra variable de duración del discurso necesita ir aquí, y esto lo podemos deshacer. Y después de estos segundos de duración del discurso, aquí estamos borrando esta burbuja del habla. Vamos a probar eso. Ahora se borra después de los 3 segundos, pero no si estamos tocando, si estamos tocando, siempre se volverá a hablar, así que por eso no está desapareciendo Pero creo que está bien. Entonces, si no estamos tocando la puerta, entonces esto desaparece después de 3 segundos. Y lo que es bueno aquí es que todavía podemos controlar al personaje aunque se muestre la burbuja del habla. Esto es muy. Aquí siempre tenemos el control. Y podemos mover a Avery todavía, aunque mostramos la burbuja del habla Y aquí tenemos el control de la duración, cuánto tiempo se mostrará. Así que eso es muy bonito, y tenemos este bloque personalizado hablar aquí este bloque personalizado hablar que podemos usar en todos estos lugares. Y si queremos cambiar algo, la funcionalidad, si queremos mejorar en esto, entonces podemos simplemente cambiar este bloque personalizado aquí, y luego esto se cambiará para todas las personas que llaman Entonces aquí lo estamos usando. A ver si tenemos otra opinión aquí. No, no lo hemos hecho, así que está bien, así que hemos reemplazado todas las ocurrencias de decir con nuestro nuevo bloque personalizado aquí. Eso es muy bonito. Hemos definido un bloque personalizado con dos parámetros aquí, mensaje y duración, y ambos parámetros se utilizan aquí. Lo primero que hacemos aquí es establecer esta variable local a la duración que se suministró aquí. Entonces estamos diciendo el mensaje que también se suministró aquí, y aquí estamos haciendo esta transmisión, y estamos haciendo esta transmisión porque aquí, esto ya no está bloqueando nuestra función aquí, nuestro bloqueo aquí. Entonces esto es completamente no bloqueante aquí. Es solo hacer una transmisión y aquí también hay otro comando. Difundir y esperar, y esto bloquearía. Entonces podemos probarlo aquí. Entonces estamos moviendo eso aquí, y luego quitamos el discurso. Si lo hacemos así, quitamos el habla y espera, verás que ahora sigue bloqueando. Entonces esa no es la forma correcta de hacerlo. Pero aquí estamos bloqueando nuestro bucle forever y aquí no podemos manejar todos los comandos de teclas. Entonces por eso no es la solución correcta aquí, así que necesitamos esta transmisión solo sin esperar. Porque no está esperando aquí a que este receptor termine. Es simplemente continuar este bucle para siempre aquí, y todavía podemos controlar a Avery Ese era nuestro nuevo bloque personalizado con parámetros, y esa es una manera muy agradable de hacer el código sea más mantenible y mejor estructurado, y tienes menos esfuerzo para hacer cambios aquí De esta manera, esta es una buena práctica en la programación para tener una funcionalidad que se utiliza en muchos lugares en una función, o en este caso, es un blog personalizado. Puedes suministrar a este bloque personalizado parámetros aquí, y de esta manera podemos hacer cada discurso sin dejar de ser capaces de controlarla. 39. 39 Cambiar la habitación: Cambiemos las habitaciones. Y para ello, necesitamos, por supuesto, un nuevo telón de fondo, así que vayamos al escenario. Y aquí tenemos los telones de fondo. Sólo tenemos uno por el momento, la habitación dos. Y ahora estamos subiendo otro. He generado una imagen de cocina o cocina con la ayuda de IA con copiloto, respectivamente D tres. Aquí está, ve a elegir un telón de fondo, y luego sube telón de fondo. Elige una imagen aquí desde tu disco duro. He hecho éste con la ayuda de la IA y podemos usarlo para este juego. Aquí está. Necesito redimensionarlo un poco. No tiene el tamaño correcto. Control A o comando A, y después hemos seleccionado la imagen, y luego podemos estirarla un poco y también moverla por aquí, donde, por ejemplo, la silla y la mesa no son visibles, ya no visibles aquí, o tal vez solo esta parte de la silla, y luego podemos estirarla un poco. Creo que eso es aceptable. Pero claro, puedes generar el tuyo propio o pintar tu propio cuadro de una cocina o de donde quieras obtenerlo. Lo he creado con la ayuda de la IA. Así puede usted. Pero también puedes, como dije, pintarlo tú mismo o descargarlo de una fuente diferente y subirlo aquí así subir telón de fondo y luego simplemente elegirlo de tu selector de archivos Este fue el buscador porque estoy en un MC aquí en Windows, tienes el explorador de windows. Para que puedas subir aquí imágenes. Puede ser un JPAC o PNG o también puede ser un SVG. Entonces ahora tenemos el telón de fondo aquí como segundo. Entonces el primero será este. Y, por supuesto, al inicio del juego, tenemos que fijarlo en el primero. Así que vamos a entrar en el código de la etapa aquí. Para que puedas cambiar de telones de fondo a código. Y aquí también podemos tener este evento cuando Go clicked, y aquí cambiamos al primer telón de fondo, cambiar telón de fondo dos Cocina ahora, recámara dos, así que eso es correcto, así que siempre volvemos a nuestra primera habitación aquí. Y claro, si hemos resuelto el rompecabezas para la primera habitación, tenemos que cambiar de fondo aquí Entonces vamos a Avery, y este es el caso donde se resuelve el rompecabezas, ya que ahora tengo la llave, puedo desbloquearla, y finalmente salir de mi habitación Y después de eso, Avery puede cambiar de habitación e ir a la cocina Y eso es muy fácil. Cambia el telón de fondo a la cocina. Y así, tenemos el cambio de habitación. Entonces probemos esto. Primero resuelve el rompecabezas. Haga clic en la clave. Utilízala. Eso es muy pronto porque no estamos en la puerta o no frente a la puerta, y ahora deberíamos usar la llave, y luego vamos a la segunda habitación, que es la cocina. Aquí podemos mover a Avery como antes, y ella puede explorar la cocina aquí Entonces eso no es problema. Pero claro, necesitamos un objeto aquí, y necesitamos otro rompecabezas aquí, por supuesto, para resolverlo. Para salir de la casa, tal vez, debería ir a tal vez la escuela y salir de la casa. Debería encontrar algo para comer, para llevar con ella a la escuela, tal vez una manzana, o tal vez quiera llevarse su mochila escolar con ella. Entonces eso es lo que tenemos que pensar aquí. Entonces primero, necesitábamos cambiar el telón de fondo, y esto se hace muy fácilmente con este bloque, cambiar telón de fondo a cocina. Entonces también podemos pasar al siguiente telón de fondo. Esto también es lo que podríamos hacer. Pero creo que aquí es más fácil hacerlo así. Entonces, para ir a un telón de fondo específico porque es posible que desee volver a la otra habitación, y luego tenemos que ir a una habitación específica. Entonces, deshagámonos de eso. Y solo cambia el telón de fondo a la cocina. Pero aquí podríamos tener que hacer otra cosa. Y también, si queremos salir de esta sala, tenemos que hacer otra cosa. Y es por ello que debemos definir aquí un nuevo bloque, que llamo ir a Habitación. Y aquí podemos, por ejemplo, tener un número o entrada de texto, que será la habitación a la que acudir. Entonces hagámoslo así y definamos ir a la habitación aquí, cambiar de telón de fondo. Deberíamos hacerlo aquí. Y aquí podemos elegir número o texto. Cambiar el telón de fondo dos. Entonces eso debería estar aquí en este caso, cocina. Entonces mejor deberíamos cambiarle el nombre a esto. Así que haz click derecho sobre definir y agrégalo. Entonces aquí llamamos a la primera sala de parámetros. Eso es mucho mejor. Entonces tenemos esta sala, que es un texto, el nombre de la habitación, y tenemos que llamarla aquí, a habitación después de hablar, y aquí la ponemos a la cocina. Entonces intentemos si esto funciona. Entonces restablecemos al principio. Tenemos que resolver el primer acertijo. Vamos a la puerta, usa la llave. Estamos aquí, y funciona. Eso es lindo, así que también podemos hacer otra cosa aquí. Cambiar telón de fondo dos, y luego lo que se suministra como el parámetro de la habitación aquí. Por ejemplo, podríamos colocar algunos objetos aquí. Vamos a crear un nuevo sprite, y esta vez será esta manzana aquí Pongamos la manzana. Lo hacemos un poco más pequeño, igual que 60%, tal vez. Ahora eso es demasiado grande, como 40, 40%. En el código, necesitamos configurarlo a oculto si ir clic. Entonces vamos a ocultarlo primero. Y entonces podemos colocar la Manzana en algún lugar. Vamos a colocarlo por aquí y hacerlo un poco más pequeño, tal vez 30%. Eso es mejor. Entonces reiniciemos el juego, y la manzana se ha ido. Muy bonito. Y ahora cuando cambiemos a la cocina, se debería mostrar la manzana. ¿Cómo hacemos esto? Estamos transmitiendo. Entonces aquí deberíamos transmitir que hemos cambiado de habitación. Vayamos a eventos y luego transmitamos aquí. Habitación cambiada. Ahora, por supuesto, necesitamos saber qué habitación es la habitación actual. Estamos estableciendo una nueva variable, y llamamos a esa habitación actual y esa es una variable para todos los sprites, por supuesto Tenemos que establecer la habitación actual aquí a este parámetro suministrado, establecer habitación actual dos habitación aquí. Ahora podemos usar esa habitación o habitación actual para mostrar la manzana. Eventos, cuando recibo cambio de habitación, entonces verificamos con un control si el si la variable de habitación actual se establece dos cocina. Habitación actual equivale a cocina. Entonces podemos mostrar la manzana. Probemos esto. Comienza el juego. Recoge la llave, ve a la puerta, y ahora tenemos la manzana aquí. Muy bonito. Hemos cambiado satisfactoriamente las habitaciones. Hemos mostrado la manzana, y ese es nuestro código para vestuarios por ahora. Esto se ampliará, claro, pero por ahora, podemos cambiar de la sala de inicio, la recámara a la cocina. 40. 40 Cambio de objetos de juego a clones: Ahora que tenemos la segunda habitación y la manzana, vamos a cambiar algunas cosas aquí. En el último video, he agregado la manzana como sprite aquí y aquí en este video He vuelto a quitar la manzana. ¿Por qué? Porque aquí queremos implementar todos los objetos del juego con clones de este sprite . ¿Cuál es la razón detrás de eso? La razón es que entonces podemos manejar todos los objetos de la misma manera, y también podemos hacer uso de listas, y cómo lo hacemos, te mostraré en este video. Primero, tenemos aquí este sprite, la clave, y vamos a añadir otro disfraz aquí. Y el segundo disfraz ya está aquí. Es la manzana. Entonces si no lo tienes, ya, ve a elegir un disfraz y luego elige la manzana aquí. Entonces tenemos dos disfraces aquí. El primero es la clave, el segundo la manzana. Y la idea es tener para cada objeto diferente, tenemos otro disfraz aquí. Bien. Entonces ese es el primer paso para que aquí tengamos dos disfraces diferentes. Y por supuesto, al inicio del juego, necesitamos establecer el disfraz adecuado. Entonces hagamos eso cuando se haga clic en esta novia, no es la función correcta aquí Pero cuando vaya a hacer clic, cuando se hace clic en la bandera, necesitamos establecer el disfraz adecuado para nuestro primer objeto Entonces cambiemos el disfraz a H, y luego podremos comenzar un juego, y volverá a ser clave, y no hay diferencia en el juego. Todavía podemos ir a la puerta y hacer uso de la llave, y aquí falta la manzana, por supuesto. Pero, ¿cómo mostramos la manzana aquí? Ahí es cuando los clones vienen bien, así que vamos a controlar y luego crear un clon de mí mismo. Este es el bloque que necesitamos, y necesitamos crear, por supuesto, algunos objetos aquí, algunos clones. La idea de los clones es que hagas una copia del sprite en este caso del mismo sprite de mí mismo, así que esa será la clave Pero también vamos a renombrar el sprite aquí también. Digamos objeto de juego para que esto sea más genérico que solo la clave. Bien, así podemos crear un clon de esta clave de este objeto de juego aquí, y vamos a hacer esto, por supuesto al inicio del juego. Así que podríamos simplemente crear, digamos dos clones aquí, y hacerlo así. Y por supuesto, también podemos hacerlo con un bucle de repetición. Así que repite diez veces aquí. Entonces tal vez sólo podamos repetir dos veces. Y entonces solo un clon de crear es suficiente porque estamos repitiendo esto dos veces, así que tenemos dos clones. ¿Cómo reconocemos a los clones aquí? Entonces cuando empiezo, no veo ninguna diferencia. Lo primero que tenemos que hacer es ocultar el sprite original. Entonces vamos a mirar aquí y luego escondernos. Entonces estamos ocultando la llave, en este caso, el primer disfraz. Entonces la llave se ha ido. Estamos creando dos clones. El primer clon será la clave. El segundo clon será la manzana, claro. Lo que necesitamos ahora es, por supuesto, el suceso cuando empiezo como clon. Entonces este ¿Qué hago cuando empiezo como clon? Tenemos que hacer lo mismo que cuando se hace clic en la bandera. Así que simplemente movemos todo este bloque aquí a cuando empiece como clon, y podamos deshacernos de este de aquí. Entonces ahora se crean dos clones, y para cada clon, cuando se inicia el clon, esto se hace aquí. Veamos qué le hace a nuestro juego. Está volviendo a mostrar la llave . Eso es lindo. Intentemos si podemos recoger la llave. Eso también está funcionando. Pero vemos que aquí en realidad la clave sigue ahí. Este es el clon de la clave y no la primera clave en sí. Por supuesto, porque el primer sprite, el sprite original aquí está oculto y no se puede hacer clic en los sprites ocultos, así que esto es por supuesto un clon Pero la segunda clave aquí es el segundo clon, claro, pero la segunda, el segundo objeto tiene que ser la apo. ¿Cómo diferenciamos aquí entre el primer clon y el segundo clon? Esto es muy importante. Qué usamos para esto, una variable, por supuesto, hagamos una variable aquí, y no tiene que ser para todos los sprites, sino solo para estos sprites Porque es solo para este sprite, también es para los clones Entonces es accesible también para los clones, y llamémoslo simplemente índice. Y estamos incrementando el índice aquí en nuestro bucle de repetición. Variables cambian. Entonces cambiemos el índice por uno. Por supuesto, también establecemos aquí el valor inicial en cero. Entonces el primer índice será uno, y luego se crea el clon, el primer clon, y luego nuevamente, índice se cambia por uno. Entonces serán dos, y luego se crea el segundo clon. Y para comprobar qué valor está disponible aquí en nuestro clon, decimos la variable aquí. Entonces digamos hola y luego índice variable, y veremos qué índice se muestra entonces. Entonces comencemos el juego. Entonces claro, no se muestra nada porque hacemos el show después de la S, así que cambiemos eso. Primero tenemos que mostrarlo, y luego podemos decir, de lo contrario, la burbuja, la burbuja del habla no será visible. Entonces hagámoslo. Y por qué no funciona porque estamos pensando aquí. Y si no piensas nada, entonces tampoco la burbuja del habla ya no será visible. Así que vamos primero, deshacernos de esto aquí, y luego veamos. Entonces aquí tenemos diez, ¿por qué son diez? Porque aquí hemos establecido la variable equivocada, así que no es habitación actual, sino que tiene que ser índice, claro. Así que vamos a intentarlo de nuevo. Y ahora tenemos dos, claro. No vemos al otro. primer clon tiene que decir uno, segundo clon tiene que decir dos, pero claro, son la misma ubicación, así que por eso eso no funciona. Tenemos que ponerlos en diferentes ubicaciones para ver si esto realmente funciona. Ir a x e y y tiene que cambiar dependiendo del índice. El primer clon debe estar en una ubicación específica, ubicación y específica, y el segundo debe estar en una ubicación diferente. Hagamos esto con los operadores aquí y multiplicamos con el índice. Entonces, vamos a obtener el índice aquí. Eso no es multiplicar. Vamos a multiplicar aquí índice, y entonces sólo podemos decir 40, y luego vamos a y 40 veces índice. Entonces primero, el sprite debe estar a los 40, segundo debe estar a los 80 Entonces veamos cómo se ve esto. Ahora podemos ver que tienen ambos índices diferentes. El primero tiene uno, claro, el segundo tiene dos. Y el segundo debería ser una manzana y no una llave. Por lo que necesitamos cambiar de vestuario dependiendo del índice. Entonces el primer objeto, por supuesto, tiene que ser el disfraz clave. El segundo tiene que ser el disfraz de manzana. ¿Cómo lo hacemos? Eso es bastante fácil. Solo vamos a looks, y luego el siguiente disfraz aquí. Entonces en este bucle de repetición, simplemente pasaremos al siguiente disfraz aquí, y veamos cómo funciona esto. No funciona porque aquí también cambiamos de vestuario. Así que vamos a quitar eso. Aquí, cambiamos al siguiente disfraz y ahora funciona. Entonces el índice uno es el disfraz clave. Yo los dos siguientes es el disfraz de manzana. De esta manera, podemos decir qué clon es cuál. El primero es la clave, y el segundo es la manzana, y el primero en la primera habitación, el segundo debe estar en el segundo cuarto, claro, y esto es lo que hacemos en el siguiente video. 41. 41 Introducción de listas: Entonces como ahora tenemos nuestros dos disfraces aquí al inicio, podemos hacer un pequeño ajuste aquí para estar seguros que el primero siempre será el disfraz clave. Tenemos que cambiar de vestuario al inicio. Así que cambia el disfraz a no a manzana, sino a llave, y tal vez deberíamos hacer eso después de haber ocultado la llave o el sprite aquí, el sprite original Entonces probemos esto, y esto debería estar bien. Lo que tenemos que hacer ahora es asegurarnos de que los dos objetos diferentes estén ahora colocados en la ubicación correcta en la habitación correcta. Entonces la primera clave tiene que volver a pasar por aquí, y la segunda tiene que ir en el segundo telón de fondo. L et's cambiar a eso en algún lugar por aquí. Entonces, primero, el primer clon debería ser visible en la primera habitación. El segundo debería ser visible en la segunda habitación de esta cocina aquí. Entonces eso es lo que necesitamos lograr primero. ¿Y cómo lo hacemos? Estamos introduciendo listas. Entonces, ¿ qué son las listas de listas son como variables? Entonces por eso podemos encontrar listas aquí sobre las variables. Aquí tenemos hacer una variable y, aquí, tenemos hacer una lista. Entonces hagamos una lista. Y tenemos algo parecido para hacer una variable. Podemos nombrar a esta lista objeto habitaciones, tal vez. Entonces ahí es donde almacenamos nuestros cuartos de inicio para los objetos. ¿Y cómo hacemos esto? Voy a mostrar más tarde. Bien, para todos los sprites, no, no necesitamos eso para todos los Sprites Aquí sólo lo necesitamos para el sprite. Entonces Sala de objetos significa para cada objeto, necesitamos almacenar donde habitación va a comenzar el objeto. Bien, aquí tenemos la lista, la visualización de la lista. Puedes alternar eso con esta casilla de verificación aquí. Entonces, si no quieres que la lista aparezca en el juego, solo desmarca esta casilla de verificación aquí ¿Qué tenemos aquí? agregar manualmente artículos aquí a esta lista. Entonces con este plus aquí. Simplemente puedes agregar tantos artículos como quieras. Y dentro de cada una de estas líneas aquí, puedes simplemente escribir algo así como para una variable, por ejemplo. Entonces igual que este texto aquí o como un número. Bien, entonces tenemos una lista de variables, por así decirlo, y esta lista está aquí por aquí, puedes usarla con estas funciones aquí, con estos bloques. Entonces, ¿qué puedes hacer con una lista? ¿Puedes agregar otra entrada a la lista? Puede eliminar una entrada en la lista. Puedes borrar la lista con eliminar todo, y también puedes insertar algo en una ubicación específica dentro de la lista, en un índice específico. Entonces tal vez puedas insertarlo aquí al final o en algún lugar en el medio, y esto es lo que hace este bloque aquí. Además, lo que puedes hacer es reemplazar un ítem una entrada aquí en la lista en una ubicación específica en un índice. Además, puedes obtener un artículo específico de la lista en una ubicación específica. Aquí está el índice, y con esto aquí, obtiene el ítem en la posición uno aquí en este ejemplo, o digamos dos, y podemos ingresar algo aquí y vamos a verificar el valor. Aquí podemos elegir diferentes listas. Por el momento, solo tenemos una lista, así que ingresa esta aquí sala de objetos. Esta lista debe contener para cada objeto en qué habitación se debe colocar este objeto al inicio. Si da clic en esto, puede ver qué valores dentro de la lista en esta ubicación en la ubicación dos en el Índice dos. Da click en este bloque y podrás ver que en la posición dos, aquí está esta cadena. También puedes simplemente tal vez hacerlo así. Esto es primero, esto es segundo y este tercero. Y aquí puedes ver, si haces clic en eso, tienes segundo. Si eliges uno para el índice, obtienes primero, y por supuesto, si eliges tres para el índice, obtienes el tercero, y así sucesivamente. Entonces, qué podemos hacer con eso, podemos almacenar en esta lista en qué habitación debe comenzar cada uno de los objetos y debe colocarse en. Hagamos esto, y para ello, necesitamos recibir el mensaje, habitación cambiada. Así que vayamos a eventos cuando reciba cambio de habitación. Entonces tenemos que establecer la visibilidad de nuestro sprite aquí para que sea más específico del clon Entonces es por eso que tenemos que considerar, claro, esta lista aquí. Entonces tenemos que cambiar primero las entradas en la lista. Entonces, la primera habitación de la llave será recámara, y una segunda es cocina, y un tercer objeto que no tenemos en este momento. Para que podamos borrar estas entradas aquí. Bien, tenemos recámara para la llave y cocina para la manzana, y ¿cómo obtenemos o cómo verificamos la habitación correcta? Esto es, por supuesto, un si aquí. Entonces si más, Y comprobamos la igualdad, entonces esto aquí. Y el primer operante será si elemento de objeto sala, y aquí por supuesto tenemos que tomar el índice Por lo que el índice será diferente para la clave y la manzana. Para la llave, será una. Entonces, el artículo uno del objeto habitación será recámara, y para el Apple, será el elemento dos de la sala de objetos, que será cocina. Y aquí tenemos, claro, para verificar la habitación actual. Y si cambiamos las habitaciones, entonces la habitación actual cambiará a cocina. Entonces esto es lo que tenemos que comprobar aquí. Hagamos un poco de espacio aquí para esto. Oh, no tengo el si entonces mas, sino el si entonces solo, así que tomemos esto aquí. Cambiemos eso y esto ya no necesitamos. Entonces, si el ítem en el índice de Object room de esta lista aquí es igual a la habitación actual. Entonces para la segunda habitación, esta será cocina. Y para la primera habitación, creo que no hemos establecido habitación actual para la primera habitación. Así que vamos a revisar a Avery. Y al inicio de Avery, cuando se hace clic en ir, ahora, no establecemos habitación actual aquí Entonces lo que podemos hacer es ir a la habitación actual. Entonces vamos a mis cuadras, vamos a Habitación, y al inicio, vamos a la recámara. Entonces aquí es donde empezamos, así que deberíamos ir ahí, ir a habitación recámara, Entonces habitación actual, será recámara al inicio. Y así, tenemos para la clave, tenemos la igualdad aquí. Entonces al inicio, será recámara, y luego la segunda habitación, será cocina. Y si esto es igual, entonces tenemos que mostrarnos aquí, mostrar el clon. Si no, ocultamos el clon. Bien, comencemos un juego y lo probemos. Y aquí tenemos todavía dos objetos. ¿Por qué es eso? Vamos a hacer clic en este sprite aquí objeto de juego, y vemos que este es el original, y también es visible Y aquí esta es la clave, el primer clon. Este es el segundo clon. Entonces no trabajaba. Cuando recibo un cambio de habitación, entonces esta comprobación está hecha. El índice de ítem de la sala de objetos es igual a la habitación actual, y mostramos, de lo contrario, nos escondemos. ¿Por qué no funciona? Porque aquí mostramos cada vez que creamos el clon, vamos a deshacernos del espectáculo aquí. L et's inténtalo de nuevo. Ahora tenemos esta clave aquí, y este es el sprite original Y aquí tenemos la manzana, que también está mal. Así que vamos a comprobar de nuevo si item index object room, y aquí también podemos deshacernos de este índice de 40 veces. Ya no necesitamos eso. Ambos objetos están en el mismo lugar aquí. Pero eso está bien porque la primera debería estar en la primera habitación, la segunda en la segunda habitación, así que está bien. Entonces abordemos el primer problema de que el sprite original sigue siendo visible aquí, lo cual no es bueno No debería ser visible porque aquí lo escondemos. Pero el problema es que también recibe este cambio de habitación, y luego se mostrará. Esto es lo que tenemos que evitar aquí, vamos a las variables y hagamos una nueva variable, y yo la llamo vamos a llamarlo es original, y es sólo para este sprite, y esto es para que el sprite original sea capaz de identificarse Vamos a configurarlo aquí al inicio. I original está configurado a uno aquí. Y aquí en el cuando empiezo como clon, lo estamos poniendo a cero. Entonces cada clon tendrá el valor cero, yo es original y el original tendrá el valor uno. Y ahora podemos hacer un si aquí. Entonces si, y luego ahora otra vez, cheque de calidad, y tomamos esto es original. Y aquí solo verificamos los clones, así que es por eso que ponemos esto a cero. Entonces si es original es cero, que siempre es el caso, si es un clon, entonces podemos hacer esto. De lo contrario, no lo haremos. Comprobemos de nuevo, y la llave ya no está. Entonces ya está bien, pero por el momento, aquí no se muestra nada. Empiezo como clon. Entonces dupliquemos esto por el momento. Y ponlo aquí. Entonces si esta comprobación para la habitación es positiva es verdadera, entonces mostramos el clon, lo contrario, ocultamos el clon. Intentemos esto, y funciona. Entonces aquí tenemos el clon, el clon clave, el original está oculto, porque aquí lo escondemos. No se mostrará aquí en este caso porque tenemos este cheque para original. Y también, cuando empecé un clon, también estamos haciendo esto aquí. Entonces aquí tenemos una duplicación, claro, es más agradable deshacernos de esta duplicación creando un nuevo bloque Aquí, hagámoslo. nombre del bloque será la visibilidad establecida, y esto establecerá la visibilidad, por supuesto, dependiendo de esta condición aquí. Así que sólo tenemos que mover esto aquí a este conjunto de visibilidad bloque personalizado aquí. Y entonces aquí llamamos set visibility. En este caso, si no es el original, entonces establecemos la visibilidad aquí en cambio de habitación y también aquí al inicio, haciendo lo mismo llamando a este bloque. Así que aquí está la visibilidad establecida, y ahora lo intentamos de nuevo. Y está funcionando. Vamos a deshacernos primero de esta lista aquí. Aquí es un poco demasiado grande, así que vamos a esconder eso. También escondamos esto aquí. Y primero recogemos la llave. A ver si esto funciona, funciona. Vamos a la puerta. Usa la llave, y aquí también, tenemos la manzana, así que eso funciona como se esperaba ahora. Así que ahora podemos cambiar la visibilidad dependiendo de esta lista aquí. Así que volvamos a mostrar la lista de sala de objetos, y hacerla un poco más pequeña aquí. Así que tenemos recámara para el primer clon y cocina para el segundo clon. Y esta comprobación dinámica, si cuando la habitación cambió, entonces estamos estableciendo la visibilidad de los objetos del juego aquí usando esta lista aquí y esto funciona como se esperaba. 42. 42 Colocación de los objetos: Ahora que tenemos la visibilidad de los objetos correcta, por lo que la manzana será visible en la segunda habitación, y la clave es visible en la primera habitación. L aquí, aquí está la clave. Puedo recogerlo y luego usarlo en la puerta. Aquí tenemos la manzana. Eso está todo bien. Pero como puedes ver, la manzana no está en la ubicación correcta aquí, x e y de la manzana no es correcta. ¿ Cómo corregimos esto? ¿Cómo solucionamos esto con más listas? Escojamos nuestro sprite de objeto de juego aquí, y hacemos más listas locales Local significa solo para el sprite, así que elige esto, y el primero será objeto x. Entonces un mapeo desde el objeto desde el índice hasta la coordenada x, y luego por supuesto, una segunda lista para la coordenada y Entonces Object y para este br y ahora tenemos dos listas aquí. Podemos hacerlos un poco más pequeños. En cada lista, necesitamos, por supuesto, dos entradas porque tenemos dos objetos. La primera entrada será aquí la coordenada x de nuestra clave. Comprobemos dónde está esto. Esta debería ser esta coordenada aquí, 102 e y es -28 Aquí tenemos que entrar -28. Para la manzana, tenemos que revisar. Aquí podemos ir a la segunda cocina de telón de fondo. Y aquí podemos mover nuestra llave. A lo mejor nosotros primero nos cambiamos a manzana aquí para que tengamos la manzana. I. Y colóquelo en algún lugar de aquí. Entonces aquí podemos ver y es 11 y X es 127, eso es lo que entramos aquí, 127, y aquí la y para la manzana es 11. Entonces ahora que tenemos nuestras listas aquí, podemos volver al código. Intentamos empezar de nuevo y ver si es el estado inicial correcto o si has olvidado algo, no, todo está bien. Aquí tenemos la coordenada, y tenemos que usar las coordenadas aquí en nuestro definir conjunto de visibilidad aquí. Si se debe mostrar el objeto, por ejemplo, debe mostrar una clave o la manzana, necesitamos ir a X e Y. Motion, ir a x y. Necesitamos obtener estas coordenadas aquí x e y de las listas que acabamos de hacer. Ir a variables, y luego aquí tenemos ítem de sala de objetos que será x aquí, Object x, y no es el ítem uno, sino es índice de ítem. El índice de elemento del objeto x es la coordenada x. La coordenada y es de co el índice de ítem, de objeto a y. Nuevamente, estamos tomando las coordenadas aquí de nuestras dos listas, y por supuesto, el número de la entrada siempre es el índice igual que para la habitación, y tenemos las dos listas para x e y. Comprobemos si esto funciona. Empezando en el juego. Y luego recogiendo la llave, yendo a la puerta. Y está funcionando bien. El Apple está en la ubicación correcta aquí, todo funciona. Entonces ahora que tenemos eso, también podemos ocultar estas dos listas aquí y también esta lista aquí. Si necesitamos las listas, siempre podemos volver a mostrarlas, y también podemos esconderlas. Entonces si quieres mostrar una lista, solo haz el check aquí en la lista, y luego si quieres agregar otro objeto aquí, tal vez, entonces tienes que hacer una nueva entrada en todas estas listas aquí. Por el momento, queremos poder recoger el Apple, supongo. Entonces ese es nuestro nuevo reto. 43. 43 Lista de inventario: Para recoger el Apple, necesitamos hacer otra lista, y esta lista estará disponible para todos los Sprites Hagamos una lista aquí para Sprites, y esta será lista de objetos Y para A Sprites porque entonces el objeto Sprite puede agregar algo a la lista, y también el Sprite de inventario puede acceder a Ahora tenemos lista de objetos y ya está aquí. ¿Qué contendrá esta lista? Contendrá todos los índices de los objetos que se encuentran en el inventario. Para recoger un ítem, al principio, es la clave, necesitamos agregar una entrada a la lista de objetos aquí. Cambiemos el nombre de la lista aquí a lista de inventario. Eso es claro que esta lista es para los objetos del inventario. Bien. El primer artículo que hay que recoger es la clave. Podemos ir al código que está recogiendo la llave, y esto es esto de aquí. Si la clave recogida equivale a una, entonces ésta ya está recogida, así que tenemos que ir aquí. Si la distancia a Avery está por debajo de 50, entonces configuramos clave recogida en uno Podemos dejar el código como es, pero necesitamos ingresar adicionalmente una nueva entrada a esta lista o agregar una nueva entrada a esta lista aquí. Este bloque aquí en T dos lista de inventario es exactamente para este propósito. Agregar cosa a la lista de inventario, agregará una nueva entrada. Ya puedes probar eso. Si haces clic aquí, ves que esa cosa está realmente agregada a la lista de inventario, pero no queremos hacerlo. Queremos agregar el índice de este objeto aquí. Agregar Índice a la lista de inventario, y podemos probarlo aquí. Y vemos que esa cosa también está aquí todavía en la lista. Entonces lo que tenemos que hacer es, por supuesto, tenemos que eliminar o borrar la lista al principio en el inicio. Y esto lo puedes hacer con eliminar toda la lista de inventario. Empecemos de nuevo. Y ya ves que la lista está vacía. Y si recogemos la clave, ves que el índice aquí está en nuestra lista de riesgo. Ahora podemos ir a la segunda habitación, y aquí también podemos recoger la manzana. Pero ya ves que no funciona. ¿Y por qué es eso? Porque la distancia aquí es a un poco aquí. Entonces tenemos que aumentar eso. Digamos 80, e intentemos eso. Ahora podemos recogerlo. Entonces aquí, la manzana también está en la lista, pero ves que la clave no está en la lista. Y es por ello que necesitamos modificar el código aquí ale bit. Entonces Aquí tenemos la visibilidad del conjunto definido, y por supuesto, en la segunda sala, la clave no es visible, pero la clave debe seguir siendo visible si está en el inventario. Eso es lo que tenemos que verificar. Eso es fácil. Vamos al control, y necesitamos ocultarlo sólo si no está en el inventario. Si entonces y ahora necesitamos verificar si la lista de inventario contiene cosa, en este caso, es por supuesto, de nuevo, el índice. Si la lista de inventario contiene el índice, luego ocultar, eso no es correcto. Tenemos que probar para lo contrario. Si no está en la lista de inventario, entonces podemos ocultarlo. Lo que necesitamos es un no, y este es este de aquí. Arrastre esto aquí, no, y esto tiene que ir aquí. Si no es así, si no es el caso de que la lista de inventario contenga índice, luego oculte. Vamos a probarlo. Vuelve a comenzar el juego. Recoge la llave. Y ve a la puerta, usa la llave, y ahora todavía tenemos la llave aquí visible en el inventario y también la Apple es visible aquí. Pero el Apple está en la misma ubicación que la llave y eso es un problema, y esto lo arreglamos en el siguiente video. 44. 44 Colocación de objetos en el inventario: Tenemos que colocar nuestros objetos en el inventario aquí abajo en las posiciones correctas. Por el momento están en la misma ubicación aquí, y es por eso que no podemos ver la llave aquí o solo partes de la llave. Entonces necesitan estar en línea aquí, y eso lo hacemos en el inventario. Así que vamos ahí. Y lo que tenemos que hacer aquí es cada vez que se recoge algo, esto necesita ser refrescado, así que la colocación de la colocación de los objetos necesita ser refrescada aquí, y lo hacemos con un evento Siempre que reciba un nuevo evento, y esto se refrescará, para inventario, ¿qué estamos haciendo entonces? Repetimos y repetimos está bajo control. Así que repita No diez veces, pero estamos revisando esta lista de inventario de lista, así que necesitamos saber la longitud de la lista. Para ello, tenemos un bloque aquí, longitud de lista de inventario aquí. Eso ya es correcto. Y también necesitamos contar las iteraciones aquí dentro. Entonces necesitamos una nueva variable, pero esta variable puede ser local, así que hacemos una variable solo para el spot, y la llamamos en índice de inventario. Y estamos configurando este 120 y al inicio del bucle, lo estamos cambiando por uno. Entonces en inext ahora podemos contar las iteraciones aquí de este bucle ¿Qué más tenemos que hacer aquí dentro? Necesitamos enviar un mensaje, una emisión a los objetos que los objetos puedan colocarse aquí en parte superior del sprite de inventario aquí porque solo los objetos en sí pueden hacer eso No se puede colocar un objeto desde fuera del sprite. Por lo que necesitan recibir un mensaje y luego colocarlos aquí. Bien, así que vamos a crear un nuevo mensaje, transmitir, mostrar acciones, nuevo mensaje, y lo llamamos ir a x porque solo la x es importante aquí. La y es la misma para sprite aquí para cada clon. Entonces solo la x debe ser diferente, y podemos hacer eso después de que hayamos cambiado el índice aquí. Y luego en la clave, podemos recibir esto. Así que cada vez que recibo ir a x. Sí, tenemos que colocarnos aquí a esta posición. ¿Y cuál es esta posición? Con este mensaje, no se puede suministrar, proporcionar ningún parámetro. Entonces lo que debemos hacer aquí es crear otra variable para todos los sprites y llamar tal vez x actual para inventario, x actual para el inventario Aquí, por supuesto, antes de enviar un mensaje, necesitamos aumentarlo. También al inicio antes del bucle, tenemos que configurarlo, claro. Primero, lo pusimos dos. Podemos comenzar en cero y luego ver qué necesitamos cambiar aquí, o puede que estemos empezando a tal vez -80, algo así A partir de -80 debería estar en algún lugar por aquí, y luego aumentaremos con cada iteración la coordenada x Inventario actual de x, y luego digamos 40 por 40, usa esta x actual en el objeto de juego. Así que aquí. Y claro, cuando recogemos algo, entonces necesitamos mandar esta actualización Si. Entonces aquí solo insertamos broadcast. Refrescar Ip. Primero veamos si esto es correcto. Empecemos de nuevo el juego. Recoge la llave y la llave está por aquí. Abramos la puerta, usemos la llave que funcione, y luego recogemos la manzana. Ahora no estamos lo suficientemente cerca. Ahora podemos recoger la manzana, pero no está funcionando. corriente x no se incrementa correctamente, supongo, porque la corriente x es cero. Aún así, vamos a verificar aquí, cambiar actual x en cero está bien, creo, porque el valor actual necesita ser cero porque tenemos dos ítems y -80 más 40 más 40 es cero, entonces el cero está bien Pero el problema es que ambos objetos aquí están recibiendo esto y ambos se están fijando a esta x aquí al final. Entonces ese es el problema aquí, así que no podemos hacerlo cada vez. ¿Qué necesitamos para que esto se solucione? Necesitamos otra variable. Así que haz otra variable para todos los sprites, y esta vez, es la corriente en objeto, es el índice de la corriente en objeto, objeto de inventario, y necesitamos establecerla aquí como una variable global Así que establece objeto actual inf en el índice Entonces, ¿cómo obtenemos el índice? Lo obtenemos de la lista de inventario, claro, pero no en el ítem uno de la lista de inventario, sino en índice. Entonces estamos contando este índice inf y estamos configurando esta corriente en objeto al valor en esta ubicación aquí, y este es el índice del objeto de juego Y aquí tenemos que comprobar si sólo tenemos que ir ahí o no. Entonces necesitamos el control si y aquí verificamos la igualdad. Si actual en objeto es índice, entonces vamos y de lo contrario, no lo hacemos. Probemos esto. Así que eso se ve mejor. Aquí tenemos la llave aquí, la manzana. No está en la posición correcta, claro. Entonces supongo que -80 no era correcto. Creo que tenemos que desplazarlo como a -120 tal vez. Sí. Eso se ve mejor, pero la y no es correcta. Entonces tenemos que verificar la y correcta aquí. Ole mordió a la izquierda estaría bien. Entonces esto no es necesario. Ir a aquí, pero la y es correcta. Podemos usar este -160 aquí y ponerlo aquí. Y aquí necesitamos corregir esto tal vez por diez. Comprobemos esto. Entonces recogiendo la llave, haciendo clic en la llave. La primera vez, haciendo clic en la llave, no conseguimos un cambio. Y la segunda vez, no es correcta. Entonces hay algo mal aquí. Comprobemos nuestras variables aquí, nuestra lista. La lista de inventario incluye dos artículos. Eso es todo correcto. Así que volvamos a pasar por este bucle. Esto parece ser un problema. Estamos configurando esta x actual en -130, está bien, así que lo estamos repitiendo siempre y cuando vaya la lista y la primera vez este es solo un elemento de la lista debería ser Entonces estamos configurando el objeto actual dos elemento en el índice de la lista de inventario. I index está al inicio cero, y esto no es correcto porque ítem cero de la lista de inventario no existe, así que esto estaría supongo vacío aquí La corriente en el objeto está vacía. Esto no funciona, y luego cambiamos en el siguiente por uno, y aquí está el problema. Aquí está mal el orden, así que primero tenemos que cambiarlo. Así, y luego podemos establecer corriente en objeto, y luego cambiamos la x por 40 aquí, y luego hacemos la emisión. Probemos esto. Ahora funciona, y la posición también está bastante bien. Yo diría que esta es casi la misma posición que antes antes de introducir este bucle aquí. Veamos cómo funciona esto con la Apple. Usa, y ahora podemos recoger la manzana y aquí no funciona. Es la misma posición. Veamos cuál podría ser el problema aquí. Volvemos a pasar por el bucle. Estamos configurando x actual a esta posición inicial -130. Entonces repetimos esto y cambiamos el índice por uno, eso está bien ahora, y actual en objeto debería estar bien ahora, y luego cambiamos x actual en 40. Y luego hacemos la transmisión. Entonces la segunda vez que recogemos el Apple, este evento volverá a ser enviado y recibido aquí Luego configuramos de nuevo actual x inf dos -130 Y aquí está el problema. No vamos a poner en índice a cero otra vez. Entonces esto de aquí no es correcto. Vamos a arrastrar eso aquí y ponerlo por aquí. Entonces cada vez que vemos el mensaje, tenemos que restablecer este índice inf a cero, y luego aquí se cambiará a uno, y luego debería funcionar Entonces intentemos esto de nuevo. Ahora, Apple, y esta vez funcionó muy bien. Primero está la clave y segundo lugar Apple y en una distancia muy agradable. Eso está bien. Y aquí también podemos recoger más artículos. Si tuviéramos un tercer artículo aquí, este se mostrará aquí. Esto es muy, y podemos agregar objetos arbitrarios al juego que pueden ser recogidos y mostrados en esta lista de inventario. 45. 45 Corrección de descripciones de objetos: Ahora que tenemos un mecanismo universal para recoger objetos, también necesitamos un mecanismo universal para las descripciones de los objetos. Cuando iniciamos el juego, tenemos esta descripción de la clave. Es una llave, y si la recojo, entonces la puedo usar aquí en la puerta así. Pero para el Apple, aquí no tenemos tal descripción. Si flotamos, ponemos el puntero del mouse aquí sobre la manzana, no vemos ninguna descripción Para la descripción, nosotros, por supuesto, o para ambas descripciones, necesitamos ahora otra lista. Vamos a las variables y hagamos una lista. Aquí hacemos una lista, para todos los sprites, no, para este sprit solamente Porque las descripciones solo son necesarias en los propios objetos. Entonces lo llamamos solo descripciones porque esta es una descripción localista, no necesitamos poner nada más aquí Entonces la descripción es suficiente, descripción para el sprite, por supuesto En fin, esto es sólo para el sprite. Y si miramos aquí, tenemos juego objeto colon descripción, Así que eso debería estar bien. Añadimos dos entradas aquí. El primero es que es una llave, y el segundo, es una manzana. Por supuesto, puedes poner algo más aquí, un texto más descriptivo, pero quiero que sea breve aquí. Primero, es una clave para la clave, claro, y la segunda es para la manzana, y diferenciamos entre estas dos por el índice aquí. Uno es un Índice uno es siempre la clave, y el Índice dos es siempre la manzana. Bien, entonces no necesitamos exhibir esto. Podemos ocultar esto y también lista de inventario, no necesitamos mostrar esto y también los otros y también los otros que podemos ocultar para que podamos ver la pantalla completa aquí. Lo que hacemos con la lista debe ser claro. En lugar de esto aquí, es una clave, simplemente sacamos la descripción de la lista de la nueva descripción de la lista. Entonces aquí tenemos este ítem uno de descripción, y en nuestro caso, no es el ítem uno, sino el índice de descripción del ítem. Y aquí solo reemplazamos este texto fijo, es una clave con este. Vamos a comprobar si esto funciona en el juego. Es una llave, sigue bien. Pero para estar seguros tenemos que comprobar si está funcionando también para la manzana. Y no lo es. ¿Por qué no? Porque aquí tenemos esta condición de que la distancia a Avery debe ser de al menos 50 o debe ser inferior a 50 Entonces podemos aumentar eso aquí y ver si esto funciona y ahora funciona. 50 está demasiado cerca A se centra quizá por aquí en alguna parte y 50 es más pequeño que eso, es difícil llegar a esta distancia. Lo colocamos en 80 lo mismo que aquí y de esta manera, podemos exhibir aquí es una manzana, pero también podemos ver que en cuanto la metamos en el inventario, ya no podemos ver las descripciones. Esto es lo que necesitamos arreglar también que después de ponerlo en el inventario, aún puedas ver la descripción que va a ser agradable y esto es lo que hacemos en el siguiente video. 46. 46 Mostrar la descripción en el inventario: Todavía tenemos el problema de que la descripción del objeto no es visible si pasamos el cursor sobre el objeto en el inventario Cuando recojo la llave aquí, coloco el cursor sobre la llave en el inventario No se muestra nada, y esto debería ser posible. Arreglemos esto. Es bastante fácil. Solo tenemos que reorganizar esta parte del for evepe aquí en el objeto clave o en el objeto Para que eso funcione, hay que considerar también si la llave o el objeto, en este caso, fue recogido o no. Tenemos que pensar en nada sólo en caso de que estemos lejos del objeto, y además el objeto no esté en el inventario. ¿Cómo lo hacemos? Vamos a separar esto de aquí. Y vamos a insertar otro de esto si entonces, así. Tenemos dos si entonces bloques anidados aquí. El primero, el exterior sólo contendrá un puntero táctil del ratón. Por lo que todo dentro solo se ejecutará si el puntero del mouse se está tocando, y esto es, por supuesto, también el requisito previo para la visualización de la descripción aquí. Si el puntero del ratón no está tocando, entonces no pensamos en nada. La segunda condición debe ser un poco diferente a la anterior, aquí teníamos este final, y ahora necesitamos otra operación lógica. Este es el bloque o aquí. Una de estas dos condiciones necesita ser satisfecha. Una es, por supuesto, la distancia a Avery, necesita estar por debajo de los 80 O el objeto debería estar en el inventario. Si el objeto está en el inventario, entonces se recoge la clave, que no es el mejor nombre porque no es sólo la clave, debería ser algo más general porque también la manzana podría estar en el inventario, pero podemos encargarnos de eso más adelante. Primero, tenemos que verificar clave recogida es igual a uno, y es por eso que podemos duplicar esto y poner esto aquí. Si solo consideramos esta condición aquí, o bien es clave recogida igual a uno, por lo que el objeto está en el inventario o la distancia a Avery está por debajo de 80 Esto lo podemos verificar después de que estemos seguros de que el puntero del mouse está tocando el objeto. Si el puntero del ratón está tocando el objeto, y esta condición aquí también es cierta, entonces podemos pensar que la descripción, y esto es o la clave recogida es uno o la distancia a Avery está por debajo de 80 De esta manera debería funcionar. Vamos a comprobar esto. Aquí está funcionando y ahora lo tenemos en el inventario. Vamos a flotar aquí. Es una llave. También está trabajando aquí en el inventario. Entonces vamos a comprobar si también está trabajando con la Apple. No debería haber diferencia. Es una manzana. Eso está bien. Y si flotamos aquí en el inventario, también es una manzana. Muy bonito. Y esto es lo que queríamos lograr para que en todas partes obtengamos esta descripción, excepto si no se recoge el objeto, y Avery está demasiado lejos de él De esta manera no es tan fácil, y Avery tiene que moverse para examinar el entorno aquí para que el jugador realmente camine por ahí para ver todos los objetos disponibles aquí en esta pantalla 47. 47 Corrección de la lógica del juego: S. Ahora tenemos que ajustar nuestra lógica de juego a la lista de inventario. Por el momento, el problema es que podemos resolver el primero o el jugador puede resolver el primer problema haciendo clic en usar aquí cuando se hace clic en el sprite, se hace clic en el botón de uso, luego emitimos Ue click, luego emitimos Ue click, y esto se recibe en el sprite de Avery en el sprite de Avery Entonces se comprueba para tocar puerta, y aquí se decide si el jugador puede ir a la habitación contigua, cocina en este caso, o responder con esta frase aquí. No puedo usar esta clave aquí. Esto es muy específico para la clave y el primer rompecabezas, y tenemos que ajustarlo a la lista de inventario porque no solo tenemos la clave, sino que también tenemos la manzana luego en la segunda habitación, y la Apple por supuesto es un poco diferente. Podemos usar la manzana, pero tenemos que definir lo que eso significa usar la Apple, y no podemos usar la clave para resolver la segunda habitación aquí. De esta manera, tenemos que ajustar la lógica en Avery para que sepamos qué ítem se hizo clic aquí y qué ítem se debe usar, por ejemplo Pero primero, necesitamos corregir una flecha aquí, y esto se puede encontrar aquí en objeto de juego. Cuando este sprite hizo clic. Si está en el inventario, si la clave recogida equivale a uno. Lo primero que tenemos que cambiar tal vez es que esta clave recogida no es el nombre correcto para esta variable porque no es solo la clave, sino que también puede ser la Apple, por supuesto, u otro objeto que agreguemos más adelante. Esta variable necesita cambiar. También este es otro problema. Esta es una variable global aquí. Pasamos a variables y comprobamos esto aquí, podemos ver que esta no es una variable local. Es una variable global, y así no podemos usarla así. Debido a que recogido tiene que ser una variable local para cada objeto de juego, tiene que ser un valor separado. La forma en que se usa aquí, esto no es cierto. En realidad, tenemos que cambiar esto aquí un poco también porque esto es un si entonces y también esto es un si entonces. Eso significa que si la clave está en el inventario, transmitimos acciones de visualización, está bien. Pero si también Avery tiene una distancia que es menor a 82 la clave, por ejemplo, en el inventario, entonces esto también se ejecutará, y esto es incorrecto Te muestro a lo que me refiero. Empezamos el juego, y ajustamos esto a, digamos 120, así la distancia puede ser mayor aquí, y yo estoy recogiendo la llave primero Ahora bien, si voy con Avery a la clave justo encima de la clave aquí y estoy dando click en la clave, entonces vemos que hay otra entrada en la lista de inventario agregada Entonces este código aquí se ejecuta, y esto es incorrecto porque no podemos ejecutar este código si la clave o el objeto aquí ya está en el inventario. Entonces eso significa que tenemos que cambiar eso aquí. A y si entonces else. Vamos a arrastrar eso aquí. Si ke recogido es igual a uno, luego transmitir acciones de visualización, que podemos dejar como es, pero necesitamos reemplazar el control aquí a un if then else. Podemos simplemente arrastrar eso de aquí a aquí. Éste viene al entonces caso y esto lo podemos poner aquí. Podemos deshacernos de Pero ahora hemos perdido este suceso, pero eso no es problema. Puedo volver a agregar esto aquí cuando este lado hizo clic. Si la clave variable recogida es igual a uno, entonces mostramos la acción, está bien. Si no, si el objeto no está en la lista de inventario, entonces podemos hacer de esta la comprobación de distancia, y si se cumple la comprobación de distancia, entonces podemos agregarla a la lista de inventario. Vamos a probar eso. Si soluciona esto, entonces recogemos la llave aquí. Podemos hacerlo sin que esto se le agregue otra vez al eventualista Entonces esto no se ejecuta aquí. Siempre sólo se ejecuta esto y no estos dos. Entonces antes era el problema que esto y esto se ejecutara. Ahora sólo uno de estos. Bien. Esto lo arreglamos, y podemos retroceder esta distancia aquí a algo más pequeño, así que 80, creo que estuvo bien, y el 120 fue solo para hacer el punto aquí que esto era una flecha aquí. Esto es fijo. Ahora bien, lo que tenemos que hacer es solo nuestra lógica de juego, como ya te dije, esto tiene que cambiar. Esto tiene que ser una variable local. De lo contrario, los diferentes objetos del juego serán todos recogidos si uno de ellos es recogido. Por el momento, esta es una variable global, y necesitamos reemplazarla por una variable local. Así que vamos a arrastrar esto aquí y reemplazarlo con una variable diferente. Hacemos uno nuevo. Esta vez decimos solo para esta novia, esto es importante para que esta sea una variable local y para cada clon, para cada objeto de juego, este será un valor separado aquí. Solo llamémoslo recogido, no llave recogida, sino recogida, y esto significa que realmente está en el inventario. Llave recogida, podemos deshacernos de y recoger Podemos poner aquí. Aquí también tienes objeto de juego. Esta es una variable local recogida igual a cero en este momento. Ahora necesitamos reemplazar todas las ocurrencias de clave recogida con esta recogida. Aquí, aquí tenemos uno. Ahora bien, aquí no podemos establecerlo así. Tenemos que elegir de este desplegable recogido. cualquier otro lugar aquí, también, esto funciona o debería funcionar, al menos, así que no más clave recogida aquí en este sprite, pero como era una variable global, también se comprueba aquí en Avery Aquí, la llave recogida. Por supuesto, esta no puede ser la variable local recogida porque no se puede acceder a ella desde fuera del objeto de juego aquí. Esto es algo que tenemos que reemplazar por otra cosa. Y aquí podemos tomar este bloque. La lista de inventario contiene cosa. Esta cosa debe ser, por supuesto, el ID de la clave del objeto del juego, y esta es una. Si inventorista contiene uno, el índice del objeto clave del juego, entonces no necesitamos esta igualdad aquí Sólo necesitamos esto aquí. Si el eventualis contiene la llave, entonces podemos decir que la puerta está cerrada Debo haber cerrado con llave. No, es diferente. No está aquí. Si no contiene uno, entonces la puerta está cerrada con llave. Necesitamos un no aquí. Esto es aquí, este bloque, y arrastramos esto aquí al no, y luego arrastramos esto no de vuelta al si. Si no, inventoralis contiene uno, uno es el índice, el por así decirlo, ID del objeto clave, entonces esta oración debe pronunciarse durante 3 segundos De lo contrario, caminar se pondrá a cero justo, esa fue una ocurrencia de clave recogida. No estoy seguro de si hay alguna otra. Creo que debe haber. Comprobemos el uso. No, este no es el caso, y aquí tampoco se usa. Entonces creo que realmente hemos reemplazado cada ocurrencia de esta variable. Entonces podemos tratar de borrar esa variable. Así que haga clic derecho aquí. En la clave recogida, eliminar, y no hay advertencia, así que eso significa que probablemente hemos eliminado todas las apariciones de clave recogida. Intentemos resolver de nuevo el primer acertijo. Debería funcionar. Recoger la llave funciona, utilizarla. No puedo usar esta clave aquí es correcta. Entonces vamos a la puerta. Usa la llave de la puerta, eso también funciona. Ahora tenemos la manzana, podemos recoger la manzana. Intentemos usar el Apple, y luego Avery dice, aquí no puedo usar la clave Esto es algo que tenemos que ajustar, claro. En el primer paso, hemos reemplazado esta variable clave recogida por esta variable local aquí. Esto era necesario para que no usáramos la variable global porque necesitamos valores separados para cada uno de objetos del juego aquí para cada uno de estos clones. O aquí, podemos deshacernos de esto. Esta fue la primera refactorización o la primera fijación de la lógica del juego Pero claro, tenemos que hacer más porque si usas la clave, debería haber un resultado diferente que si usas la manzana aquí. Por supuesto, tenemos que definir cuál es el rompecabezas aquí. ¿Qué necesita hacer el jugador aquí o tener aquí para ir a la habitación contigua? Además, aquí hay un pequeño problema si volvemos a empezar el juego, dejamos aquí esta habitación. Y entramos a la habitación contigua aquí del mismo lado, lo cual no tiene ningún sentido. Entonces debemos entrar aquí a la habitación, así que tenemos que trasladar a Avery de aquí a aquí para que entre a la cocina por el lado izquierdo Y esto lo hará en el siguiente video. 48. 48 Colocación de Avery en el lado correcto: Hagamos que Avery entre por el lado correcto de la habitación de la habitación contigua Por el momento, es el lado equivocado. Porque si recogemos aquí la llave y dejamos la habitación por la puerta, terminamos del lado derecho, o al menos Avery no se mueve Entonces por eso se queda aquí del lado derecho, pero necesita ir al lado izquierdo. ¿Cómo cambiamos eso? Eso es bastante fácil. Aquí tenemos nuestro definir ir a habitación, así que nuestro bloque personalizado va a habitación, y esto necesita otro parámetro. Haga clic derecho sobre esto definir aquí, elija en él, y aquí luego podemos agregar una entrada. Vamos a agregar una entrada y llamarlo lado. Y esto será un número o un texto, y podemos decir, digamos que es un texto, así podemos hacer click en, y ahora tenemos otro parámetro. El segundo es el lado aquí, y esto lo podemos usar aquí en nuestra función en nuestro bloque. Entonces para verificar por el lado, tenemos ya sea a la izquierda o a la derecha, no hay otras posibilidades. Vamos a controlar si entonces else, y tenemos que comprobar si el lado es el texto a la izquierda o a la derecha. Precisamente, sólo tenemos que comprobar si el lado está a la izquierda, y de lo contrario, es correcto. Entonces revisamos lado. Puedes arrastrar este parámetro aquí, lado a esto si yo lado, y luego revisamos el texto que queda aquí, y de lo contrario, es correcto o algo más que izquierdo, y luego vamos a una ubicación diferente aquí. Si se deja el sitio, entonces vamos al movimiento y elegimos conjunto x dos, y aquí tenemos que verificar la coordenada derecha aquí, para el valor correcto para x, y en el otro caso, tenemos que elegir uno diferente para que en el lado izquierdo, cada esté en algún lugar en menos, yo diría que tal vez realmente menos esto, y en el otro caso, en el derecho caso lateral, podemos dejarlo así. Esto tiene que ir a alguna parte de aquí, creo que esto estaría bien justo antes de la transmisión aquí. Si se deja lado, entonces pon a Avery a la izquierda en -197, y si no, luego ponla al lado derecho en x es igual Ahora tenemos que llamarlo con el parámetro correcto aquí con el segundo parámetro derecho, y esto es aquí, ir a sala cocina, y aquí tenemos que entrar a la izquierda. Para que podamos si la segunda habitación aquí, la cocina tiene que dejarse del lado derecho. Entonces podemos ir a la habitación cualquiera que sea la habitación que pueda ser, y luego en el lado derecho está la salida, y luego también en el lado izquierdo debería estar la habitación contigua, tal vez. Pero vamos a ver. Aquí en este bloque, en esta convocatoria de este bloque, podemos elegir en qué lado debe entrar Avery a la habitación Intentemos si esto funciona. Comienza el juego, recoge la llave. Esto ya lo sabemos. Si ahora uso la llave, Avery debería ir a la izquierda, y eso es correcto Todo está funcionando. También podemos tratar de poner aquí justo para probar el otro caso. Entonces debería ser lo mismo que antes, y Avery así que más o menos permanecer en la misma posición x Sí. Eso también está funcionando. Entonces Avery estaría de este lado, pero, ella no está mirando hacia la derecha el lado izquierdo aquí en este caso, pero creo que está bien. No necesitamos cambiar eso. Volvamos a poner a la izquierda aquí, así que ambos lados están trabajando y Avery está del lado derecho, que es el lado izquierdo aquí Bien, continuemos en el siguiente video. 49. 49 Adición de la mochila: Para avanzar en la lógica del juego aquí y también para completar nuestro segundo rompecabezas. Necesitamos agregar otro objeto, otro objeto de juego, que se utilizará para resolver el segundo rompecabezas. Para que Avery salga de casa para ir a la escuela, necesita la manzana, por supuesto, para tener algo de comer en la escuela, y también necesita su bolso para la Tenemos que agregar la maleta, y para eso, tenemos que agregar un nuevo disfraz aquí Vayamos al objeto de juego, disfraces. Tenemos la clave como la primera, la manzana como la segunda, y la siguiente será la satchel, pero esto tenemos que pintarnos nosotros mismos Entonces hagámoslo. Quiero que sea bastante simple aquí. Escojamos rectángulos aquí, y tal vez como relleno, podemos poner algo como marrón, tal vez así, y un poco más oscuro, algo así Y hacemos nuestro primer rectángulo aquí, algo así, y luego hacemos un segundo rectángulo aquí, y luego elegimos la herramienta de selección aquí para ajustarlo un poco. Eso no fue tan agradable. Bien. Entonces el contorno o el borde es un poco demasiado grueso. Hagámoslo dos pixeles aquí. Algo así. Sí, eso se ve bien. Y entonces tal vez algo para cerrar la taletera aquí. Nuevamente, dos rectángulos, éste y éste. Esto tenemos que mandar a la parte de atrás aquí. Vamos a deshacer eso. Esto tenemos que mandar al frente. Primero seleccionemos esta . Envíalo al frente. Ahora está bien, y el relleno debe ser algo así como gris. Entonces digamos que la saturación es cero, y eso es un poco demasiado ligero. Así que vamos a hacerlo más oscuro, algo así. También para el otro, escojamos el gris. También o vamos a usar el selector de color aquí. Entonces el cuentagotas aquí, elige el mismo color. Ahora podemos ajustarlo un poco. Ponlo en algún lugar del centro, y también esto en algún lugar del centro. Bien. Creo que eso debería estar bien. Por supuesto, siempre puedes hacerlo más bonito, pero para mí, esto está bien, así que todo el mundo debería ver un maletín o una taletería aquí, Eso es lo que se supone que sea. Cambiemos al código ahora. Y qué tenemos que agregar aquí para agregar nuestro nuevo objeto de juego, el satchel Tenemos que hacer visibles nuestras listas. Entonces descripción, necesitamos una nueva descripción para la satchel También necesitamos la lista de sala de objetos porque queremos decir que en la segunda habitación, la sala de cocina, la maleta será y debe ser visible Entonces, deshagámonos de esta exhibición recogida aquí. Y también necesitamos object x y object y Bien, hagamos primero una nueva entrada, agreguemos una nueva entrada aquí en game object object room. Entonces el tercero es el satchel, y eso también debería estar en la cocina Entonces tenemos que entrar aquí a la cocina. Y el índice del tercer objeto de juego de la satchel será de tres También aquí, descripción del objeto del juego en esta lista, necesitamos agregar otra entrada, y decimos que es tu bolso, y eso es suficiente También aquí, necesitamos colocarlo en algún lugar de la cocina. Entonces agreguemos otra entrada aquí y también aquí. Y ahora tenemos que verificar la posición correcta aquí para el Satchel Bien, entonces lo que podemos hacer es hacer que este juego sea objeto aquí, este derecho visible. Así que solo haz clic aquí en show sobre este I, y ahora lo tenemos visible, y podemos moverlo a la ubicación correcta. Para que podamos mover eso por aquí. También podemos poner a Avery un poco a un lado aquí. Y vemos que aquí es un poco demasiado pequeño. Entonces tenemos que volver al disfraz y reajustar eso. Pero tomemos las coordenadas aquí. Entonces tenemos 219 para x. Entonces ingresa eso aquí. Y para y, tenemos -70 e ingresamos eso aquí en juego objeto objeto y. He creado erróneamente una cuarta entrada No hay problema, borre eso. ¿Bien? Entonces ahora hemos ampliado todas las listas con nuestro Satchel, sala de objetos de juego, descripción del objeto de juego, objeto x y objeto y Bien, entonces ahora necesitamos verificar si ya estamos creando suficientes clones aquí, y aquí podemos repetir aquí para dos. Bien, entonces ahora necesitamos verificar si ya estamos creando suficientes clones aquí, y aquí podemos repetir aquí para dos Por supuesto, podemos poner tres aquí, y eso está bien, pero para ser más flexibles. Entonces la próxima vez que agreguemos un objeto, aquí no tenemos que cambiar nada. También podemos usar length of y luego una lista, y yo diría length of object room porque esto es algo que necesitamos agregar, por supuesto aquí. Siempre necesitamos agregar la entrada aquí en la sala de objetos para que el objeto aparezca cada vez que el objeto cada vez que se ingresa la habitación, así que estamos tomando la longitud de esta. Aquí elegimos sala de objetos. Y esto será automáticamente ahora tres. Entonces cada lista ya tiene tres entradas. Entonces también es posible usar la descripción del objeto del juego o uno de estos, pero tomemos esta lista aquí y la longitud de esta lista para crear los clones. Bien, entonces ahora deberían crearse tres clones, y podemos desmarcar todas estas listas aquí para que podamos volver a ver nuestra pantalla de juego aquí, y empecemos otra vez un juego Y aquí no podemos ver la Satchel, claro. Tenemos que ir a la habitación contigua. Entonces recojamos la llave y la usemos, y aquí podemos ver que la manzana está ahí, y también la maleta está ahí es un poco demasiado pequeña, como dije, así que necesitamos agrandarla un poco Esta es una maleta muy pequeña, así que no creo que sea la adecuada, así que cambiemos el tamaño un poco de eso Pero veamos si podemos recogerlo, y está funcionando, y aquí también se puede ver que el orden es dinámico, así podemos recoger la manzana y la manzana estará entonces al lado de la maleta. Si lo hacemos al revés, podemos reiniciar el juego. Y rápidamente hazlo de nuevo. Y aquí también podemos recoger el Apple primero y el satchel segundo Entonces aquí tienes el orden correcto en el que recogiste los objetos, y esto será dinámico. Bien, hagamos la taletera un poco más grande. Entonces vamos a disfraces. El disfraz satchel se alejan un poco, y luego seleccionamos todos Así que solo arrastra este rectángulo aquí, y has seleccionado todas, todas estas subformas aquí. Y entonces sólo podemos agrandarlo un poco así y ponerlo de nuevo en el centro, tal vez un poquito más. Así. Vamos a probarlo. Sí, está bien. Creo que eso es lo suficientemente grande. Tal vez un poco más grande estaría bien. Pero creo que está bien porque si aquí lo hacemos más grande, y luego tenemos que hacerlo aquí también, entonces es del mismo tamaño. De lo contrario, tendremos que redimensionarlo cuando se recoja, y creo que eso no vale la pena el esfuerzo aquí Así que déjalo como está. Entonces ese es el tamaño y la manzana es entonces también el tamaño correcto. Ahora tenemos el tercer objeto, y en teoría, el jugador puede resolver este rompecabezas. H o ella solo necesita recoger la manzana y la maleta, y entonces Avery puede salir de la habitación del lado derecho aquí Por supuesto, tenemos que verificar el inventario si la maleta y la manzana están en el inventario, y entonces ella puede irse Y si no, entonces no puede salir de esta sala de cocina. 50. 50 Colocación correcta del uso de button: En este video, se trata de seleccionar objetos de artículos en la lista de inventario en esta área aquí para que luego podamos luego, usar estos objetos con la ayuda de este sprite aquí, con la ayuda del sprite de uso Cómo es por el momento, si aquí nos deshacemos de todas estas listas, esconderlas todas y recoger la llave. A la habitación contigua, tenemos todos los objetos. Ahora primero la clave, luego la Apple, luego la Satchel aquí, y todo está funcionando con la descripción, pero si hacemos clic aquí en la clave, por ejemplo, o si haces clic en la Apple, o si haces clic en la Satchel, no hay diferencia Y si ahora hago clic en la Satchel, por ejemplo, y luego uso, entonces Avery está diciendo, no puedo usar la clave ere Entonces eso es, por supuesto, incorrecto porque no sabemos qué objeto aquí se hace clic antes de que se haga clic en el uso Además, te diste cuenta de que, si hago clic en el Apple o el Satchel, Entonces este uso novia aquí no se mueve a esta ubicación aquí, pero debería estar en algún lugar por aquí para el Satchel, o si hago clic en la manzana, entonces debería estar en algún lugar por aquí encima de la manzana, pero siempre está en este lugar Y esto es lo que queremos corregir primero. Entonces este botón de acción aquí, este brite tiene que moverse al objeto que se hizo clic antes o que se seleccionó aquí en el inventario. Entonces hagámoslo. Entonces vamos al objeto de juego y cuando se hace clic a esta novia, y si ya está recogida aquí, hacemos una emisión de acciones de exhibición Y esta transmisión se recibe aquí Entonces cuando recibo acciones de visualización, entonces este botón de aquí, este botón de uso, este botón de acción se acaba de mostrar. Y necesitamos también algo más para pasar aquí. Necesitamos mover esto o al menos cambiar la coordenada x aquí para que este botón esté justo encima del artículo de inventario que se seleccionó antes. Bien, entonces, ¿cómo hacemos eso? Necesitamos otra variable para eso. Y esta variable contiene el índice del objeto en el que se hizo clic Entonces para todos los sprites, esto es necesario aquí Y podemos llamarlo seleccionado en objeto, por lo que seleccionamos objeto de inventario. Y cada vez que se hace clic en un objeto en la lista de inventario, lo configuramos en este índice Así que vamos al lugar donde se hace clic en este objeto de juego y se encuentra en la lista de inventario Esto es aquí, donde hacemos la transmisión. Y aquí también necesitamos establecer nuestra nueva variable. Así que establece el objeto If seleccionado aquí, y esto necesita ser establecido en el índice. Index es, recuerda, Index es el ID de este objeto de juego. Entonces para la llave, será una, para la Apple, serán dos, y para el estilo, son tres. Entonces ahora que hemos establecido esta variable, podemos usarla aquí para establecer la coordenada x. Establecer la coordenada x es este bloque, establecer x dos, y lo hacemos antes de mostrarlo. De lo contrario, lo haremos podríamos ver un movimiento y no queremos eso. Antes de mostrarlo, establecemos la posición x correcta. Por el momento, esto es -75, y lo que tenemos que hacer es agregar espacio adicional o agregar espacio x adicional a esta coordenada aquí que el botón de acción se mueva con un elemento seleccionado aquí Tiene que haber un offset y luego se le agrega algo a eso. Vamos a los operadores, y luego tenemos que agregar algo. Pasemos de -75 primero. Tal vez tengamos que corregir esto más tarde. Ponlo aquí, establece x dos -75 plus, y luego por supuesto, necesitamos de alguna manera considerar el objeto seleccionado Pero no directamente, necesitamos esto aquí. Número de artículo de cosa en la lista de inventario. Entonces pongamos eso aquí. Número de artículo significa el índice para el número, que pertenece a la cosa en la lista de inventario, y la cosa es, por supuesto, índice aquí. Y como no tenemos el índice del objeto de juego que se selecciona, tenemos que tomar seleccionado en objeto aquí. Y para la llave, esta será una, como dije, para la Apple dos y una rancia tres, pero esto dependerá del orden en que el jugador recogiera los objetos Y esto es importante. Entonces, si el Apple, por ejemplo, está en el tercer lugar de la lista de inventario, y el Apple es el objeto inf seleccionado, el objeto inf seleccionado será dos, ya que el Apple tiene dos como índice como ID, y el número de artículo de dos será tres cuando la manzana esté al final Así que vamos a comprobar esto. Entonces estamos recogiendo el primer artículo aquí. Y necesitamos usarlo, claro, y está bien aquí porque -75 es la posición correcta para este año además esta será una ya que inf seleccionado será el único objeto en la lista de inventario Entonces este número será uno, entonces es -75 más uno, -74 Ya podemos ver aquí seleccionado en objeto es uno, así que eso es correcto, y vamos aquí recogiendo, primero vamos a recoger la maleta aquí, y luego recogemos la manzana Entonces la lista de inventario será así. primera entrada es una, la segunda entrada es tres y la tercera es dos. Así que vamos a comprobar esto. Lista de inventario, podemos mostrar uno, tres, dos. Entonces esto es correcto porque la clave tiene el ID, el índice uno, el satchel tiene el índice tres o el ID tres, y el Apple tiene el ID dos Hasta el momento tan bueno. Pero claro, esto no es correcto aquí porque esto es sólo uno, dos, tres. Esto no es suficiente para poner el botón de usar acción en otro lugar. Podemos probar tal vez tal vez veamos una diferencia. Sí, podemos ver una diferencia. Es solo un píxel, pero puedes notar que aquí está un píxel a la izquierda, y luego un píxel a la derecha, y otro píxel a la derecha si escojo la manzana. Se puede ver que se mueve ligeramente. Está bien, pero tenemos que multiplicar esto aquí con 40 porque 40 es la distancia entre los objetos en la lista de inventario. Vamos a los operadores y al operador de multiplicación aquí Ahora tenemos que multiplicar esto aquí con 40. Y luego vuelve a ponerla aquí. Es -75 más 40 veces y luego una, dos, o tres, dependiendo de la posición aquí Probemos esto. Creo que ya veremos una diferencia. Sí, está por aquí. Bien. Veamos qué viene si hacemos clic en el Apple, el Apple es el último, y está por aquí. Y el estado está por aquí, la clave está por aquí. Parece funcionar, pero esta compensación aquí no es correcta. Y esto es porque siempre nos multiplicamos con al menos uno y nunca con cero, así que siempre hay -75 más 40 por lo menos Entonces es por esto que necesitamos cambiar aquí esta compensación, dos -115, que es -75 -40. Eso debería funcionar mejor. Deberíamos ver la diferencia aquí mismo con la llave. Así que eso funciona muy bien. Utilízala. Y ahora podemos ir a la manzana y a la maleta y vemos que siempre está al centro, de alguna manera centrada sobre el objeto al que se le hizo clic antes Aquí está justo encima de la boletería sobre la manzana y sobre la llave aquí mismo Esto funciona, puedes encontrar sintonía un poco para que tal vez no esté aquí, sino un poco a la izquierda aquí que siempre esté centrada aquí, se pueda mover eso un poquito tal vez así. Y vemos ahora está centrada aquí sobre la manzana también y la satchel también Creo que esto es lo suficientemente bueno, y el jugador ya puede ver para qué sirve este uso. En este caso, es, claro, para la llave porque está justo encima de la llave, aquí está para la manzana y aquí para la maleta. Eso debería estar bien. Pero el problema es que, si uso la satchel, Avery sigue diciendo, no puedo usar la llave aquí Esto es lo que debemos abordar en el siguiente video. 51. 51 Visualización de diferentes mensajes para cada uso de objetos: Hemos visto que esta lógica aquí también se aplica a otras habitaciones. Si hago clic en usar en la Apple o hago clic en usar en el Satchel, entonces también esto se hablará aquí No puedo usar esta clave aquí. ¿Qué hacemos al respecto? Necesitamos otro cheque aquí. Aquí se resuelve el rompecabezas para la primera habitación, así que debemos verificar la habitación antes de hacer eso. Vamos a controlar si entonces y pongamos eso por aquí. Así, se ve eso en gris, cómo va a ser, y es así. Vamos a los operadores, y tenemos que verificar la habitación. Aquí la igualdad. Ahora necesitamos la sala de conteo. Si contar habitación es igual a dormitorio, que es la primera habitación, entonces podemos hacer estas comprobaciones. De lo contrario, aquí no hacemos nada. Intentemos esto y deshagámonos de la lista de inventario aquí. Ocultar. Recoger la llave debería funcionar todavía. U y luego estamos en la habitación contigua. Ahora recogemos la manzana y la cartera. Y aquí si usamos la cartera, no se muestra nada. Si usamos la manzana, no se muestra nada, y también lo mismo para la llave. Entonces la llave no hace nada. Si lo uso en la segunda habitación. Si lo uso en la primera habitación, esto funciona, y si lo uso en la segunda habitación, aquí no se hace nada. Entonces eso está bien. Pero claro, tenemos que hacer algo cuando estamos en una segunda habitación, los jugadores en la segunda habitación y se usa la cartera y la manzana Entonces al menos deberíamos exhibir algo o hablemos alguna vez algo. Bien, así que esto es fácil porque solo revisamos la habitación actual. Otro si entonces, primero vamos a arrastrar eso aquí, y podemos clonar esta condición aquí, así que sólo con el botón derecho del ratón haga clic en Dublicate Y ponlo por aquí. Si la habitación actual es cocina, estamos en una segunda habitación, y ahora podemos decir algo, así que duplique esto, por ejemplo. Por supuesto, ahora podemos verificar qué objeto se está utilizando en este momento. Pero por ahora, solo hablamos, aquí no puedo usar este objeto. No puedo usar este objeto aquí, y luego ponemos esto aquí debajo del otro si habitación actual es igual a dormitorio, así, muévelo un poco. Bien. Entonces si la habitación actual es recámara, entonces tenemos la vieja lógica para la primera habitación, y si la habitación actual es cocina, entonces solo decimos, no puedo usar este objeto aquí. Podemos ser más específicos después, pero por ahora, intentemos. Esto no debería cambiar nada aquí. Pero aquí, después de haber recogido los dos objetos, ahora podemos usar y Avery está diciendo esta frase aquí Es la misma frase para ambos objetos, claro, o incluso para la llave, es lo mismo. Por supuesto, ahora podemos verificar el objeto seleccionado. Entonces eso es en viable seleccionado en objeto. Esto es esto de aquí. Podemos hacer otro si entonces aquí. Y comprobar la igualdad. He seleccionado objeto es y luego la idea del objeto. A lo mejor si es uno, es la clave, y podemos decir algo así como he usado la llave todo listo, por ejemplo, pon eso aquí y podemos duplicar esto. Guarde eso. Si son dos, entonces es la manzana. Podemos decir algo por la manzana. Mueve eso un poco. Yo mejor. Digamos que será mejor que no la coma aquí, sino que la lleve conmigo a s, algo así. Otra vez, boca derecha. Entonces para el Satchel, por lo que este será el caso donde el objeto info seleccionado es tres Tengo que llevar eso a la escuela, así como así. Al final, esto significa que no se puede utilizar ninguno de los objetos de la segunda habitación. Entonces para resolver el rompecabezas aquí, lo hacemos muy fácil. Solo tienes que recogerlos, y luego puedes irte a la derecha de aquí. Y claro, puedes pensar un rompecabezas diferente aquí donde tienes que usar la manzana en, por ejemplo, la cartera, y luego puedes dejar algo así Podemos extender eso, tal vez no. Pero primero probemos esto aquí. Entonces para cada objeto, aquí hay un mensaje diferente dependiendo de cuál se seleccione. Bien. Entonces primero, la clave, claro, Úsalo. Eso está bien. La manzana y la cartera. Primero, usa la llave. Ya he usado la llave y aquí, Apple, será mejor que no la coma aquí, sino que la lleve a la escuela. No es suficiente. No puedes leer eso, así que hagámoslo 3 segundos aquí. Utilízala. Será mejor que no me la coma aquí, sino que la lleve conmigo. Eso está bien. Y usa el Sach Tengo que llevar eso a la escuela. Esto es. Ahora tenemos que encargarnos de que Avery salga de esta habitación aquí. Por el momento, esto no es posible si intenta salir la habitación del lado derecho. No es posible. Entonces esto tenemos que implementar, y tenemos que verificar si tanto la cartera como la manzana están en el inventario, y luego Avery puede salir de la habitación y puede salir de la casa para ir a la 52. 52 Comprueba las condiciones de salida: Necesitamos ajustar las condiciones de salida para las dos habitaciones que tenemos. Para la primera habitación, ya tenemos un cheque. Esto es aquí, si toca color, entonces asumimos que Avery está tocando la puerta, y luego verificamos si tiene la llave, si no tiene la llave, entonces decimos que la puerta está cerrada Debo haberlo cerrado mientras sonambulismo y luego ella cogió la llave y la usó en el mientras estaba parada en la puerta, entonces ella puede salir de la habitación Entonces lo primero que tenemos que hacer es refaccionarlo un poco porque este es un bloque bastante largo aquí, así que necesitamos extraer esto si aquí Así que vamos a arrastrar eso si fuera, si toca color, lo arrastramos aquí y lo ponemos en un bloque personalizado. Entonces hacemos un bloque y lo llamamos check bedroom exit, así como así sin ningún parámetro aquí. Entonces ponemos eso aquí. Y entonces necesitamos un si, y verificamos la habitación actual. Entonces si la habitación actual es igual a recámara, Entonces necesitamos la variable de habitación actual aquí. Y aquí ponemos recámara. Entonces podemos llamar a nuestra salida de recamara de cheque de bloque. Bien. Y esto lo ponemos aquí en el bucle F alguna vez más. Entonces esto no debería cambiar nada porque acabamos refactorizar aquí este check en este bloque personalizado Bien, así que vamos a comprobar si esto realmente no está cambiando nada. Y parece, funciona. También esto no está haciendo nada aquí si Avery intenta salir de aquí Aquí no se dice nada. Esto es lo que tenemos que comprobar, claro, si Avery intenta salir de aquí Tenemos que verificar el estado para salir de esta habitación aquí. ¿Cómo lo hacemos? Nosotros solo verificamos el puesto aquí de Avery. Bajo movimiento, tenemos esta posición x aquí. Vamos a arrastrar eso, y definimos otro bloque. Revisar salida cocina. Y aquí podemos tener también si entonces, comprobamos si la posición es mayor que la exposición mayor que digamos 200 tal vez y entonces podemos hablar algo Primero digamos o hablemos. Usamos nuestro bloque personalizado hablar aquí, porque de esta manera no bloqueará nada. Solo dulicar esto, ponlo aquí, y nosotros no puedo irme sin mi taletero y algo de comer, y los segundos deberían estar Primero verifiquemos esto. Tenemos que ir a la segunda habitación, claro, y ahora directo a la salida. Por supuesto, no está funcionando. ¿Por qué no? Porque no lo hemos llamado. Así que vamos a duplicar esto aquí. Ponlo justo debajo de la otra habitación si actual. Y entonces habitación actual equivale a cocina. Entonces llamamos aquí a nuestro nuevo bloque. Así que revisa la salida de la cocina. Oh, ahora veo que es un orden diferente aquí, revisa la salida de la recámara, y revisa la salida de la cocina. Pero en fin, dejémoslo así. Entonces si la habitación actual es cocina, verificamos el estado de salida para la cocina, que aquí se define. Y por el momento, simplemente no es posible salir de la habitación aquí. Vamos a intentarlo de nuevo. Desde el inicio, Bien, quien puede ir y ahora no puedo irme sin mi mochila y algo de comer Sí. Entonces eso es correcto ahora. Pero claro, aquí tenemos que revisar la mochila y la manzana Si ambos están en el inventario, entonces Avery puede salir de la cocina Podemos salir de la casa y luego ir a la escuela. Este es un sencillo. Hagamos esto, haz un poco de espacio aquí. Dentro de esta exposición si mayor a 200, podemos poner otra si pero ahora es si otra cosa, así que tenemos que comprobar si hay variables Si la lista de inventario contiene, y necesitamos verificar dos cosas, y es por eso que necesitamos el bloque final aquí. Primero está la lista de inventario contiene, y luego tenemos dos, que es el índice o el ID para el Apple, y aquí necesitamos nuevamente la lista de inventario contiene tres, que es la satchel Si ambos están en el inventario, entonces podemos decir algo y de otra manera, decimos que no puedo irme como antes. Duplicemos esto también y aquí. Solo podemos decir por el momento, está bien, creo que decirlo, ya puedo irme a la escuela, y probemos que esto funcione. Empecemos de nuevo. Usando la llave. Escojamos la manzana. Escoge la mochila, y ahora ya podemos irnos. Ya puedo irme a la escuela. Por el momento, ahora Avery podría salir de la habitación. Podríamos cambiar de habitación aquí, pero creo que por ahora está bien. Ella dice, ya puedo irme, y si no tienes a los dos recogidos aquí, la manzana y la bandolera, entonces dice, no puedo irme sin mi taletero y algo de comer Eso me parece genial porque esta es la solución para nuestra segunda habitación, y de esta manera, el jugador puede resolver el segundo rompecabezas, lo cual es bastante fácil. Sólo hay que recoger dos objetos y luego irse. Pero claro, siempre se puede complicar que el jugador tenga que combinar tal vez dos elementos juntos, tal vez crear otro elemento a partir de él, o poner la manzana tal vez en la boletería, algo así, o tal vez tengas que usar la manzana en un cuchillo para cortar para cortar la manzana, y luego la puedes llevar a la escuela A lo mejor esa es la solución, pero aquí tienes el patrón de cómo hacer esto. 53. 53 Nuevo juego Jump 'n Run: Bien, estamos aquí para comenzar nuestro próximo juego, y este próximo juego será un juego de carreras de salto. Entonces tenemos a este gato aquí, y nos quedamos con un gato. Este gato saltará. Se irá en plataformas. Recogerá mermeladas, estrellas, lo que sea, y esta es la oportunidad de obtener nuestro control de salto y control de carrera aquí en cero. Hasta ahora acabábamos de hacer nuestra nave espacial controlable por el jugador Y también Avery era controlable izquierda, derecha. Pero se trata de saltar, de animación, de gravedad. Entonces comencemos. Primero, lo que necesitamos es un piso, un suelo. Entonces pintemos algo aquí. Vayamos al escenario y luego retrocede, y aquí podemos tomar este rectángulo aquí para hacer el piso. Entonces solo haz un rectángulo, algo así. A lo mejor cambiamos el color. Entonces algo así y el color será como marrón tal vez o hagámoslo verde, un poco más oscuro, así que eso podría ser algún tipo de hierba. Entonces eso está bien. Ahora tenemos el terreno, y también tenemos un esquema aquí o puedes decidir deshacerte del esquema seleccionando este año. Entonces podemos hacer eso, y entonces no tienes el esquema. Pero por ahora, creo que tomamos el negro como contorno. Ahora, tengo que hacerlo un poco más fuerte, tal vez así y un poco más ancho, algo así. Aquí tenemos el suelo, y aquí tenemos al gato. El gato es un poco demasiado grande. Diría, así que solo vamos a seleccionar el gato, y luego podemos cambiar el tamaño al 50 así que 50%, lo que parece bien. Entonces dejémoslo así. Y aquí podemos echar un vistazo a los disfraces. El primer disfraz es el gato en esta posición aquí. El segundo es una especie de gato saltador, entonces esto es lo que podemos usar en la fase de salto entonces. Hablando de saltar, estableceremos aquí nuestra primera posición de partida del gato, así que arrastremos al gato tal vez por aquí, y a partir de ahí, el gato caerá al suelo, caerá al suelo aquí, caerá al suelo aquí, cada vez que se haga clic en la marcha, cada vez que comience el juego Así que vamos a los eventos, y luego cuando comience haga clic. ¿Qué hacemos aquí? Por supuesto, necesitamos un bucle de juego, así que un para siempre. Esto lo podemos arrastrar aquí, y necesitamos establecer la posición inicial del gato para que cada vez que reiniciemos el juego, el gato esté en esta posición, así que arrastre vaya a x e y aquí, y las coordenadas deben ser las coordenadas actuales. Entonces podemos empezar, pero no va a pasar nada porque acabamos de establecer esta posición aquí, podemos arrastrar al gato lejos y luego comenzar, y se reposicionará aquí a la posición inicial Entonces, ¿cómo hacemos que el gato caiga de ahí al suelo? Eso es bastante fácil. Tenemos que cambiar y del gato, y no por diez, sino por algo como tal vez cinco, pero de esta manera va a subir, así que es menos cinco, y el gato bajará. Entonces, al cambiar aquí, automáticamente cae, pero por supuesto que aquí cae debajo del suelo. Entonces eso es lo que debemos evitar, claro. Pero por ahora, el gato acaba de caer aquí. Pero aquí no hay señales de gravedad de aceleración. El gato tiene una velocidad constante, lo cual, por supuesto, no es bueno, pero primero hagamos que nuestra detección de colisiones funcione con el suelo. Entonces, ¿cómo podemos verificar la colisión del gato con el suelo aquí? Eso es bastante fácil. Tenemos que ir a la detección, y aquí tenemos este color conmovedor, y este color tiene que ser, por supuesto, este verde que tenemos. Así que haz clic en este cuentagotas aquí y selecciona el verde del suelo Entonces ahora tenemos el color correcto. Y necesitamos un control aquí si entonces. Entonces, si toca el color, ¿ qué hacemos? Por el momento, podemos simplemente detener el guión aquí. Entonces esto está deteniendo el juego completo como lo es. Detener todo saldrá inmediatamente de todos los scripts y no hará nada más. Entonces entonces todo se detiene y ya no se ejecuta ningún script. Entonces también este velop ya no va a correr. Entonces esto evitará por completo que el gato se caiga. Ojalá. Entonces veamos si esto funciona. Entonces si el gato está tocando este color, entonces detén el guión aquí, detén el código. Veamos si esto funciona, y funciona. Y echemos un vistazo más de cerca aquí. Podemos ver que el pie del gato aquí está dentro de la zona verde, y eso es, por supuesto, no lo que queremos, así que tenemos que arreglarlo después. Pero por ahora, tenemos al gato que cae. Y luego se detiene cada vez que golpea el suelo aquí. Pero claro, esto es un poco tarde, así que el pie necesita estar sobre el suelo, claro, así que tenemos que pensar en una solución para eso. Pero por el momento, lo siguiente que implementaremos será la gravedad. 54. 54 Simula la gravedad: Entonces el gato ya está cayendo como podemos ver aquí, pero no es realista porque no tenemos nada como la gravedad, lo que aceleraría la velocidad aquí. Entonces esto es solo una velocidad uniforme, que, por supuesto, no es físicamente correcta. Bien. Pero, ¿cómo simulamos la gravedad? Muy fácil. Cambiamos y por, en este caso, menos cinco aquí, y esto es un cambio constante, y necesitamos que este cambio constante sea cambiado, que sea dinámico, y esto debe ajustarse en el for evolut Muestro lo que quiero decir, pero antes de hacer eso, vamos a introducir una variable a la que llamamos velocidad o mejor llamamos velocidad y porque queremos también una velocidad para la dirección x. Entonces lo llamamos velocidad y, y sólo por esta spride, claro, porque esta novia está haciendo la moción Bien. Ahora tenemos velocidad y Ahora la ponemos al inicio del juego a un cierto valor. Así que vamos a configurarlo en uno, no a mi variable, sino a la velocidad y aquí, y podemos borrar o borrar esta mi variable aquí. No necesitamos eso. Y por cierto, deberíamos nombrar nuestro juego de saltar y correr. Entonces lo llamamos saltar por ahí, no muy creativo, pero claro, puedes nombrarlo de otra manera, pero yo lo llamaré así aquí. Bien. Entonces ahora si hemos establecido la velocidad y en uno, necesitamos usarla, por supuesto, y la usamos aquí en esto para evolut en lugar de esta constante menos cinco Así que vamos a arrastrar la velocidad y aquí al cambio y y, y tenemos cambio y velocidad y. así podemos establecerlo en menos cinco y luego intentarlo de nuevo. Entonces nos deshacemos de esto aquí también, escondemos el despliegue de velocidad y para que podamos ver caer al gato. Ahora el gato vuelve a caer. No hay cambios, pero ahora tenemos la posibilidad de introducir una estimulación por gravedad. ¿Cómo lo hacemos? Cambiamos la velocidad y, por una cierta cantidad en cada iteración aquí en la evolución cuatro Entonces al final, podemos cambiar la velocidad y por menos, digamos 0.5. Empecemos con esto y veamos cómo funciona esto. Esta es una gravedad bastante fuerte aquí. Entonces el gato realmente está cayendo rápido. Pero creo que está bien. También podemos cambiar esto a, por ejemplo, menos uno y luego probarlo. Entonces está comenzando lento y luego cada vez más rápido muy rápido. Puedes experimentar un poco con los ajustes aquí, así que cambia eso y cambia la velocidad inicial aquí. Pero se puede ver que esto es más realista que tener una velocidad uniforme aquí todo el tiempo. Una velocidad constante no es natural. Entonces esto es una especie de simulación para la aceleración aquí, para la gravedad de la Tierra. Y creo que esto es un poco demasiado lento. Entonces tal vez comencemos con menos dos. Sí, creo que está bien. A lo mejor deberíamos empezar un poco más rápido así y luego hacerlo un poco menos. Probemos esto. Ahora, eso es demasiado lento. Vamos a hacerlo un poco más alto. Eso es demasiado rápido. Se puede ver el gato está atrapado en el suelo aquí. Entonces tal vez eso estuvo bastante bien aquí. Siempre podemos ajustarla después porque tenemos esta variable aquí, así que puedes ajustar estos dos valores aquí. O podemos, por supuesto, poner aquí también una variable para este valor, que podamos hacer una nueva variable y llamarla gravedad. Y tal vez debería ser para todos los sprites, porque la gravedad debería ser la misma para todos los sprites, no solo para este Entonces digamos para todos los sprites aquí, y luego podemos establecer la gravedad aquí -0.5 y luego poner gravedad aquí en este cambio velocidad y por gravedad. Vamos a intentarlo. No debería ser la diferencia. Entonces aquí se puede ver explícitamente de una manera muy agradable que el gato se está hundiendo en el suelo porque la velocidad es mucho mayor ahora, y la detección de colisiones es lenta, por así decirlo, el gato está cayendo al suelo de esta manera Entonces esto es lo que abordamos como el siguiente problema, pero no es muy difícil hacerlo, pero podemos hacer uso de otra característica de los bloques personalizados cuando lo hacemos. Entonces, el siguiente video será sobre tirar al gato del suelo nuevamente hacia la superficie, y para ello, necesitamos una nueva característica para los bloques. 55. 55 Excavación del gato: Entonces el gato se está cayendo. Está bien, pero está atascado en el suelo. Entonces, ¿qué podemos hacer al respecto? La respuesta es que podemos desenterrarlo de nuevo. ¿Y cómo lo hacemos con una repetición? O, en este caso, es repetir hasta Así que arrastra esta repetición hasta bucle aquí. Y ahora necesitamos una condición aquí. Y para esta condición, volveremos a usar el color conmovedor. Tan conmovedor color. Si este sprite está tocando el color, y debe ser del mismo color que el suelo Así que escoge el color del suelo. Debe ser de este color. De lo contrario, no va a funcionar. Y repetimos hasta tocar el color. No, repetimos hasta no tocar el color. Esto no aquí bajo operadores, este verde no, necesitamos usarlo no tocando color. Arrastra eso al no aquí y esto no necesita ir aquí. Esto, necesitamos repetir hasta no tocar más el color para que el gatito esté realmente fuera del suelo. Algo así tal vez. Y entonces podemos detenerlo para que este bucle no continúe aquí. ¿Qué hacemos hasta que el gato esté fuera del suelo? Tenemos que moverlo, por supuesto, fuera del suelo. Y esto es cambiando la y por supuesto. Necesitamos cambiar y por uno porque uno está hacia arriba, así que necesitamos cambiar y en este bucle siempre y cuando esté tocando el color, así que cuando ya no esté tocando el color, entonces este bucle saldrá, y el gato está en la superficie. Entonces esa es la teoría, y ahora tenemos que ponerla en alguna parte de aquí. Y claro, tenemos que hacerlo aquí en esto si toca color. Si toca color, entonces el gato ya está dentro del suelo dentro de esta zona verde aquí, y tenemos que ir hacia arriba cambiando y por uno. Paso a paso, vamos de nuevo hacia arriba. De bajar, caer al suelo, volvemos a subir hasta que el gato ya no toca este color. Entonces después de eso, después de que el bucle haya salido, entonces paramos todos, y el gato debería estar en la superficie, sin tocar más el color. Vamos a probarlo y se puede ver que está funcionando Así que es lentamente, enfatizo, poco a poco saliendo del suelo otra vez, y luego deteniéndose en la superficie. Entonces de esta manera, esto es bueno porque se puede ver el procedimiento aquí, lo que está haciendo. Entonces el gato es un píxel por un píxel yendo hacia arriba hasta llegar al punto en el que no está tocando el color verde aquí. Ya más. Entonces esto está funcionando, pero no es muy agradable para el jugador porque esto es visible. Este levantamiento del gato es visible a la superficie. Entonces tenemos que hacer algo al respecto. Y esto es posible con la ayuda de un bloque personalizado. Entonces hacemos un bloqueo. Y lo llamamos arreglar Y. Esto es para arreglar la corneta y, que es un poco demasiado baja para estar en la superficie del color de este rectángulo Pero no hagas clic en K ahora mismo porque necesitamos marcar esta casilla aquí, correr sin pantalla, actualizar. ¿Qué significa eso? Ya lo podemos ver. Entonces marca esta casilla, haz clic en OK, y luego pondremos esto aquí, esta repetición hasta dentro de nuestro bloque define aquí. Así que define fix y Entonces vamos a reparar la posición y aquí para el gato, y a esto lo llamamos por supuesto, siempre que el gato esté tocando el suelo o esté tocando el color aquí. Vamos a probar esto. Y vemos que ya no vemos este levantamiento del gato. Entonces esto soluciona nuestro problema. Pero ¿por qué? Como puedes ver si vuelves a hacer clic en Editar. Esta es la casilla de verificación que hemos marcado ejecutar sin actualización de pantalla, y esto es exactamente lo que se supone que significa Entonces no se puede ver nada de lo que se hace aquí dentro de este bloque personalizado. Entonces todo lo que se hace aquí no es refrescar la pantalla. Entonces eso significa que este levantamiento aquí no es visible. Y esto es exactamente lo que necesitamos para este procedimiento aquí. Y además, hay otra ventaja en esto, y la ventaja es que es mucho más rápido sin actualizar la pantalla. Entonces este bloque aquí o este código aquí dentro se ejecuta mucho más rápido que todo el código que está aquí en este bucle forever, por ejemplo, porque no hay necesidad refrescar la pantalla para dibujar la pantalla. Y en scratch, hay una velocidad de fotogramas, una velocidad de fotogramas fija de 30 fotogramas por segundo, se realiza una actualización de pantalla 30 veces por segundo, y todo lo que hagas aquí activará una actualización de pantalla, y por eso no puedes alcanzar cierta velocidad aquí. Por lo que se limita a estos cuadros por segundo, 30. Pero si usas un bloque personalizado aquí con esta casilla de verificación aquí, ya no estás limitado. Todavía hay un límite aquí porque no puedes bloquear toda la CPU de tu computadora aquí mientras haces esto aquí dentro del bucle, pero es mucho más rápido que con la actualización de pantalla. Entonces podemos ver aquí que el gato está completamente sólido en la superficie del suelo, así que no hay que hundirse y volver a subir Y esto es muy bonito porque de esta manera, un lado, es más rápido, y por otro lado, no se puede ver nada en la pantalla que se haga aquí dentro de este bloque. Muy importante. Entonces si tienes algo que hay que hacer muy rápido y con rendimiento más rápido entonces, por ejemplo, la actualización de pantalla normal, entonces puedes hacerlo aquí dentro un bloque personalizado con esta casilla de verificación aquí, ejecutar sin actualización de pantalla. Como dije, todavía hay un límite a lo que se puede hacer, en cuanto al rendimiento, pero aquí, esto es mucho más rápido, y no se pueden ver los efectos hasta que se termine este bloque. Entonces después, claro, este bloque terminó, entonces podrás ver los efectos en la pantalla. Pero aquí dentro, por ejemplo, si y se cambia por uno, este cambio aquí no se renderizará a la pantalla, sino que se continúa aquí en este bucle hasta que se sale de este bloque Bien, entonces ahora tenemos la caída del gato, y sí, y el gato está parado en tierra firme sin hundirse en un barro o algo así Entonces esto es agradable, y ahora podemos implementar los controles para mover al gato a izquierda y derecha, y también, por supuesto, para saltar. 56. 56 El gato salta: Antes de hacer los controles aquí para la parte de salto, necesitamos cambiar de vestuario. Entonces, si el gato se cae, tenemos que poner este disfraz, que ya está ahí, el primer disfraz inicial, pero hay que hacerlo explícito. Entonces cuando se hace clic en go, entonces se debe escoger el disfraz adecuado, entonces es disfraz, que es este tipo de gato saltador Y si el gato realmente está golpeando el suelo, deberíamos cambiarnos a un disfraz diferente aquí. Si toca color, entonces arregla y, y antes de eso, podemos cambiar el disfraz aquí por el primero. Y probemos si esto funciona. Y vemos que funciona en cuanto el gato está golpeando el suelo, cambia a este otro disfraz por el primer disfraz. Bien, entonces esto está funcionando, y ahora necesitamos agregar controles para el salto, y esto es con la barra espaciadora, yo sugeriría, así que tenemos que poner un si aquí, si, y luego tenemos que verificar que se oprime la tecla espaciadora. Así que esto está aquí bajo detección, y tenemos esta tecla de presionar el espacio. Ya es espacio aquí, pero también puedes saltar con una tecla diferente si quieres, así que tal vez flecha arriba, algo así, pero aquí estoy usando la tecla de espacio. Entonces pongamos eso aquí en el para evelop. Entonces tal vez aquí, y tenemos que alargar eso. Así que asegúrate de que todo el código que ya está ahí no esté posicionado aquí dentro de esto si porque necesitamos poner algo más aquí. Entonces se presiona la tecla espaciadora, entonces hacemos algo de otra manera, o después de eso, hacemos el resto aquí que ya hicimos antes. Bien, ¿qué hacemos si el espacio se mantiene presionado? Esto es sorprendentemente fácil. Necesitamos una velocidad para ser más rápidos de lo que es ahora en estos momentos esto es algo desconocido un valor aquí, así podemos mostrarlo así. Entonces, deshagámonos de la gravedad. Eso nos hace falta. Es una constante, así que no necesitamos mostrar eso. Y aquí tenemos el -16.5. Este es el valor en este momento. Entonces, si el gato cae, alcanza esta velocidad, y entonces ya no cambia. Pero creo que todavía hay un problema. primer problema es que ahora el juego se detuvo, así que ya no podemos interactuar con el gato ni con el código aquí. Así que tenemos que quitar esa parada todo aquí. Así que guarda eso. El otro problema es que no estamos poniendo la velocidad y a cero. Esto debemos hacer. Si vas aquí a arreglar y, y entonces podemos hacerlo aquí atrás después de la repetición hasta que aquí atrás después de la repetición hasta cambiemos la velocidad y a cero. Entonces debería ser cero aquí. Pero sigue fluctuando. Y esto se debe a que aquí siempre estamos cambiando la velocidad. Entonces cambia la velocidad y por gravedad. Pero no hablemos de eso por el momento. Entonces hay algo que tenemos que hacer aquí si se presiona el espacio de teclas. Entonces eso es lo que necesitamos implementar aquí. Este es un método muy fácil para el salto. Necesitamos simplemente establecer la velocidad variable aquí, velocidad y, a un cierto valor. Digamos ocho, por ejemplo. Y lo que esto hace es que restablece la velocidad y a ocho. Entonces ocho es hacia arriba. Y esto hace que y del gato se incremente a este ocho, y luego la gravedad lo cambiará, luego retrocediendo paso a paso, dos vuelven a bajar. Entonces veamos cómo funciona esto. Entonces el gato está cayendo y pre espacio, y el gato está saltando. Entonces esto ya funciona, y esto es simplemente fijando la velocidad y, dos, ocho aquí en este caso. Y con este ocho, se puede decir lo alto que está saltando, así que quizá pongámoslo en 16. Y entonces podemos ver que aquí es un salto muy alto. Es demasiado alto, así que creo que ocho es razonable. Ahora, ese es un buen salto. Siempre se puede ajustar después, claro, y ocho es una buena relación calidad-precio, creo por ahora. Entonces, ¿qué hicimos aquí? En realidad, acabamos de introducir aquí, el cambio de vestuario, claro, que no es tan importante para la parte de salto, pero esta es la parte importante aquí. Si presiona el espacio de teclas, entonces establece la velocidad y en ocho, y eso es todo. Y claro, la gravedad se encargará del resto. La velocidad ocho aquí está provocando que la captura vaya más alta. Pero entonces otra vez, aquí, la gravedad siempre se resta de la velocidad y. entonces la velocidad será entonces negativa o cero, y cero, estará en la cima del salto Aquí en alguna parte de aquí. Este punto, será cero, y luego la velocidad volverá a ser negativa, y luego el gato vuelve a caer. Siempre que la velocidad y es positiva, entonces el gato va subiendo, y si la velocidad es cero, no está haciendo nada, y si la velocidad es negativa, baja. Entonces eso no es nada más que hacer para el salto o tal vez solo una cosa más, tenemos que hacer. Tenemos que cambiar de nuevo los disfraces al segundo. Así se ve y luego cambia de disfraz. Y si se presiona el espacio de teclas, entonces podemos cambiar al segundo disfraz aquí. Entonces probemos esto. Y cada vez que saltamos, el gato va al siguiente disfraz o este disfraz de salto o caminata. Y esto está funcionando muy bien. Bien, ahora que hicimos eso, necesitamos, por supuesto, controlar al gato en el espacio horizontal, así que yendo a la izquierda y a la derecha. Y también, si estamos saltando, necesitamos controlar también al gato en el aire. Entonces eso es lo que hacemos en el siguiente video. 57. 57 Mover el gato a la izquierda y a la derecha: Muy bien, así que vamos a mover el ct a la izquierda y a la derecha. Esto es lo que falta ahora para el control del gato. Hagamos esto. ¿Qué necesitamos? Necesitamos esto si aquí. Copiemos eso, doblemos esto. Y verás que doble consigue todo el bloque aquí, el resto del bloque, así que vamos a deshacernos de esta parte inferior, y ahora necesitamos no la tecla de espacio, sino la tecla de flecha derecha. Por supuesto, aquí estamos haciendo otra cosa, no cambiar de vestuario y no establecer velocidad y Hablando de velocidad y, necesitamos algo más aquí. Hacemos una nueva velocidad variable x. Esto es lo que necesitamos para el movimiento x en la dirección horizontal aquí. Para todos los sprites, claro, solo para el sprite de gato, y podemos usar eso Primero, tenemos que inicializar esto. velocidad x está al principio cero porque el gato no debe moverse al inicio, y luego podemos configurarlo en otra cosa si se presiona la tecla para el movimiento izquierdo o para el movimiento derecho. Para la tecla de flecha derecha, necesitamos cambiar, necesitamos establecer la velocidad x en algo así como cinco tal vez, y cinco es la dirección correcta. Dubicate esto y me presiona la flecha izquierda, entonces es menos cinco Menos cinco estaría entonces a la izquierda, y necesitamos, por supuesto, cambiar x también, no solo y. Así que vayamos al movimiento, cambiemos x. No por diez, pero tenemos esta nueva variable aquí, velocidad x, y tenemos que ponerla en velocidad x aquí. Cambiar x por velocidad x, cambiar y por velocidad y. Suena lógico y lo es, y ahora necesitamos insertar esto aquí en el espacio correcto al lugar correcto aquí. Entonces eso debería estar justo debajo del espacio de teclas if presionado, y esto se alarga un poco, así que podríamos tener que refaccionarlo más adelante Pero por ahora, lo intentamos. Si presionamos la tecla de espacio, entonces saltamos, y esto significa que se establece la velocidad y, y si se presiona la tecla de flecha derecha, entonces la velocidad x se establece en cinco, se presiona la tecla de flecha izquierda, luego establecemos la velocidad x en menos cinco, y luego cambiamos x por velocidad x tal como lo hicimos para la dirección y. Eso es. Vamos a probarlo, y podemos ver que podemos controlar al gato con la tecla del cursor. Ahora estoy presionando a la derecha, ahora estoy presionando a la izquierda. Pero ya ves un problema porque el gato no se detiene. Ahora no estoy presionando ninguna tecla en absoluto, y el gato sigue moviéndose. Ahora no se mueve porque está en el borde derecho, pero vamos a comprobar por qué es así. Estamos estableciendo la velocidad x en cinco o menos cinco, y al principio con ponerla a cero. Pero si en esto para everop, lo establecemos en valor distinto de cero, no se restablece a cero. Eso es lo que tenemos que hacer. Establecimos la velocidad x en cero al final del bucle forever. De esta manera, pasa por el bucle y fijando la velocidad x25 o menos cinco, si se presiona alguna tecla, izquierda o derecha, y luego cambiando x por velocidad x, y luego poniéndola a cero nuevamente Si en la siguiente iteración se presiona ninguna tecla, entonces permanecerá cero, y el gato se detendrá Probemos esto. Funciona, así también podemos detener al gato. En realidad, eso es todo. Nada más que eso. Podemos mover al gato a la izquierda, derecha, con las teclas de flecha izquierda, todas a la derecha. Pero el problema aquí es que el gato siempre se enfrenta a la derecha, lo cual por supuesto no es correcto. Si presionamos a la izquierda, debería de cara a la izquierda, de, esto también podemos arreglar, pero lo hacemos en el siguiente video. 58. 58 Orientar la dirección correcta y corregir el salto doble: En este video, arreglaremos dos cosas. El primero, ya lo he insinuado en el último video. El gato no está orientado en la dirección correcta. Si paso al gato a la derecha, está bien, pero si lo camino hacia la izquierda. Debe mirar hacia el lado izquierdo. Pero esto es fácil porque ya teníamos esto con Avery. Avery también necesitaba girar a la izquierda y a la derecha. Hagamos esto. Ya sabemos cómo hacerlo. Lo primero que tenemos que hacer es establecer el estilo de rotación a izquierda-derecha. Este es este bloque aquí en movimiento. Así que cuando vaya haga clic. Establecer el estilo de rotación a la izquierda. Eso es lo primero. Entonces necesitamos dos dependiendo de la dirección, por supuesto, dependiendo de la flecha izquierda o derecha. Tenemos que apuntar en la dirección correcta aquí. Pongamos el punto en dirección 90 grados aquí. Ahora ese es el lugar equivocado. No espacio, sino flecha derecha, y luego apuntar en dirección flecha izquierda. Tenemos que darle la vuelta a eso -90 grados, y así, deberíamos estar bien Probemos esto, y está funcionando como ya funcionó en la aventura de Avery Esto no es ninguna sorpresa aquí. Entonces ese es el primer reto y el primer problema que hemos resuelto ahora. Entonces el segundo problema que tenemos que arreglar es el problema del salto porque el jugador puede saltar tantas veces también en el aire, como quiera. Entonces eso no es bueno. Cómo arreglarlo es muy fácil. Tenemos que recordar que ya estamos saltando. Si ya estamos en el aire del gato ya está en el aire, no volvemos a saltar. Entonces necesitamos otra variable aquí, una variable local solo para este derecho, y la llamamos saltar y necesitamos ponerla por supuesto a cero al inicio del salto, y luego tenemos que configurarla en otra cosa cuando saltemos. El espacio de teclas presionado establece saltando a uno. Y si golpeamos el suelo aquí, lo volvemos a poner a cero. Aquí si toca el color verde, entonces lo ponemos a cero otra vez. Probemos esto primero. Aquí tenemos saltando. Está empezando con cero, y ésta es una. Si golpeamos el suelo, es cero, así que eso funciona. Para evitar que el jugador pueda saltar dos veces, necesitamos esto si aquí y operadores igualdad. Y ahora comprobamos aquí nuestra variable de salto recién creada. Si ya es uno, no deberíamos hacer nada. Si es cero, entonces podemos saltar. Entonces aquí está. Tenemos que poner esto aquí, arrastrar eso a esto entonces. Y luego lo arrastramos nuevamente a la tecla if presionada aquí para la tecla de espacio. Entonces, si se presiona la tecla de espacio, entonces verificamos si hay saltos, así que saltar debe ser cero, y luego podemos establecer saltar a uno, podemos cambiar de vestuario, y podemos establecer la velocidad Y en ocho aquí. Entonces el gato saltará, de lo contrario, el gato no saltará. Vamos a probar esto, y sólo puedo saltar una vez hasta que golpee el suelo, luego puedo volver a saltar. Así que eso es lindo. El gato puede saltar, pero solo así de alto y no más alto. Bien. Ahora tenemos un buen control de nuestro gato. Pero por el momento, solo tenemos este avión aquí, el suelo, y esto no es muy emocionante aquí, y no hay reto. Tenemos que saltar sobre una nueva plataforma, tal vez o necesitamos poder caer de una plataforma al suelo. Entonces esto no es muy atractivo. Entonces tenemos que arreglarlo. 59. 59 Corrección de la detección de colisiones: Bien, para que podamos mover al gato, el gato está cayendo, y tenemos detección de colisiones, como puedes ver aquí, el gato no está atascado en el suelo. Pero hay un problema, y para mostrarte ese problema, necesitamos cambiar un poco el telón de fondo aquí para que introduzcamos otro obstáculo, otra plataforma. Lo primero que quiero hacer es deshacerme del contorno porque creo que es mejor ver todo y razonar sobre la detección de colisiones, por ejemplo, si no tenemos un esquema aquí. Así que da clic en Contorno y selecciona este año, y el esquema se ha ido. Y ahora hacemos otro rectángulo por aquí, quizá quizá eso sea un poco demasiado alto. El gato debería poder saltar sobre la plataforma. Entonces algo como esto, y para asegurarnos de que el gato sea realmente capaz de saltar sobre la plataforma, aumentaremos un poco la fuerza de salto aquí. Aquí, fijamos la velocidad y a ocho, y me gustaría aumentarla a, digamos diez, Así que intentemos si esto es realmente alto. Sí, está bien, pero no es lo suficientemente alto para la plataforma. Entonces hagámoslo 12. Y de esta manera, esto debería ser fácil para el gato subir a la plataforma. Y se puede ver que la detección de colisiones está funcionando aquí también, por lo que el gato no está cayendo de la plataforma ni a través de la plataforma. Pero si me voy del borde aquí, entonces está cayendo. Bien, hasta ahora tan bien. Pero ahora veamos el problema. Si voy por debajo de la plataforma aquí con un gato y luego salto, vemos que el gato es realmente teletransportado a través de la plataforma Y para explicar eso, esto es bastante fácil porque aquí hacemos este arreglo y, siempre estamos arreglando la y en una dirección, y esto está arriba. Así que siempre en cuanto el gato esté tocando el, el color de fondo aquí, entonces estamos arreglando y subiendo. Y claro, aquí en este caso, esto está mal. Tenemos que bajar aquí. Si el gato está saltando desde abajo contra la plataforma, esto está mal. Entonces lo que tenemos que hacer es arreglar esto aquí. Lo que podríamos hacer es decidir si necesitamos subir o bajar para la corrección para esta fijación aquí comprobando la velocidad y, si la velocidad y está por debajo de cero, entonces podríamos hacer la corrección hacia arriba, y en el otro caso, si es más de cero, entonces podríamos hacer la corrección en la otra dirección. Pero esto lleva a algunos problemas más si consideramos también el movimiento horizontal. Entonces, por ejemplo, el gato ahora puede simplemente subir aquí así. Si puedes ver eso, solo necesito ir a golpear el borde derecho o el borde izquierdo aquí. Entonces el borde derecho del gato está golpeando el borde izquierdo de esta plataforma aquí, y automáticamente va arriba, por así decirlo. Entonces esto también está mal. También hay que considerar aquí el movimiento X, el movimiento en dirección horizontal. Bien, tenemos que cambiar un poco la estrategia aquí. Entonces esta estrategia es que estamos arreglando y en cuanto notemos que El gato está tocando el color, y voy a cambiar la estrategia ahora que voy a ir en pasos en la dirección correcta, en la dirección de velocidad amplia, por supuesto. Y luego por cada píxel, comprobamos si el gato toca el color, y si toca el color, entonces retrocedemos un paso. Entonces esto es un poco diferente. Aquí estamos retrocediendo del gato atascado en el suelo o en la plataforma. Entonces vamos en este caso, vamos subiendo hasta que el gato ya no esté tocando el color, pero quiero cambiarlo para que podamos decir que el gato debe moverse, digamos cinco pasos o tres pasos. Y para cada paso, buscamos el toque, y si es tocar, entonces no estamos haciendo el paso, estamos retrocediendo un paso en la otra dirección. Entonces vamos a ver cómo hacer eso. Primero, tenemos que cambiar esto aquí, repetir hasta que tenga que repetirse. Así que vamos a arrastrar eso aquí lejos. Y ahora vamos bajo control. Arrastramos este año , repetimos hasta. Y ahora tenemos que decir cuántas veces se debe repetir esto y esta es la cantidad de pasos que queremos dar en esta ronda. Tenemos que detener el guión aquí. De lo contrario, es hacer este bucle interminable aquí y no hacer nada en el bucle. Eso no es tan bueno. Entonces, si estás experimentando tartamudeo y todo es lento, entonces es posible que quieras detener el juego aquí Con este código aquí, es posible que obtenga un rendimiento lento de todo el navegador aquí, así que asegúrese de detener el juego entonces. Bien. ¿Cuántas veces debemos repetir esto? El número de veces depende de la velocidad y. Necesitamos cubrir esta distancia, velocidad y. Por ejemplo, menos tres aquí. Por supuesto, aquí no se puede hacer menos tres, pero necesitamos valor absoluto aquí, y hay un bloque para eso. Aquí podemos tomar el valor absoluto de Speed y. Oh, este era el bloque equivocado aquí. Tenemos que hacer repetir esto, repetir diez, y luego tenemos que establecer esto aquí. ¿Qué es absoluto? También puedes elegir diferentes funciones aquí funciones matemáticas. Si la velocidad y es menos, digamos menos tres, esta será tres, y si la velocidad es tres, entonces esta también será tres. Es deshacernos de este menos si hay uno porque no podemos repetir este bucle, claro, menos tres veces, pero necesitamos repetir tres veces. Entonces, ¿qué tenemos que hacer en este bucle? Entonces vamos paso a paso en la dirección de velocidad de velocidad y, y necesitamos hacer una comprobación aquí si velocidad y está por encima de cero o por debajo de cero. Entonces vamos a conseguir esto si entonces y el operador mayor que. Y luego dudamos la velocidad y aquí. Si la velocidad y es mayor que cero, entonces hacemos algo, o si vamos a hacer otra si aquí, Duplicar esta, y luego por debajo si la velocidad y está por debajo de cero, así que esa es esta. Bien. Entonces acelero y está por debajo de cero, entonces hacemos otra cosa. ¿Y qué hacemos? Cambiamos y por uno. Entonces si está por encima de cero, entonces lo cambiamos por uno, si está por debajo de cero, entonces lo cambiamos por menos uno. Y si es cero, entonces no cambiamos y en absoluto. Bien. Entonces esto va en la dirección correcta y y el número correcto de pasos aquí. Entonces esto debería funcionar. Nos hemos deshecho de este año, así que no está funcionando. Entonces el gato se está cayendo por el momento . No es un problema. Esto es porque aquí no lo estamos corrigiendo. Así que sólo nos estamos moviendo en la dirección aquí. Pero también, necesitamos deshacernos de este año, así que cambia y por velocidad y Entonces esto es el doble. Deberíamos sustituir esto por fix y. Así que esto no es sólo en caso de tocar. Entonces esto tenemos que deshacernos tenemos que hacer esto en lugar de este cambio y por velocidad x Así que esto podemos eliminar. Vamos a quitar eso. El nombre de este bloque es, claro, ya no es correcto, así que podemos cambiarlo. Agrégalo y luego muévalo. Podemos simplemente llamarlo movimiento, tal vez. Creo que está bien y asegúrate de que tienes esta casilla de verificación seleccionada, ejecuta sin actualizar la pantalla. Ahora esto es movimiento, y por el momento, solo se mueve en la dirección amplia, pero está bien, y aquí no se moverá al color de fondo. Esto es lo que es el objetivo. Tenemos que verificar, por supuesto, si el gato está tocando el color y luego retroceder. Bien. Entonces ahora en el velop F apenas nos estamos moviendo con velocidad y aquí, y estamos comprobando si esto está por encima de cero o por debajo de cero, y estamos haciendo paso sabio aquí para que por cada paso, podamos comprobar si el sprite está tocando el color Bien, ¿qué hacemos si esto es tocar el color? Este gato está tocando el color. Necesitamos otro si aquí. Pon eso abajo, y luego si toca color, entonces hemos ido demasiado lejos, claro, y necesitamos retroceder, así que tenemos que ir a la ubicación y anterior. Entonces aquí es donde introducimos otra variable, otra variable local. Entonces hagamos una variable solo para este derecho, y lo llamamos viejo valor pus. Entonces este será el viejo valor de pus antes de la mudanza. Entonces, antes de cambiar aquí y, necesitamos recordar la y actual Así que hagamos este conjunto No gravedad, sino valor de pose antiguo, nuestra variable recién creada aquí, y la configuramos en, vamos al movimiento, y luego aquí abajo, tenemos esta posición y. Así que pon eso aquí. Establezca el valor de pose antigua a la posición y. Entonces queremos recordar esta posición y antes de cambiarla. Entonces, o lo cambiamos por uno o por menos uno. Y entonces si estamos sintiendo que el gato está tocando el color, ya es demasiado tarde. Está tocando el color. no queremos, así que volvemos a la vieja posición aquí. Así que vamos a establecer y establecer y a la posición anterior en este caso. R Entonces este es el respaldo. Entonces notamos que estamos tocando el color, y luego restablecemos esto al antiguo valor que establecemos aquí al inicio del bucle de repetición. ¿Bien? Y hay otras cosas que tenemos que hacer. Tenemos que poner el salto, y tenemos que cambiar de vestuario aquí. Así que pon el salto a cero porque ya no estamos saltando porque golpeamos algo, golpeamos la plataforma o el suelo, y cambiamos el disfraz al gato de pie. Entonces intentemos si esto funciona, si esto realmente funciona, y vamos a deshacernos de todas estas variables aquí. Así que esconde todo aquí, y veamos si esto funciona. Bien, hasta ahora funciona parece funcionar. Y el movimiento en la dirección horizontal sigue funcionando, claro, porque no lo hemos cambiado. Y ahora vamos a comprobar si podemos saltar contra esta plataforma. Oh, estamos atascados. Entonces no está funcionando del todo. El gato está atascado aquí. ¿Por qué es eso? Porque no hemos puesto la velocidad y a cero. Entonces esto es lo que ya tenemos aquí. Entonces pongamos eso aquí si toca color, entonces necesitamos establecer la velocidad y a cero. Entonces el gato ya no se mueve, y simplemente se caerá. Vamos a probar eso. Esto es mejor, y esto parece funcionar muy bien. El gato puede saltar muy alto ahora, pero creo que está bien. Siempre podemos ajustar eso aquí con la velocidad establecida y a 12, y tal vez podamos establecerla en 11. Comprobemos eso. Eso también está bien. Pero aún hay un problema. Entonces veamos si podemos saltar aquí. Así que el gato se puede meter por aquí. Se puede ver porque esto es causado por el movimiento horizontal. Entonces tenemos que encargarnos también del movimiento horizontal aquí. Necesitamos reemplazar este cambio x por velocidad x con la misma lógica o similar a la de este año. Entonces tenemos que hacer todo también para la x para la velocidad x y la dirección x. 60. 60 Corrección de movimiento horizontal: Ahora estamos manejando el movimiento x aquí, así que el movimiento Y ya está funcionando. Simplemente copiemos este bucle de repetición aquí con el botón derecho de Musk haz clic en hazlo, y pongámoslo aquí justo debajo del primero Lo que hacemos ahora es simplemente reemplazar todo lo que tiene que ver con y aquí por x. La velocidad y tiene que ser velocidad x. Hagamos esto aquí es la velocidad x, y cambiamos cada ocurrencia aquí. Borramos esta velocidad y aquí. Velocidad x, velocidad x, y aquí también velocidad x, y aquí tenemos que establecer la velocidad x en lugar de la velocidad y. Bien, aquí tenemos que establecer x. Ir al conjunto de movimiento X dos posición antigua. Podemos eliminar, hacer clic derecho sobre este bloque aquí y eliminar bloque. Aquí solo eliminaremos este solo bloque, solo estableceremos y Así que esto ya se ha ido. Ajuste la velocidad x20. Eso ya lo hemos hecho. Cambiar y, cambiar y, necesitamos cambiar eso también, así que cambia x y cambia x Primero, cambiar x por menos uno es el segundo y aquí por uno, y ahora podemos eliminar esto aquí. Pero esto en y también esto. Por supuesto, esto de aquí tiene que ser x posición. Entonces esto es aquí abajo. Establezca el valor de pausa antiguo. Podemos reutilizar esta variable aquí, así que no es problema usar la misma aquí porque siempre la estamos configurando aquí al inicio del bucle. Establecer el valor de pausa anterior dos, x posición, velocidad x mayor que cero, cambio x por uno, velocidad x, menor que cero, cambio x por menos uno. Eso debería estar bien. Bien. Vamos a probar eso. Parece funcionar. Pero un problema más es un poco rápido porque nos hemos ido este año, cambiar x por velocidad x Tenemos que eliminar eso. Así que borra aquí, e intentemos ahora. Bien, entonces esto parece funcionar, e intentemos golpear la plataforma aquí desde un lado. Entonces así es como vemos un problema aquí. Entonces estamos atrapados aquí con nuestro gato con los bigotes. Entonces esto es algo que tenemos que abordar, pero no ahora. Por el momento, podemos ver que no podemos entrar en la plataforma. Pero podemos estar atrapados aquí en el borde. Pero afortunadamente, podemos sortear eso saltando entonces y saltando nos liberará de que esto esté atascado aquí. También puedes ver que nuestro gato no es simétrico. La cola está un poco más a un lado. Si volteamos al gato, entonces tenemos una colisión aquí, entonces tenemos un toque, y esto es un problema, y esto es lo que necesitamos arreglar, y lo arreglaremos con cajas de colisión. Pero por el momento, el movimiento está funcionando. Se mejora. Por lo que no podemos golpear la plataforma desde abajo y tampoco directamente al menos aquí desde un lado. Pero todavía podemos quedarnos atascados aquí, y ese es un problema que tenemos que resolver, y esto lo haremos en el siguiente video. 61. 61 Golpea la caja, no el gato: Entonces ya he insinuado en el último video lo que podemos hacer con respecto a nuestra detección de colisiones para mejorarla Y quiero mostrarte de nuevo el problema que tenemos. Entonces, si salto aquí a la plataforma, se puede ver que podemos quedarnos atrapados aquí con la cabeza, por ejemplo, con la cabeza de un gato. Entonces esto es un problema aquí. Todavía podemos quedarnos atascados, y también con una cola aquí porque el disfraz está volteado o el gato está volteado Y luego después del volteo, la cola está dentro de esta plataforma aquí Entonces está tocando este color específico, y no se puede mover al gato afuera, excepto por lo que está funcionando como saltar aquí en esta posición, entonces esto funciona de nuevo, pero podemos resolver este problema con bastante facilidad. Y lo hacemos con la ayuda de cajas de colisión o cajas de impacto. Vamos a llamarlo hit box, y lo que es un hit box. En nuestro caso, un hit box es otro disfraz, así que necesitamos crear otro disfraz aquí. Vamos a doblicar el primero. Y ahora tenemos un disfraz que será el hit box. Entonces llamémoslo hit box aquí. Bien. Entonces ahora no tenemos la caja. Entonces hacemos una caja con esta herramienta aquí, con una herramienta rectangular, arrastramos una caja aquí en algún lugar de aquí, tal vez, y luego la ponemos en la parte de atrás. Así que presiona aquí atrás, y ahora el gato está por encima de la caja. Bien, ¿cuál es el propósito de este hit box? Primero, deshagámonos del esquema, así que haga clic aquí, y no tenemos el esquema. Bien, esto no es tan importante, pero prefiero tenerlo así. Entonces, ¿cuál es el propósito del hit box? ¿Se debe usar el hit box para hacer la prueba de acierto? Nosotros en nuestro caso, es este color conmovedor. Esta caja se utilizará para probar el color conmovedor, el color del telón de fondo del suelo y los obstáculos aquí y las plataformas. Esta será la caja en la que se prueba la colisión o el toque de color. Esto quiere decir que tenemos que deshacernos del gato aquí, claro. Pero primero, ajustemos un poco la caja aquí. Primero, debe estar centrado. Arrastre eso hacia el centro aquí y debería encajarse en esta cruz aquí con el círculo. Si lo tienes centrado, solo tienes que ajustar aquí, el tamaño. Así que ponlo justo debajo la última línea tal vez de los pies del gato. Y luego aquí, también tenemos que ponerlo en alguna parte de aquí. Entonces en todas partes donde el gato esté tocando el suelo, también debería estar el hit box. Y aquí necesitamos conseguirlo tal vez hasta que llegue a las orejas aquí, así que algo así. Entonces creo que podemos vivir con eso. Podemos probarlo después un poco o ajustarlo después un poco. Pero ahora vamos a deshacernos del gato aquí. Así que selecciona todas las partes del gato y elimóralas. Aquí no los necesitamos. Entonces este es nuestro hit box, y vamos a mover ese disfraz aquí, tal vez hasta el final. No es tan importante, pero prefiero tener los dos fotogramas de animación aquí al principio y luego el hit box. Bien, entonces ahora tenemos un hit box para nuestro gato, y ahora necesitamos usarlo. ¿Cuál es la idea para esto? Entonces esta conmovedora prueba de color aquí es la importante. Para determinar si el gato está tocando el color, el fondo, el suelo, la plataforma. Entonces necesitamos cambiarnos a este disfraz de hit box antes de hacer la prueba, y esto será al inicio de este movimiento definido. Así que cambiemos a nuestro disfraz de hit box, cambiemos de disfraz a hit box. Y luego claro, al final, tenemos que volver a cambiar. Entonces volvamos a cambiar a, digamos, a disfrazar uno. Bien, entonces ya no tenemos este marco de salto aquí, ya este disfraz de salto, pero lo arreglaremos más tarde. Bien, entonces lo que tenemos ahora es Antes de hacer la prueba de acierto, la prueba de colisión, esta prueba de color conmovedor, estamos cambiando a nuestro hit box. Y luego estamos haciendo esta prueba de acierto, esta prueba de colisión o toque con este hit box, y no con un sprite de gato No con un disfraz de gato, al menos. Y luego al final de esta función de este bloque personalizado, estamos volviendo al disfraz de gato normal aquí. ¿Qué significa eso? Significa que el, el jugador no verá ningún hit box aquí porque todo esto se hace sin una actualización de pantalla, así que el jugador no verá este disfraz de hit box, lo cual es bueno porque no queremos que el jugador vea el hit box porque es feo y no es un gato. Entonces intentemos si esto ya cambia algo. Aquí tenemos a nuestro gato. Vamos a saltar un poquito y de inmediato podemos ver que ya no estamos atrapados. Además la cola no se atasca, y todo parece funcionar bien aquí. Además, si vamos al borde de esta plataforma, vemos que inmediatamente nos caemos en cuanto esta pata de aquí sale de la plataforma. Entonces uno más, y luego cae. Así que vamos a echar un vistazo un poco en pantalla más grande aquí. Veamos eso otra vez. Entonces en cuanto esta pierna se sale de la plataforma, entonces el gato cae, lo cual es muy bonito. Y esto es por supuesto, porque tenemos nuestro hit box para las pruebas y ya no el disfraz de gato. Por lo que no se prueba para esta cola, por ejemplo, o para todo lo que está fuera de nuestro hit box. Entonces todavía hay un problema aquí. Tenemos que deshacernos de este disfraz de cambio a disfraz uno porque entonces no tendremos nuestro disfraz de hit box, y necesitamos el disfraz de hit box dentro de este bloque de disfraz aquí, y solo al final, podemos volver al disfraz original al disfraz de gato. Entonces tenemos que sustituir este año y este año por otra cosa. Entonces primero, recordemos qué disfraz teníamos al principio. Entonces para esto, necesitamos una variable, hacer variable para el sprite solo traje viejo. Y lo configuramos al inicio de nuestro bloque personalizado aquí. Establecer traje viejo, y ¿cómo conseguimos el traje actual? Lo conseguimos de aquí el número de vestuario no es lo que queremos. Queremos el nombre del disfraz. Así que el disfraz viejo se establece con el nombre actual del disfraz. Y luego al final, tenemos que volver a ponérselo a este nombre de disfraz. Así que arrastra eso aquí, pon disfraz a disfraz. O no es la elección correcta aquí sino un disfraz viejo. Entonces aquí lo estamos configurando para golpear box, y al final, se pone de nuevo al viejo disfraz. Y ahora para estos dos lugares de aquí, necesitamos cambiar eso a un conjunto conjunto traje viejo, dos, y luego disfraz, uno. Entonces esto hará lo mismo que cambiar disfraz a disfraz uno, pero al final, así que aquí va a ser disfraz uno y ya no el viejo disfraz. Entonces podemos duplicar esto y también hacer eso aquí en lugar de este disfraz de interruptor Bien. Entonces ahora recordamos qué disfraz tenía el gato al principio, y luego estamos reiniciando esto aquí al final Pero estos dos lugares también pueden cambiar el traje viejo o el disfraz al que se restablece. Así que vamos a probarlo aquí. Si sigue funcionando, no debería ser una gran diferencia. Pero ahora, la prueba exitosa debería funcionar siempre con el hit box y ya no con un disfraz de gato. Entonces se puede ver que esto está funcionando muy bien y el gato se cae, y la cola, por ejemplo, pasa por la plataforma, lo cual es muy bonito. Para que podamos cambiar un poco el hit box para que podamos ver cómo funciona esto. Así que ve a hit box y hazlo mucho más pequeño. Entonces algo como esto, tal vez. Y luego empezamos un juego, y vemos que el gato se está hundiendo en el suelo Todavía podemos moverlo, pero está en el suelo. Al menos el disfraz, el disfraz de gato está en el suelo, pero el hit box aquí no lo está Y claro, esto no es una buena idea hacerlo así porque necesitamos que el gato se ponga de pie y no en el suelo, así que reajustemos eso y deshagamos los cambios aquí Vamos a intentarlo de nuevo. Y ahora el gato está realmente tocando la superficie. Bien, entonces ese es el truco del hit box. Yo diría, este es un truco muy importante porque de esta manera podemos hacer las pruebas de golpe, la detección de colisiones mucho mejor que con el disfraz de gato aquí. Y el truco es cambiar el disfraz a hit box, nuestro hit box, y luego cambiarlo de nuevo al final. Y todo dentro de este bloque personalizado es, por supuesto, no renderizar a la pantalla. Entonces no verás el hit box, pero verás el resultado. Y el resultado es que la prueba de acierto está ahora muy mejorada, y el gato no debería quedarse atascado aquí. 62. 62 Puzzle y segunda habitación: Entonces ahora que tenemos el control del jugador en el trabajo aquí, así que vamos a revisarlos nuevamente. Entonces podemos saltar, podemos verificar si hay colisiones, y el gato al menos en este momento, no se queda atascado aquí Así que eso es todo muy bonito. Creo que esto es algo con lo que podemos empezar también. Agrega un rompecabezas para salir esta habitación aquí e ir a la habitación contigua, y también para hacer de esta habitación un poco más desafiante. Entonces necesitamos agregar algunas paredes aquí, tal vez otra plataforma o tal vez dos plataformas aquí y una pequeña joya que el gato necesita recolectar. Y entonces si la captura llega a la gema, por ejemplo, una estrella, entonces la salida se revelará, y luego el gato podrá ir a la habitación contigua. Entonces comencemos con un telón de fondo. Entonces hacemos muros aquí Vamos a copiar este. Selecciona aquí la flecha, y luego esta plataforma aquí, haz una copia de ella, y hacemos una pared a partir de ella. Algo así, tal vez, y luego volvemos a copiar esto y lo ponemos del otro lado. Entonces ahora tenemos dos paredes, y los gatos no pueden escapar. Y tenemos esta plataforma, volvemos a hacer una copia. Hazlo tal vez un poco más pequeño aquí, ponlo por aquí, y luego volvemos a hacer una copia donde estará la estrella. Entonces ahora, creo que lo tenemos. Entonces tenemos que comprobar, claro, si el gato puede llegar a todas las plataformas aquí, Así que creo que esto debería ser posible. Y aquí vemos un problema que el gato no puede saltar más alto que eso. Entonces tal vez deberíamos poner eso un poco más al fondo aquí, bajar y hacer de esto tal vez un salto lejano aquí. Ahora, ahora el gato está cayendo sobre la plataforma aquí. Eso no es bueno, así que hazlo un poco más pequeño. Y ahora el gato está cayendo a un lado. Y vamos a comprobar si esto es razonable. Sí, creo que es muy fácil, pero está bien. Podemos vivir con eso. Y claro, necesitamos ahora la estrella, la gema que el gato necesita recolectar. Entonces hacemos otro sprite aquí. Búsqueda de estrella. Da click en él, y ahora tenemos la estrella. Es un poco demasiado grande, así que hazlo como 40%, y ese es el tamaño correcto, creo. Así que vamos a colocarlo en algún lugar por aquí, y veamos cómo el gato puede manejar esto. Entonces eso es fácil. Eso es fácil, así que eso. Y ahora podríamos recogerlo. Bien. Entonces ahora tenemos que comprobar si el gato toca esta estrella aquí. Y la idea es que si realmente recoge la estrella aquí, entonces aquí la puerta estará abierta o aparecerá para que el gato pueda salir. Así que vamos a pintar otro sprite. Entonces podemos hacer el rectángulo aquí. Algo así demasiado grande, claro. Entonces hagámoslo más pequeño como 20. Sí, eso debería estar bien. Pero no podemos hacerlo de este color porque tiene que ser un color de paso para que la pistola gato pueda pasar por la puerta a la habitación contigua. Entonces hagamos un color parduzco. Algo así. Creo que está bien. Y ahora vamos a posicionarlo. Así que vamos a mover eso aquí. Sí, creo que está bien. Echemos un vistazo en una pantalla grande. No. No está bien porque aquí tenemos color verde. Aún así, tenemos que moverlo un poco hacia la izquierda. Así que vamos a revisar de nuevo, no, aún. Entonces tal vez algo así. Sí. Hagámoslo un poco más pequeño también. Comprobemos de nuevo. Sí, creo que eso debería funcionar. Bien. Entonces veamos si el gato puede caminar por la tienda. Sí, yo trabajo. Bueno, creo que accidentalmente he movido esta puerta de aquí. Vamos a ponerlo de nuevo. Bien. Comprobemos de nuevo. Si el gato puede pasar la puerta. Sí. Está bien. Ahora, por supuesto, la puerta necesita estar oculta cuando comience el juego. Así que pongamos eso aquí cuando lag clicó y luego escondamos. Entonces cuando empezamos un juego, la puerta no está ahí. Por lo que necesita ser revelado coleccionando esta estrella aquí. Bien, entonces, ¿cómo verificamos la colisión del gato con la estrella aquí? Eso es fácil. Ya tenemos esto para siempre. Nuestro bucle de juego, y aquí podemos verificar la colisión. Así que vamos a conseguir un si aquí. Y tenemos que sentir el tacto, no tocar el puntero del ratón sino tocar otro sprite, y este será Sr, claro Entonces, si el gato toca la estrella, ¿entonces qué? Entonces tenemos que revelar este sprite aquí. Podemos cambiarle el nombre de la puerta, y tenemos que revelar la puerta. ¿Y cómo podemos hacer eso? Podemos comunicarnos con otros sprites enviando mensajes, claro Entonces vamos a eventos. Y luego cuando recibo y necesitamos definir un mensaje, claro. Pero cuando reciba este nuevo mensaje, entonces la puerta puede mostrarse. Y aquí, claro, tenemos que mandar el mensaje. Entonces difundido, llamémoslo nuevo mensaje aquí. Vamos a llamarlo show exit. Para que aquí podamos recibir esta salida del espectáculo y mostrar la puerta. Bien, entonces esto tiene que entrar aquí en esto para velop. Entonces, si toca estrella, luego emite salida del programa, y luego la puerta así se muestra. Comprobemos esto. Voy aquí arriba a la estrella, y está funcionando. Ahora, el gato teóricamente podría ir a la habitación contigua. Pero, la estrella aquí tiene que desaparecer, claro, porque de lo contrario el gato no la estará coleccionando. Entonces necesitamos mandar otro mensaje aquí a la estrella. O tal vez podamos usar el mismo mensaje por ahora. Creo que eso también está bien. Entonces, si esta salida del espectáculo se recibe aquí, primero, mostremos a la estrella al inicio para restablecer todo al inicio. Y entonces podremos recibir este mensaje mostrar salida. Y entonces podemos esconder la estrella. Bien, así que probándolo. Asegúrate de probar siempre tu lógica. Entonces, en cuanto tengamos algo nuevo, un nuevo mensaje, o una nueva reacción a tu mensaje, algo así, necesitas probarlo. Entonces esto funciona. Esta estrella ha desaparecido, y los gatos pueden pasar por la puerta. Bien, bien. Entonces, la habitación contigua debería ser otro telón de fondo. Entonces por eso necesitamos dibujar uno, y podemos dudar el primero y simplemente cambiar un poco aquí Entonces primero, necesitamos esta puerta, otra vez. Entonces vayamos ahí, escojamos la flecha aquí, y luego cópiala, y luego vayamos a telones de fondo Nuevamente, el segundo telón de fondo, y luego pegar esto. Puedes usar este botón aquí para pegarlo o controlarlo o comandar V. Y claro, tenemos que redimensionarlo Aquí es demasiado grande. Hagámoslo más pequeño, más pequeño, más pequeño. Aún demasiado grande, tal vez algo como esto. Bien. Entonces pongamos eso aquí. Esta será la entrada. Creo que está bien, y aquí va a entrar el gato. Y para ir a la habitación contigua, necesitamos cambiar de telón de fondo, claro, aquí vamos de nuevo al código del gato, y esto lo podemos hacer aquí si se toca la puerta tal vez otra si aquí, si entonces sintiendo, tocando, puerta, entonces podemos cambiar de telón de fondo, así que ve a miradas Cambiar telón de fondo, y luego telón de fondo dos. Y podemos poner esto, podemos poner aquí, y entonces al menos el telón de fondo debería cambiar aquí. Vamos a intentarlo de nuevo, y vemos que tenemos que restablecer el telón de fondo aquí, claro. Así que ve al escenario aquí y cuando Black hizo clic, podemos cambiar de telón de fondo aquí dos, telón de fondo uno Bien. Entonces ahora estamos de vuelta en el telón de fondo uno. Vamos aquí a la estrella, y luego podemos salir de la habitación. Y estamos en la segunda habitación. Por supuesto, tenemos que esconder la puerta aquí. De nuevo, así que vayamos a la puerta cuando reciba la habitación contigua. No hemos tenido este mensaje hasta ahora, así que necesitamos crearlo. Así que difunde aquí. Cambiamos el telón de fondo, pero antes de que podamos Hacer un nuevo mensaje y enviar este mensaje aquí al lado habitación para que la puerta sepa que puede esconderse habitación de al lado y luego esconderse y la puerta debe desaparecer. Vamos a probarlo de nuevo. Y la puerta se ha ido, y solo esta puerta está ahí, pero esto es parte del telón de fondo, así que no podemos esconder eso y no tenemos que hacerlo. Por ahora hay una cosa más. Tenemos que restablecer el gato aquí a esta posición. Así que pongámoslo tal vez en algún lugar de aquí. Entonces la posición x es 208 -208, restablecemos la t dos -208 Vayamos al set de movimiento dos, ahora vamos a probarlo. Oye, ahí está el paso de la puerta, y luego empezamos aquí, lo cual es correcto. No podemos volver atrás, claro, y no tenemos que hacerlo. Y aquí, esto es los mismos obstáculos que están aquí y la misma plataforma. Tenemos que cambiar eso, por supuesto, para que sea un rompecabezas diferente aquí. Pero por ahora eso funcionó. Así que ahora tenemos dos habitaciones. El primero tiene este rompecabezas muy fácil. El gato sólo tiene que conseguir la estrella y luego salir de la habitación por la puerta. Eso es. Y la segunda habitación puede ser más difícil de resolver. A lo mejor eso depende de ti. Lo que haces aquí. Creo que aquí tienes la capacidad de hacer acertijos más duros. Entonces ya sabemos manejar colisiones con sprites, y de esta manera, se puede hacer mucho lo mejor aquí, hay que recoger dos estrellas antes de que aparezca la puerta para salir de la habitación, o tal vez hay que saltar sobre un interruptor o algo así para revelar la puerta de al lado, algo así. Pero creo que tenemos una plataforma agradable, sencilla, pero agradable que puedes extender. Y esto es algo sobre lo que puedes construir y hacer tus propios juegos con él. Por supuesto, esto no es perfecto. Entonces, por ejemplo, La animación del gato no es tan agradable. Y aquí no tiene animación si estás caminando o corriendo, entonces solo está cambiando de dirección, pero nada más. Entonces esto es por supuesto, algo que puedes agregar aquí. No tenemos una animación real con animación cuadro por cuadro. Apenas estamos cambiando de un cuadro a otro. Entonces un disfraz para el disfraz de salto. Eso es. Pero ya has visto cómo hacerlo con el juego Avis Adventure, así que puedes hacer lo mismo aquí. Y como estamos usando este hit box aquí, así que recuerda, cambiamos a este hit box y hacemos las pruebas de hit, no hay problema con los disfraces de animación. Siempre se probará este hit box, y no importa qué disfraz tengas aquí y qué animación uses aquí. Bien, así que eso es todo para este sencillo juego de saltar y correr, esta plataforma o juego, y espero que te diviertas extendiéndolo y elaborando quizás más niveles aquí, más acertijos, y tal vez tengas algunos enemigos, y los enemigos están obstaculizando al gato para que recoja todas las estrellas, o tal vez también puedas usar potenciadores para hacer que el gato use una fuerza de salto más grande, algo así Eso está todo al alcance. Creo que tienes las herramientas para hacerlo, y espero que te diviertas haciéndolo.