Cómo crear un tirador espacial en Godot | Michael Mcguire | Skillshare

Velocidad de reproducción


1.0x


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

Cómo crear un tirador espacial en Godot

teacher avatar Michael Mcguire, Author | Programmer

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

      0:27

    • 2.

      Dónde descargar Godot

      1:19

    • 3.

      Configuración de proyectos

      2:31

    • 4.

      Cómo desplazar fondo

      13:33

    • 5.

      Multiplicador de ventanas

      4:36

    • 6.

      Configuración de jugadores

      4:27

    • 7.

      Movimiento de jugadores

      11:06

    • 8.

      Animación de jugadores

      9:56

    • 9.

      Movimiento Diagonal

      3:23

    • 10.

      Barreras de juegos

      4:57

    • 11.

      Habilidad de tiro

      16:46

    • 12.

      Cómo crear potencias

      2:38

    • 13.

      Animar potencias

      6:03

    • 14.

      Potencia hacia el Spawner

      17:56

    • 15.

      Activación de poder

      15:43

    • 16.

      Escudos

      11:23

    • 17.

      Multi Shot

      6:59

    • 18.

      Pequeños cambios

      2:26

    • 19.

      Configuración del enemigo

      5:09

    • 20.

      Tiro con enemigos

      16:37

    • 21.

      Fuga de memoria

      6:13

    • 22.

      Movimiento vertical

      3:40

    • 23.

      Enemy Spawner

      12:01

    • 24.

      Golpear balas

      5:58

    • 25.

      Salud y daños por escudos

      6:53

    • 26.

      Ganancia de la salud

      3:36

    • 27.

      Deja de dispararse mutuamente

      5:01

    • 28.

      Animaciones de Spawn

      4:46

    • 29.

      Creación de la interfaz de usuario

      8:41

    • 30.

      Actualización de la interfaz de usuario

      10:32

    • 31.

      Explosión de partículas

      12:12

    • 32.

      Cómo acabar el juego

      7:41

  • --
  • 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.

74

Estudiantes

1

Proyectos

Acerca de esta clase

Aprende a crear juegos en el motor de juegos de Godot utilizando un lenguaje de programación similar a la python-like

GDScript.In este curso, crearemos un juego de Space Shooter que es multiplataforma para MacOS, Windows, Linux, Android, IOS o incluso se incrustan en un

browser.While que en tu viaje de desarrollo de juegos, obtendrás las habilidades y la capacidad para crear el Space Shooter que desees.

****Si no tienes experiencia en codificar o quieres familiarizarte con el idioma, se recomienda mi curso sobre el aprendizaje del lenguaje GDscript para ayudar a aprender, al menos, la terminología y estructura de códigos


basic

  • Las capas y máscaras

  • Para crear creadores

  • Grupos de uso

  • Guiones y objetos reutilizables

  • Gestión de inventario

  • Reimportación de activos con diferentes configuraciones

  • La importancia de la organización de archivos

    Y más...


    ****Si no tienes experiencia en codificar o quieres familiarizarte con el idioma, se recomienda mi curso sobre el aprendizaje del lenguaje de GDscript para ayudar a aprender, por lo menos, la terminología y estructura de códigos basic

    proporciona un enorme conjunto de herramientas comunes, para que solo puedas centrarte en hacer tu juego sin reinventar la rueda.

    Godot es completamente libre y de código abierto bajo la licencia de MIT muy permisiva. No se adhieren cuerdas, no hay regalías, nada. Tu juego es tuyo, hasta la última línea de código del motor.

Conoce a tu profesor(a)

Teacher Profile Image

Michael Mcguire

Author | Programmer

Profesor(a)
Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 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. Introducción: Crear un shooter espacial es una forma clásica de introducirse en la creación de videojuegos. En este curso, vamos a seguir adelante y echar un vistazo a algunas mecánicas diferentes, incluyendo un fondo de desplazamiento. Clásico para juegos como este, tener diferentes pastillas que podemos conseguir una activación, vamos a crear nuestras propias pequeñas explosiones usando el sistema de partículas. Vamos a crear un sistema multi shot para seguir adelante y unirnos y aprender a hacer un shooter espacial hoy mismo. 2. Dónde descargar Godot: Muy bien, bienvenidos todos. Ysi no tienes el motor para crear nuestro juego aquí hoy, entonces puedes dirigirte a Godot Engine.org y puedes recogerlo directamente desde el sitio web seleccionando la pestaña Descargar aquí en el superior. Solo necesitas la versión estándar a seguir junto con este curso. La versión mono es compatible con C-sharp. Sin embargo, no estaremos usando C-sharp, aunque puedes recogerlo. No hay necesidad de usarlo. No usaría la versión estándar, simplemente bien. Este motor está disponible en Linux, Mac y Windows, así como disponible directamente dentro del navegador web. Si lo sabes, ¿cómo sacaste la pala? Ya podemos ver, solo podemos desplazarnos un poco por aquí y ahí tienes tus instrucciones de primicia. Al recoger eso. También puedes construir esto directamente desde el repositorio de GitHub. Y como puedes ver ahí, también hay una página en la que puedes recogerla, así como la página de steam en la que podrás recogerla. Dondequiera que decidas obtenerlo depende completamente de ti. De cualquier manera. Sólo asegúrate de recogerlo. Y te veré en la siguiente donde podemos empezar. 3. Configuración de proyectos: De acuerdo, así que una vez que hayas abierto el motor por primera vez, te encontrarás con esta pantalla. Por supuesto, no tendrás nada dentro de los proyectos locales a menos que ya hayas hecho cosas aquí antes. Pero lo que vamos a hacer es darle este botón Nuevo Proyecto aquí. Puedes seguir adelante y darle un nombre a tu proyecto y navegar donde quieras que vaya. Y cuando lo hagas, puedes seguir adelante y simplemente presionar el botón Crear carpeta. Y se creará un nuevo directorio. Por ejemplo, mi juego demo. Si presiono Crear carpeta, se comercializará. Puedes usar GL ES 3 o 2. No debería hacer ninguna diferencia en este proyecto específico. Y si estás viendo esto en el futuro, vas a tener que opciones de Vulcan aquí. Tampoco de lo que realmente va a hacer diferencia en cuanto a cuál seleccionamos aquí. Entonces para efectos de esto, sólo voy a dejarlo en OpenGL de tres puntos. Oh, ya veo. No hay razón para cambiarlo. Y yo sólo voy a golpear a Cancel ya. Ten una vacía creada aquí. Para que podamos abrir eso. De acuerdo, así que ahora que tenemos un proyecto abierto, ahora que tenemos nuestro proyecto abierto, podemos seguir adelante y podemos dirigirnos a la pestaña del proyecto aquí en la parte superior y podemos obtener la configuración de nuestro proyecto. Entonces lo que vamos a hacer es que vamos a seguir adelante y dentro de la Config, dentro de la aplicación, vamos a seleccionar para usar custom dare. Y de esa manera podremos tener nuestros logs saliendo a una carpeta que tiene nuestro nombre de juego, que se verá un poco más profesional. Si un usuario necesita acceder a los logs por cualquier motivo, si desea darle un nombre personalizado, puede hacerlo aquí. No me voy a molestar. Estoy bien con solo dejarlo como nombre de mi proyecto. Ahora si nos desplazamos hacia abajo, podemos buscar la sección llamada display e ir dentro de ventana. Ahora por este fondo que tengo aquí, que lo estaremos usando como T2 y T4 por 400. Entonces eso es a lo que voy a poner nuestra ventana. Ahora ajustaremos el tamaño real de esto más adelante. Pero por ahora, esto es en lo que estamos poniendo nuestra ventana, 224 por 400. Vamos a configurar, asegurarnos de que esté en nuestra mano o configurarlo en retrato e infraestructura. Podemos configurarlo en 2D y el aspecto a mantener. Y ahora nuestro proyecto está listo para ir y podemos saltar al siguiente video y empezar realmente a hacer las cosas. 4. Cómo desplazar fondo: De acuerdo, así que lo primero que vamos a hacer es configurar nuestro fondo de desplazamiento para nuestro tirador espacial. Ya que nuestro jugador no va a hacer ningún movimiento real en cuanto a recorrer, como se vería en un juego de plataformas. En un shooter espacial, el fondo en realidad se mueve y el jugador permanece estacionario y se mueve alrededor de la pantalla visible. Entonces para hacer esto, vas a tomar las texturas que he incluido en este curso. Y puedes seguir adelante y traerlos a tu proyecto. Por el momento, sólo tengo una carpeta sprites aquí. Y tengo mis antecedentes, Brendan. Y tengo una carpeta aquí llamada escenas donde voy a guardar todas mis escenas individuales que creamos aquí. El primero que vamos a crear se llamará Mundo. Eso iba a golpear escena 2D aquí en el nodo superior o raíz. Y voy a seguir adelante y cambiar el nombre del mundo mío. Y luego puedes seguir adelante hasta escena o aquí arriba y Guardar. O puedes presionar Control C o lo siento, Control S o Control Shift S para guardar tu escena, voy a cerrar esta porque tengo una vacía creada aquí. Y ahí vamos. Deberías tenerla parecida a esto. Así debe verse nuestro proyecto. Y puedes ver este tenue contorno azul aquí. Ese es básicamente nuestro Canvas. Esto es lo que se va a renderizar en nuestra ventana. Por lo que cualquier cosa dentro de este rectángulo azul será visible. Cualquier cosa fuera de ella no lo hará. Entonces voy a seguir adelante y traer mi fondo dot PNG. Ahora podemos simplemente arrastrarlo y simplemente podemos soltarlo así. En nuestro caso, ya que va a funcionar como un sprite, está perfectamente bien que sólo lo arrastremos adentro. En algunos casos, es posible que quieras presionar el botón más aquí arriba y agregar lo que sea que quieras buscar. En este caso, fue un raspón. Y luego puedes simplemente arrastrar la imagen a la derecha en la ranura de textura aquí a la derecha. Ahora me voy a asegurar que esto es propiedades de configuración aquí. Voy a mover el mío hacia la izquierda, uno abajo uno. De esa manera llena toda mi pantalla. Y ahora cuando presiono este botón Reproducir aquí arriba, el botón de escena de reproducción en el atajo de Windows es F. Como pueden ver, voy a darle a eso y ahora debería tener mi propia ventanita y ver esto fondo retomó todo el asunto. Ahora sí dije que ajustaremos este tamaño de ventana más adelante porque de nuevo, dependiendo de tu monitor, esto puede parecer enorme o esto puede parecer extremadamente minúsculo. Vamos, subí mi ventana hasta aquí en la pantalla. Entonces lo que se ve justo por aquí en nuestra cajita roja, lo siento, no es una pequeña vista de caja roja. Que ella aquí, esto ahora es exactamente lo que vemos en nuestros juegos. Esta apagada a la derecha de ahí. Entonces, como ves para ti, esto podría ser súper pequeño o esto podría ser extremadamente grande dependiendo de la resolución de tus monitores. Eso no lo voy a saber. Pero cuando cambiemos el tamaño de nuestra ventana, podrás ajustar los valores allí. Pero por ahora podemos ver que cubre toda nuestra ventana. Y se ve bien. Es que no se mueve. Entonces lo que vamos a hacer es que necesitamos realmente crear nuestro movimiento para esto. Y todo lo que va a hacer es simplemente moverse hacia abajo. Entonces vamos a crear un guión. Ahora puede hacer clic derecho en nuestro fondo aquí y seleccionar dónde, dónde está nuestra tarea uno justo ahí, guión adjunto. O con ella seleccionada, solo puedes presionar el botón de script adjunto aquí arriba, que es la forma en que normalmente lo hago. De cualquier manera te traerán a colación con este menú aquí. Vamos a usar el lenguaje de script GD. Como ves por defecto, tenemos script visual, script kiddies y nativo. Y si tienes el mono versus, también tendrías una opción C-sharp ahí dentro. Pero para este curso, de nuevo, solo estamos usando el script GD que seleccionó, hereda de un sprite porque ese es el tipo que es nuestro fondo, la plantilla. Podemos simplemente dejarlo en default. No necesitamos ningún script incorporado. Y nuestro camino dentro de nuestras escenas, no queremos eso. Queremos mantener las cosas organizadas. Entonces vamos a crear una nueva carpeta llamada scripts. Y ahí es donde vamos a pegar nuestro guión de fondo y golpear Crear. De acuerdo, entonces aquí tenemos nuestras variables. Y vamos a seguir adelante y crear uno para la velocidad de desplazamiento. Ahora usaremos dos puntos iguales y podemos establecer eso en un número. Voy a poner esto a diez por ahora y ya veremos qué tan bien funciona eso. No vamos a necesitar la función lista que vemos aquí. Y como ves lo que la nota aquí, esto se llama en cuanto son la nota entra en escena por primera vez. Eso no es lo que queremos hacer. Eso va a hacer algo. Sólouna vez. En realidad vamos a usar la función de proceso. Entonces eso es algo que puede suceder continuamente con ambas líneas seleccionadas aquí. Yo sólo voy a golpear Control K para descomentar esos hacia fuera. Y podemos eliminar la función de pase aquí. Y podemos llamar auto posición de punto. Tengo y Porque y va a ser el arriba y abajo. Y podemos poner eso a. Ahora siempre me confundo esto en si positivo es arriba o abajo o menos arriba y abajo, ¿verdad? Entonces vamos a ver, vamos a hacer más iguales y ya veremos cómo funciona eso. Voy a establecer que más es igual a nuestra velocidad de desplazamiento. De acuerdo, vamos a seguir adelante y poner a prueba nuestra escena. Y eso se mueve hacia abajo para, eso se está moviendo súper rápido. Entonces lo primero que voy a hacer es multiplicar o desplazar la velocidad aquí por delta. Y esto ayudará a que nuestro juego sea independiente del marco también. Entonces, independientemente de cuántos frames tenga nuestro jugador, cuáles debemos encontrar con este siendo un tipo de juego realmente de la vieja escuela? Y los gráficos no siendo todos demasiado exigentes aquí. Pero de cualquier manera estamos haciendo esto, esto debería mantenerlo desplazándose en una buena cantidad suave. Independientemente. Si echamos un vistazo, como podemos ver, esto puede moverse mucho más lento también, razón por la cual voy a ajustar esta opción antes de tocar mi pantalla. Ahora bien, lo rápido que quieras que se mueva va a ser completamente de ti. Va a ser completamente de ti y de tus preferencias. Creo que quiero frenar un poco la mía. Probemos nueve o un poco más extremo. Vamos a tratar de cortar, cortarlo por la mitad. Nos vemos aquí a las cinco. De acuerdo, creo, creo que me gustan las cinco. Entonces creo que con eso me voy a ir. Y ahora lo que necesitamos es nuestra imagen. En realidad resecas. Ya ves cuando va todo el camino hacia abajo, se ha ido. Entonces lo que tenemos que hacer es que, después de establecer nuestra posición, podemos hacer. Y si comprueba aquí, podríamos comprobar si self dot session dot y. podríamos comprobar si es mayor que un número establecido. En este caso, el número sería 400. Diga mayor o igual a 400. No obstante, si tomamos nota aquí, las notas cierran eso apagado para eliminar el error. Si tomamos nota, notamos que nuestra posición está en realidad en el centro de nuestra imagen. Entonces si eso se va a pasar 400, entonces todavía vamos a ver imagen de media parte. Entonces necesitamos sumar la mitad de eso en o la mitad de nuestra imagen en eso. Entonces en este caso van a ser 600. Y todo lo que vamos a hacer es que vamos a establecer la posición de y de nuevo a lo que es actualmente, que se puede dar clic en fondo y se puede conseguir eso derecho en el inspector. Pero como sé que eso está en medio de eso deberían ser 200. Y si entro y echo un vistazo transformo, mi y definitivamente está en 200. Entonces por puramente por comprobar que esto está funcionando, voy a cambiar mi dulce a 15. Si echamos un vistazo, se desplaza hacia abajo sólo un poco demasiado lento, Vamos a duplicar eso hasta 30 para probar. Y podemos ver que se mueve hacia abajo y cuanto llegue a la parte inferior completa de la pantalla, debería estar justo de vuelta en la parte superior. Y simplemente seguir desplazándose hacia abajo. Aquí vamos. Aquí vamos. Entonces ahora el problema que tenemos aquí es obviamente podemos ver la imagen o la falta de una imagen detrás de ella. Y obviamente pudimos ver que esta imagen termina. Entonces esto sin duda es un problema. Por lo que necesitamos modificar algunas de estas opciones. Y lo que vamos a hacer es que vamos a establecer esto a, vamos a crear una nueva variable llamada Vamos a establecer esto para restablecer. ¿ Cómo lo llamamos? ¿ Restablecer? Llamémoslo reset scroll. Diré menos igual, ponlo en 0. Ahora note que estoy usando export var aquí. Y si estás viendo esto en el futuro, tal vez usando la versión 4.01 de los cambios que necesitarás hacer aquí es en realidad poner esto en signo antes de exportar. Pero si usas la versión tres, no vas a necesitar eso. ¿ Qué es eso? Lo que eso va a hacer es fondo húmedo seleccionado. Se puede ver encima en el lado derecho, podemos cambiar el número de este. Ahora para nuestros detalles. Necesitamos 600 para esta específica. Entonces podemos establecer esto, nuestra posición y si es mayor o igual a. Restablecer scroll. De esta manera desde su coordenada x aquí, podemos usar el mismo script en otro que puede tener números completamente diferentes. Para que podamos hacer otra para exportar barra, iniciar scroll. Y con esto podemos establecer la posición de partida, que es de 200 para nosotros aquí. Y llene esto reemplazando en nuestro código. De acuerdo, ahí vamos. Si lo tienes, ¿tienes algún error que surja sobre un nodo? adelante y presionemos el botón de stop en la parte superior y lo abramos de nuevo, o volvamos a reproducir la escena. Y deberías ver que sigue funcionando perfectamente bien . Lo cual es genial. Porque ahora podemos sumar números completamente diferentes con un segundo aquí. Entonces voy a seguir adelante y seleccionar mi fondo pulsa Control D para duplicarlo. Y estoy moviendo mi segundo justo arriba arriba. Simplemente me aseguraré de que esto esté perfectamente configurado para que no tengamos nada mostrando en el medio. Y ahora sólo podemos modificar cuáles son nuestros números aquí. Por lo que nuestra posición de partida debería ser menos 200. Y nuestro scroll de reinicio, deberíamos tener un menos allí. Sería positivo 200 posiblemente. Pero ahora si seguimos adelante y ejecutamos esto, deberíamos ver solo parecerse a una imagen continua. Y cuando se restaure, ni siquiera nos vamos a dar cuenta porque todo va a estar perfectamente alineado. Por lo que siempre va a parecer un pergamino constante. Ahí vamos. Ahora tenemos nuestro fondo de desplazamiento. De nuevo, solo sigue ahí adentro y velocidad más débil a lo que te gustaría. Y si te estás preguntando por qué no estamos exportando nuestra velocidad, simplemente porque no necesitamos cambiar el valor de velocidad para nuestros dos orígenes. Simplemente podemos dejar esto como siendo el mismo número. Entonces podemos bajar aquí y podemos cambiarlo a cinco ahora. O si querías usar y, o 20, lo que quieras usar para tu juego. Ya me ves entrar y todo funciona perfectamente bien. Ahora tenemos un fondo de desplazamiento para nuestro shooter espacial. 5. Multiplicador de ventanas: De acuerdo, en este video, sólo nos debe llevar un hueso que tiene que ser bastante corto. Simplemente vamos a ajustar tamaño de nuestra ventana ahora para que podamos tener que sacar eso del camino ahora en lugar de volver y abordarlo más tarde. Entonces lo que vamos a hacer es meter esto dentro de un guión global. Ahora bien, esto también se puede referir como una carga automática o un singleton. Todo depende del entorno en el que te encuentres y con quién estés hablando. Pero todos generalmente se consideran lo mismo. Estamos justo, todo depende de verdad, realmente como el singleton va a estar en un patrón de diseño. Un global es algo a lo que se refiere mucho. Y aquí se llaman préstamos para automóviles. Pero lo que voy a hacer es que voy a bajar a mi biosistema aquí. Seleccione scripts, haga clic con el botón derecho en él y seleccione Nuevo guión. Y como este es un guión global, sólo voy a seguir adelante y llamar al mío global. Golpea Crear. Voy a subir aquí a proyectar, ajustes de proyecto. Entra en la pestaña de carga automática, rutear o abrir ruta de archivo. Seleccionemos nuestro guión global. Presiona el botón Agregar, y ahora podrás ver el script que se está cargando. Está habilitada, lo que significa que está activa. Y el nombre que vemos aquí, puedes entrar aquí y puedes cambiar eso si quieres. Voy a dejar el mío como en desacuerdo la palabra global y esa palabra, ese nombre es como vamos a acceder a este guión más adelante. Si alguna vez necesitábamos acceder a algo dentro de esto, si se trata de variables son otras funciones. Entonces lo que vamos a hacer es que sólo vamos a usar la función ready aquí. Y podemos seguir adelante y configurar OS dot window screen un tamaño de ventana. El tamaño de nuestra ventana es igual al tamaño de nuestra ventana de puntos del sistema operativo. Y podemos establecer esto a cualquiera que sea nuestro multiplicador. Si lo desea, puede subir aquí y crear una variable para el multiplicador de tamaño. Y la razón por la que estamos poniendo esto con dos puntos es igual. Si te estás preguntando, en lugar de solo usar un signo igual, como ves aquí, que también es válido. Pero usando sólo los iguales aquí, lo va a establecer en dos. Sin embargo, si con los dos puntos es igual aquí, también lo está estableciendo al apretado en que dos es un entero. Entonces sería lo mismo que si fuéramos así. Sólo es donde harían esto escribiendo lección con un int, no es terrible, pero a veces puedes tener algo realmente largo como diccionario. Y esto es realmente acorta ese todo, acorta todo eso hasta solo comiencen dos personajes aquí. Lo estamos configurando a dos, además de declarar el tipo como lo que sea que sea dos. Entonces con esto, si ejecutamos esto, veremos ahora que se abre nuestra ventana. Y ahora tengo que redimensionar esto aquí. Pero ahora veo que se abre. Nuestra ventana es el doble de tamaño, lo que dependiendo de tu pantalla de nuevo, esto podría ser mucho más fácil ver lo que está pasando y ser mucho más jugable para ti. Pero ahora puedes entrar y él solo está cambiando ese tamaño de multiplicador, lo que tú quieras. Entonces si quieres hacerlo más pequeño, tú Doug 0.75. Si quisieras, si estás encendido como tal vez sea pantalla de 720 P. O si estás en unas pantallas de Fourier, puedes aumentar este multiplicador a tal vez un multiplicador de cuatro veces para conseguir algo mucho más grande. Y también estamos manteniendo esto, la resolución y viendo exactamente lo que hay aquí y no movernos fuera de nuestra caja. Recuerda, debido a nuestro ajuste aquí, estirar el modo al tener el modo en 2D, configurando nuestro aspecto para que se mantenga. Muy bien. Entonces ahora que tenemos eso funcionando en todo momento, nuestras ventanas se ponen y pasamos a algunas cosas más interesantes. 6. Configuración de jugadores: De acuerdo, sigamos adelante y obtengamos la configuración de nuestro jugador. Entonces lo primero que tenemos que hacer es crear una escena totalmente nueva. Por lo que puedes hacer eso pulsando el botón más arriba aquí. Y en lugar de crear un nodo normal a D como lo hicimos para el mundo, ya que este va a ser un jugador, queremos ser un cuerpo cinemático 2D, así podemos golpear el otro nodo aquí. Y podríamos simplemente teclear cinemática y podemos compartirla ahí. Cuerpo cinemático TD. Adelante y selecciona eso. Y seguí adelante y renombré a mi jugador y lo guardé. Una vez que hagas eso, debería verse como lo siguiente. Escucha la palabra triángulo amarillo de la madre. Seguiremos adelante y resolveremos eso en un momento. Solo vamos a decirnos que no tenemos ninguna, aún no tenemos nuestra configuración de área de colisión. Entonces como un jugador no sabe aplicar ninguna física. Lo primero que quiero que hagas es si nuestro jugador está borroso y los suministros nuevamente a tu fondo también. Entonces lo traigo aquí. Se puede ver que la mía no está borrosa. Apagé mis filtros, pero si lo es, puedes seguir adelante y seleccionarlo aquí abajo en el sistema de archivos. Sube aquí a la pestaña de importación en la parte superior izquierda. Y te darás cuenta de filtrar aquí, comprobar y encenderlo, apagarlo e importar. De lo contrario, si está encendido, sangrará borroso así. Lo cual para algunos juegos podría estar bien. Pero para el pixel art, esto es terrible. Y volverás a ver la diferencia aquí ya que lo apago y vuelvo a presionar el botón de volver a importar. Hace una gran diferencia en el pixel art. Así que asegúrate de tener eso apagado o cada textura que usamos en este proyecto. Así que solo voy a borrar eso de aquí, ya que no es así como en realidad vamos a usar esto. Y eso es todo. No quiero tener que preocuparme por colocarlo en el lugar correcto. Entonces lo que voy a hacer ahora es seleccionar a mi jugador. Voy a darle a este botón Plus y obtener el sprite. Y ahora se va a quedar encerrado aquí mismo en el medio donde debería estar. Voy a agarrar mi hoja de sprite y arrastrarla a la derecha en la ranura de textura de mi pantalla. Ahora hay muchas formas en que puedes hacer una animación. Y en este caso, tengo un roto para cada línea. Para que podamos ver en la primera línea ahí, tenemos nuestra animación ociosa donde solo estamos un poco como volar rectos. Y luego nuestras siguientes dos líneas ahí, siguientes dos filas estaban girando a izquierda y derecha. Entonces para que podamos usar esto en un sprite normal para una hoja de cálculo. Vamos a entrar en esta pestaña de animación aquí. Y vamos a poner ocho marcos, que es el horizontal a dos porque tenemos dos columnas. Y luego los marcos verticales tenemos tres filas. Entonces dije que tres. Y ahora tenemos nuestro primero y podrías cambiar entre ellos usando el botón del cerebro aquí, como ves. Y así es básicamente como vamos a trabajar con creación de una capa de animación. Posteriormente. Por ahora, todavía tenemos aquí nuestro triángulo amarillo. Entonces sigamos adelante y seleccionemos de nuevo a nuestro jugador. El plus, traer un polígono de colisión, lo siento, yo colisión forma. Una forma básica nos irá bien aquí. Y sólo podemos usar un rectángulo. Puedes seguir adelante y encajar esto como quieras a tu jugador. Voy a seguir adelante y sólo extender un poco mis notas así. Y voy a dejar la propina fuera la propina me está bien. De acuerdo. Entonces lo último que vamos a usar aquí es donde necesitamos, lo vamos a necesitar. Entoncessigamos adelante. Agregaremos otra cosa a nuestro jugador aquí. Y este será el jugador de animación. A qué se va, donde vamos a terminar creando animaciones y reproduciéndolas desde durante ciertas instancias que las necesitamos. Muy bien, así que eso lo hará por la creación del jugador y la configuración del jugador aquí. A continuación, vamos a seguir adelante y saltar a conseguir la configuración de los movimientos. 7. Movimiento de jugadores: De acuerdo, Sigamos adelante y saltemos a conseguir que nuestro jugador se mueva. Porque si toquemos esta escena aquí, es bastante aburrida. Sólo te sientes un poco ahí arriba. Y si entramos en nuestra escena mundial, y si golpeamos este icono de cadena aquí, vemos que podemos tener acceso a nuestras otras escenas y vamos a agarrar nuestra escena de jugador. Simplemente seguimos adelante y nos movemos a la posición de donde quieres que esté tu jugador. Ahí mismo voy a poner el mío. Y de nuevo, si lo abrimos y echamos un vistazo, cuando lo ves no es muy emocionante. Se está moviendo, pero nuestro jugador, solo está un poco sentado ahí como una imagen estacionaria. Para que podamos seguir adelante y arreglar eso y conseguir que se mueva. Vamos a entrar en nuestro jugador. En nuestra escena de jugadores. Vamosa darle a este botón Agregar Script y vamos a agregarle un script de jugador. Ahora, recuerda seguir adelante y poner esto dentro de tu carpeta de scripts para mantener las cosas bonitas y limpias y organizadas. Y adelante y crearlo. Yesto es lo que tenemos. Entonces vamos a necesitar un par de variables aquí. Una de las cuales va a ser nuestra velocidad, y esta es la principal. Vamos a necesitar, velocidad var. Y podemos establecer esto a dos puntos iguales a un vector, masticar. Y puedes abrir los paréntesis y poner 0 coma 0. O podrías hacer vector dos punto y luego la palabra es 0 en mayúsculas. Ambos son exactamente lo mismo y producen el mismo resultado. La función de lectura aquí no vamos a necesitar. Y sigamos adelante y creamos una variable más para nuestra velocidad. Y voy a seguir adelante y seguir adelante y poner el mío para poner el mío en 100, y ya veremos cómo se ve eso. Siguiente arriba. Tenemos nuestra función de proceso. Podemos descomentar eso nuevo con solo seleccionar y usar Control K. Y dentro de aquí es donde vamos a tener nuestras funciones aquí. Y el primero que vamos a necesitar es mover diapositiva, mover guión bajo y diapositiva de subrayado. Y tenemos que pasar al menos un argumento para que esto funcione. Y ese argumento sólo va a ser nuestra velocidad. Ahora con eso y el problema, vamos a ver un error. Ahora, si seguimos adelante y arrancamos esto, y ven un cabrón R T aquí abajo. Tenemos dos temas que surgen. Ahora estos temas, si seguimos adelante y damos clic en ellos y vamos dentro de la pestaña Errores, podemos ver que delta nunca ha usado en el proceso de la función. De manera que simplemente podemos poner un subrayado al inicio de delta. Y eso le dirá al participante que ignore esto. Ignorar el hecho de que no estamos usando esto. Y nuestro segundo dice que devuelve un valor que nunca se usa y nunca necesitamos usarlo. Entonces lo que podemos hacer aquí es que en realidad podemos poner en un comentario. Y ese comentario es sólo para dar clic sobre. El spot sexual que necesitamos es adicional. Entonces vamos a usar un comentario que llamé advertencia, guión, ignore, colon, retorno, valor de subrayado, subrayado descartado. Y eso va a ignorar el valor desechado de la siguiente línea. Se pone esencialmente en la línea nueve. Se va a ignorar que el valor en diez, o segundo error aquí de mover diapositiva que se devuelve se descarta. Y si quisiéramos, podríamos hacer lo mismo por delta también. Entonces podríamos hacer esto con, si quisiéramos. Podríamos ir por encima la función de proceso y podríamos usar el guión de advertencia, ignorar, dos puntos, argumento sin usar, y deshacernos de este guión bajo antes de delta. Y deberíamos ver a ambos completamente ignorados. Y sólo va a ser para esas dos líneas. Esto es sólo una cosa muy temporal que se crea o que nos dicen la respuesta e ignorar el siguiente error que precede a este comentario. Para que puedas hacer eso, tener esos de cualquier manera. Pero eso, esas son dos formas diferentes de cosas para ti, qué manera quieres ir al respecto. Ahora para el movimiento en sí, vamos a seguir adelante y crear una función llamada movimiento. Y vamos a llamar movimiento por encima de tobogán en movimiento. Lo vamos a hacer aquí es que vamos a seguir adelante y comprobar si nuestro botón está pulsado. Entonces estamos diciendo si de entrada. Y por ahora usemos es. Punto es subrayado, subrayado mama. Y el código de escaneo que podemos poner aquí si sabes el número, puedes ponerlo, pero las probabilidades son que don t Así que sólo vamos a escribir en clave subrayado d en mayúsculas. Y podemos poner un colon. Y luego la siguiente línea haremos un punto de velocidad x Así que solo queríamos acceder al valor x de la velocidad. Por lo tanto, el primer número y la tecla D se asocian típicamente con moverse hacia la derecha. Entonces lo que vamos a hacer aquí es que necesitamos poner esto yendo a la derecha en el eje x aquí, y vamos a la derecha. Se va a incrementar un número. Entonces este va a ser un número positivo. ¿ A qué equivale esto? ¿Velocidad? Ahora si ejecutamos esto y le damos a la tecla D, y ella, nos estamos moviendo hacia la derecha y simplemente seguimos moviéndonos. Si desea crear un botón en forma del nombre de una acción. Entonces si no quieres hacer es seguir presionando y ponerla en clave así. En realidad podemos golpear hasta dos proyectos, configuración del proyecto llamado la entrada, mapper de entrada. Y esto nos permite crear controles para nuestro juego de manera extremadamente fácil. O la acción aquí, sólo voy a hacer giro, ¿no? Añadir. Y ahora puedo darle a este botón más. Y podría hacer una llave. Y cualquier llave que ponga aquí, pondré en la tecla D aquí. Puedo golpear bien, pero también puedo entrar. Y si quisiera, podría ir tecla Comando y podríamos hacer la flecha derecha si quisiera. Entonces si quiero apoyar tanto WASD las teclas de flecha, sin duda puedo hacer eso. Y sólo necesito hacer el comando único. Estamos haciendo esto. Ycómo usaríamos esto ya que en lugar de usar su tecla pulsada, vamos a hacer es acción mama. Y verás tu acción aparece y facturas aquí. Para que podamos seleccionar girar a la derecha. Y si fuéramos a correr eso, Oh, necesitamos el colon en el extremo. Ahí vamos. Ahora si ejecutamos eso y golpeamos lo mismo, teníamos nuestra tecla D que asignamos a la acción de giro a la derecha. Vamos a seguir adelante y pasar a la derecha. Y por supuesto nos movemos al mundo y echamos un vistazo a eso. Ahí vamos. Entonces lo que quiero que hagas es que sigas adelante y te dispares en que tú mismo puedas girar a la izquierda ahora. Y como un reto extra, quiero que veas si puedes descubrir cómo hacer que ella misma deje de moverse cuando no estás presionando ninguno de esos botones? ¿Verdad? Adelante y tómate un momento, pausa el video y dale a eso una toma y un momento. Se puede poner fin a la pausa. Y echaremos un vistazo y te mostraré cómo fui por hacer esto. Muy bien, bienvenidos de nuevo. Entonces aquí vamos a ir con lo primero que vamos a hacer es que vamos a decir otra cosa. Entonces también, si no estamos presionando el botón derecho, nuestro punto de velocidad x va a ser igual a 0, lo que llegó a impedir que nos moviéramos. Entonces ya ves si ahora pulsamos la tecla D, nos movemos a la derecha? Y si me detuve, dejamos de movernos. De acuerdo, entonces si nuestros botones no están siendo presionados, dejamos de movernos. Genial. Ahora algo que podrías probar es que podrías haber entrado y dicho, si la entrada es acción presionada, entonces gira a la izquierda. Que por el momento no existe. Voy a tener que ir creado aquí en un segundo. Entonces accederías a velocity dot x Y si recuerdas lo que dije va a la derecha, vamos a aumentar de valor. Entonces yendo a la izquierda, vamos a disminuir de valor. Entonces va a ser una velocidad negativa. Ahora déjame ir a crear este botón muy rápido. Gira a la izquierda. Y me puse esto a mi dolencia. Ahí vamos. Es ahora que podrías ver si le pegamos D, ya no pasa nada. No podemos girar a la derecha. Pero si usamos una, sin duda podemos girar a la izquierda y nos detuvimos, pero no podemos ir a la derecha. Ahora todo lo que tenemos que hacer para arreglar esto es en realidad establecer esto a un LFO, también llamado un else-if. Entonces si hacemos E, L, I, F en R giró a la izquierda en lugar de una regular, si esas dos letras arreglarán todo en este código y todo en el ahora funciona como debería. Porque estamos, estamos comprobando si uno de estos bichos o presionamos lo que estoy buscando. Todos estos requisitos diferentes. Aunque estaré de acuerdo en que es un poco francés a las dos F's realmente no funcionan aquí. Y este aspecto, pero al llegar a hacer movimientos de todos modos, normalmente solo quieres que se presione una dirección. Entonces si corremos eso ahora y lo echamos un vistazo, podemos ir a la derecha, a la izquierda, y nos detenemos cada vez. De acuerdo, así que a continuación podemos echar un vistazo a animar nuestra capa. Y también necesitamos echar un vistazo a evitar que nuestro jugador se salga de la pantalla así. Y hay múltiples maneras en que podemos ir por hacer eso también. Todo bien. Losveré chicos en la siguiente. 8. Animación de jugadores: Muy bien, así que sigamos adelante y animemos a nuestro jugador. En esta. Vamos a necesitar crear algunas animaciones para ello. Entonces vayamos a nuestro equipo de jugadores. Voy a pegarle un a D en la parte superior aquí para poder echar un vistazo a lo que está pasando. Y podemos seleccionar nuestro reproductor de animación. Ahora esto es lo que sostiene nuestras animaciones y nuestro sprite aquí arriba. Como todo dentro de ella. Solo necesitamos dispararlo para que parezca que es una, una imagen animadora. Para que podamos entrar en nuestro reproductor de animación, golpear la animación de lo que aquí abajo en la parte inferior. Selecciona Nuevo. A esto lo llamaremos ocioso. Por esta animación. Yo sólo voy a hacer 0.3 segundos de duración. Voy a configurarlo para que circule aquí abajo en la parte inferior derecha. Nuevamente, aún no hemos llegado a ninguna parte con cadenas. La longitud del arco es 0.3. Tocamos aquí el botón de bucle para asegurarnos de que esté encendido. Y lo que vamos a hacer es que ahora vamos a seleccionar nuestro sprite. Podemos echar un vistazo a nuestro marco aquí. Y notamos que tenemos estas llaves que aparecen ahora en el inspector. Ahora lo que hace esto es esto nos permite hacer un marco clave dentro de nuestra animación para cualquier cosa que tengamos aquí. Y lo que vamos a mantener rima son nuestros marcos aquí. Entonces si presiono esta tecla, no necesitamos una pista de reinicio, pero si quieres dejar eso encendido, no hace daño a ninguno. Y voy a usar curvas Bezier. Y este caso es, de nuevo, realmente no va a importar con el, con la hoja de cálculo, pero voy a seguir adelante y presionar Crear. Por lo que ven aquí tenemos nuestro bajo marco de tiempo. Sólo asegúrate de que tu pequeño marcador aquí esté al principio. Y podemos seguir adelante y crear ese fotograma clave 0. Y luego 0.2, voy a crear el fotograma clave para cambiarlo al fotograma uno. Si solo toco esa espalda while loops, podemos ver que tenemos lo que parece nuestra llama activándose y teniendo un pequeño parpadeo aquí. Y podemos seguir adelante y hacer eso por ella y a la izquierda y girar a la derecha. Por supuesto, no vamos a usar el marco 01 y vamos a usar el, el siguiente conjunto de anillos. Quiero que sigas adelante e intentes crear las animaciones de giro a la izquierda y a la derecha por ti mismo. Y pausar este video, pruébalo. Vuelve, y voy a seguir adelante y paso a través de ella y si tuviste algún problema, ojalá, te aclaremos algunas cosas. Muy bien, bienvenidos de nuevo. Entonces vamos a entrar en animación y crear uno nuevo. Vamos a hacer girar a la izquierda. Y veamos cuáles tenemos que efectivamente hemos girado primero a la izquierda. Entonces voy a bajar aquí, cambiar mi longitud es 0.3. Enciende el bucle, ve al inicio de mi pista con frame ajustado a dos, voy a crear un fotograma clave. Se crea. Voy a pasar a SharePoint para hacer el siguiente fotograma, que es el fotograma tres. Genial, Otro punto clave. Y le pegaré a Play para bucle eso. Parece que mi primer fotograma se estropeó. Entonces sólo voy a volver al principio aquí. Un poco chupar para masticar y pulsa de nuevo el botón de fotograma clave. Y ahí vamos. Si le pego play, todo se ve bien. Yo voy a hacer lo mismo para girar a la derecha. Crear nueva animación. Gira a la derecha. Establezca esto 0.3 loop y encendido irá al principio, suba al marco cuatro. Y sólo voy a enmarcar eso otra vez solo para estar a salvo. Salta hasta 0 para ir al cuadro cinco. Golpea la tecla. Eso ya estaba en cinco, así que necesito enseñar seis y darle la tecla. Ahí vamos. Intentémoslootra vez. Mis números vuelven a ser raros, así que voy a volver a cambiar eso a cuatro. Salta hasta 25. Aquí vamos. Por alguna razón estamos sosteniendo la animación. El primer fotograma ahí siempre parece ser un poco raro. En algunas situaciones. Vamos a seguir adelante y jugar eso y ahí vamos, apareamiento aleatorio. Así que ahora necesitamos que esto funcione realmente dentro de nuestro guión en cualquier momento que nos movamos. Entonces para esto, vamos a crear una nueva función. Animar o animar más bien, sólo mantenlo lento o mantenerlo pequeño. Y vamos a llamar a esta función animada aquí arriba dentro de nuestro proceso, igual que hicimos con el movimiento. Y todo lo que necesitamos comprobar es si nuestra velocidad en nuestro eje x es mayor o menor que 0, porque si es 0, no nos estamos moviendo. Si es más pequeño, vamos a la izquierda. Si es más grande, vamos bien. Para que podamos seguir adelante y podríamos comprobar si velocidad x es mayor que 0. Sí, está bien. Entonces, si eso es mayor que 0, vamos a seguir adelante y podemos usar el signo de dólar para acceder a cualquier propiedad desde el principio o para obtener nuestro nodo. Pero lo que voy a hacer es hacer esto un poco más limpio. Mira aquí. Entonces sólo voy a volver a subir a mis variables aquí. Voy a hacer en listo, var, digamos una capa M, Excel y establecer que igual al jugador de animación signo de dólar. Ahora otra vez, si estás en 4, creo que con un ya aquí, necesitarás el cartel de at. A ver. Supongo que estamos en tres. Eso sólo nos va a arrojar un error. Por lo que ahora podemos volver a bajar a nuestra función animada. Podríamos simplemente teclear y en jugador. Y hará referencia a ese nodo de jugador de animación aquí. Y le dijimos que llegara. Y podríamos hacer dot play. Y estaremos girando a la derecha cuando x sea más grande. Entonces si seguimos adelante e intentamos eso, podemos ver que ahora animamos. Sólo ahora por supuesto, nos quedamos atascados. Misma situación que tuvimos con nuestro movimiento es que nuestra animación gira a la derecha y luego estamos atrapados ahí a la derecha. No cambiamos de nuevo a estar de vuelta a nuestra pequeña situación ociosa aquí. Entonces, si quieres, sigue adelante y tómate un momento aquí y ve si puedes averiguar sacar nuestro giro a la izquierda y que volvamos a la normalidad cuando no estamos presionando ninguno de los dos botones. De acuerdo, bienvenidos de nuevo. Sigamos adelante y abordemos esta situación. Vamos a hacer lo mismo que hicimos antes con LLF. Vamos a obtener nuestro punto de velocidad x Vamos a comprobar si es menor que, si nuestra X es menor que 0, es decir, nos estamos moviendo hacia la izquierda. Y vamos a seguir adelante y configurar el reproductor de animación, por lo que jugador de anime, jugar. Gira a la izquierda. Ahora tenemos que sacar la otra situación en el caso que no estamos presionando ninguno de estos botones. Y al igual que antes podemos usar else. Y en jugador punto manera Idle. Ahora si echamos un vistazo a eso, aquí vamos, Estamos girando tanto a izquierda como a derecha, y volvemos a la normalidad y no estamos presionando a ninguno de ellos. Podemos echar un vistazo a eso dentro de nuestro mundo y cómo nos tenemos a un jugador en movimiento. Y eso es todo lo que necesitamos para animaciones para un jugador. Entonces si quieres seguir adelante y sumar movimiento para avanzar y retroceder, Eso va a ser en el eje y. Entonces, si quieres configurar eso para poder avanzar y retroceder, sin duda puedes hacerlo. Y creo que podemos seguir adelante y se puede agregar, añadir eso sólo para el caso de uso específico. Ahora recuerda que si estás girando a la derecha, vamos a establecer nuestra velocidad a 0, igual que vamos a hacer otra. Qué harías eso para que la y vea si hacemos punto de velocidad y es igual a 0. Y por supuesto va a ponérselos a Alice también. Y vamos a hacer lo mismo l, si tan sólo pudiéramos hacer algo así como adelante. Ahora por supuesto que solo influimos en nuestra velocidad. ¿ No por qué? Nosotros somos velocidad, ya sea positivo o negativo, va a determinar si vas o no subiendo o bajando o cuando estás haciendo eso. No vamos a estar moviéndonos a izquierda ni derecha. Ahora. No tengo mi configuración de botón, pero eso es esencialmente lo vas a hacer y vas a hacer lo mismo para atrás solo por supuesto, es asegurarte de que tienes tu configuración de velocidad correctamente, ya sea positivo o negativo en la Y. Así que puedes avanzar y retroceder si quieres agregar esa funcionalidad a tu juego. 9. Movimiento Diagonal: De acuerdo, en este video, solo te voy a mostrar rápidamente cómo puedes crear un movimiento de 8 vías. Entonces si quieres moverte en diagonal, te van a ver. Si echamos un vistazo aquí, podemos movernos a izquierda o derecha. Extremadamente rápido. Ah, eso es porque he cambiado. Aquí vamos. Entonces verás aquí puedes moverte a izquierda o derecha, o puedes moverte hacia arriba y hacia abajo. Si realmente no te mueves. Al mismo tiempo, vemos si me muevo hacia arriba y presiono a la derecha. Ahora, vamos a repasarlo. Sigo avanzando en ese extraño ángulo que tenemos pasando ahí. Entonces todo lo que voy a hacer es quitar todos nuestros conjuntos de ceros aquí. Por lo que nuestros botones sólo van a cambiar el acceso uno, el Y. extra Vamos a tomar nuestro bloque else aquí que pone todo a 0. Podemos eliminar eso por completo, cambiar nuestra elipse o bien si las declaraciones en solo una sentencia if. Y en la parte superior del movimiento, podemos seguir adelante y establecer velocidad igual al vector dos punto 0. Y eso es todo lo que tenemos que hacer para tener un movimiento diagonal adecuado. Eso funciona correctamente y no tenemos ningún problema extraño. Entonces si quieres tener movimiento de 8 vías, así es como puedes seguir adelante y hacer eso. Nuevamente, por eso estamos moviendo nuestros ceros. Entonces, si te acuerdas de aquí, no regresaría, ¿verdad? También establecemos la velocidad y a 0. Y cuando subimos y bajamos, pusimos velocidad x a 0. Bueno lo que esto, quitando esos y poniendo velocidad equivale a vector dos puntos aquí en la parte superior de nuestro movimiento. Podemos seguir adelante y tener algún buen movimiento de 8 vías en nuestro juego. Entonces si eso es algo que quieres tener ahí dentro, Así es como puedes seguir adelante y seguir añadiendo eso en. Ahora bien, si notas que hay una cosa ahí en las ratas, cuando te mueves en diagonal, en realidad te estás moviendo más rápido que si te mueves a la izquierda o a la derecha. Entonces todo lo que voy a hacer allí es que podemos establecer la velocidad igual a velocidad punto normalizada por velocidad. Iban a probar eso. Ahora, ya ven que mantenemos una velocidad consistente sin importar si vamos rectos, lado, o en ángulo. ¿Verdad? Entonces eso lo hará por este video. Por eso tirar el final muy rápido. Entonces sé que algunos de ustedes probablemente querrán movimiento de 8 vías. Te pide, en cierto modo, algo así como modernizar un poco tu juego y no quedarte atascado hasta ahora en el pasado donde solo teníamos las dos direcciones separadas y añadimos una u otra. Entonces así es como se agrega en movimiento. Y en la siguiente seguiremos adelante y echaremos un vistazo a cómo podemos evitar que el jugador salga de nuestra pantalla. 10. Barreras de juegos: De acuerdo, así que bienvenidos. En este video vamos a echar un vistazo a cómo podemos evitar el usuario salga de la pantalla. Como ves, vamos de izquierda a derecha. Vamos a ir por completo más allá de la pantalla, que no es lo que queremos para nuestro jugador, mismo con ir hacia atrás y hacia adelante saldrá completamente de la pantalla. Entonces para lograr esto, tenemos dos métodos para hacer esto. Podemos ir con el método de barrera invisible, o podemos ir con revisar la posición del jugador relativa a ti, claro, el tamaño de nuestro proyecto aquí. Entonces, si queremos ir al método de barrera, podemos seguir adelante y crear un cuerpo estático aquí en el mundo. Crea una forma de colisión. Asigne esa forma, tenga un rectángulo. Si solo agarro ese cuerpo estático, voy a bloquear la forma de colisión aquí para no agarrar eso. Entonces agarré el cuerpo estático y simplemente lo muevo aquí abajo. Ahora puedo cerrar esto. Y si extiendo el sentido así que eso es todo. Eso es todo lo que tendríamos que hacer. Y por supuesto, eso lo podemos aplicar a los cuatro lados. Y podríamos bloquear al usuario que no salga de la pantalla. Entonces claro que podemos ir al fondo porque ahí abajo no tenemos una barrera. Pero esa es una forma en que puedes establecer esa restricción. Ahora por ir por aquí al lado derecho, vamos a seguir adelante y usar el segundo método que podríamos usar para eso. Cuando giramos a la derecha, vamos a comprobar si hay una segunda condición. Y no posicionar punto x mayor que aproximadamente por qué 92. Y cómo conseguí eso es nuestro testigo al 24 y sólo estoy restando nuestro sprite. Ahora si nos movemos a la derecha, ya ven tenemos esa barrera ahí que se pone en el juego o no. Volvamos por ese camino. Y luego el lado izquierdo, por supuesto, se puede ver que todavía tenemos nuestra animación de turno yendo. Simplemente no podemos ir más lejos a la izquierda. Por lo que hay dos métodos completamente diferentes. Depende totalmente de ti. ¿ En qué método quieres seguir haciendo esto? Dos a 08. Tú vas. Entonces tenemos exactamente lo mismo, estamos justo arriba contra la esquina. Ahora. Se puede ver con un método. Seguimos tocando nuestra animación y tratando de girar. Y con el otro, acabamos de llegar a un punto muerto y no nos movemos para nada. Entonces no estamos girando. Entonces, qué método al que quieres ir depende completamente de ti. Solo ten en cuenta que si quisieras hacer las barreras, tienes que establecerlo en cuatro barreras alrededor de los cuatro lados. Si tienes el movimiento completo, un Android hacia adelante, atrás a la izquierda. Y lo mismo con tu código aquí. Si quieres ir a la ruta del código aquí y hacer tus comprobaciones, vas a revisar posicionada también la vas a revisar posicionada en la X a tu izquierda. No revisé tu posición punto y para tu adelante y atrás. Y claro que hacia adelante es 0 va a estar en la parte superior de la pantalla aquí. Por lo que 0 se vería algo así. Y luego por supuesto, si menos 400, que es la parte inferior de nuestra pantalla, tendríamos algo como esto. Entonces tienes que hacer tus propios cálculos también. Entonces yo diría hacer 16 para la parte superior, hacer 384 para la parte inferior. Y luego por supuesto el lado izquierdo por aquí, sólo podemos hacer 16 y características. Cómo conseguí eso, el origen de nuestro jugador. Recuerda que si echamos un vistazo a nuestra escena de jugador está en el medio y el sprite es 32 por 32. Por lo que acabo de tomar la mitad de eso, que serán 16. Entonces así es como conseguí esos números. Entonces, qué método usas para bloquear a tu jugador depende completamente de ti. El beneficio de hacer las barreras invisibles, por supuesto, significa que siempre puedes simplemente tomarlo y ajustarlo en cualquier punto y visualmente sin tener un problema. Por supuesto. El otro, el beneficio del otro es que no tenemos ese look de animación atascado mientras intentamos ir al final, sea cual sea la dirección. En este caso, nuestra ocurrencia depende completamente de ti. personal, voy a aplicar el método de código aquí. Estoy comprobando mi posición en mi cizalla de cheque. Pero si quieres usar la barrera invisible o acercarte con el cuerpo estático, eso está completamente bien. 11. Habilidad de tiro: De acuerdo, En el video de hoy, vamos a repasar sobre cómo crear una mecánica de tiro o nuestro jugador. Y ya sea que dispares uno rechace a proyectiles. que quieras gestionar, eso depende de ti. Pero voy a estar usando creo, dos proyectiles o al menos a puntos de tiro aquí. Por lo que si quieres usar uno, tendrás que aplicar a uno. Si quieres usar múltiples, verás cómo podemos aplicarlo a múltiples ubicaciones. También tengo múltiples proyectiles aquí. Tenemos tres versiones diferentes con y sin el contorno negro. Depende de ti qué versiones quieres usar para esto. Y si quieres ver cómo se ven con diferentes colores, ya que no entraría en la pestaña de visibilidad aquí en la sección de visibilidad del inspector. Con ellos seleccionados, podemos acceder a modular y podemos cambiar los colores aquí. Por lo que si tienes un color específico en mente, sin duda puedes cambiar eso a lo que quieras usar. Y eso debería darte una idea de cómo se ven todas estas en los distintos tonos. Entonces para mí, creo que voy a seguir adelante y usar, volver a proyectar a Alt, así que sin el contorno negro. Entonces estas pueden ser mis tomas predeterminadas por defecto. Entonces voy a seguir adelante y ahora que sé cuál quiero usar, voy a seguir adelante y deshacerme de todos esos puntos y podemos crear nuestro proyectil, visto a alguien crear una nueva escena. Vamos a seguir adelante y crear nuestro proyectil. Y voy a establecer eso como un cuerpo cinemático 2D para que podamos tener nuestra física aplicada a él. Voy a agregarle un sprite. Para nuestros seres de láser, nuestro proyectil. Traeré el que quiero usarlo a la ranura de texturas aquí en mi pantalla. Podemos deshacernos de este pequeño triángulo añadiendo en nuestra forma de colisión. Y en mi caso, ya que estoy usando esta, puedo usar una forma de círculo y encogerla hacia abajo. Ahora si estás usando una forma diferente, si estás usando el láser boy standard shot, entonces puedes hacer, puedes usar el rectángulo. Por supuesto, si estás usando los otros, también puedes usar una esfera o un rectángulo, o un círculo o un rectángulo, dependiendo de la ruta que quieras seguir, puedes cubrir toda la cosa o cobertura es el único extremo de la misma. Y voy a seguir adelante y guardar esto, este proyectil. Guárdalo, pon esto dentro de mis escenas. Ahórrate eso. Ahora que tenemos eso. Para poder disparar un proyectil, vamos a necesitar una función de disparo. Entonces iré a mi mapa de entrada y crearé una acción de rodaje. Y voy a poner esto a grande mi barra espaciadora. De acuerdo, ahora necesitamos que nuestra salida proyectada realmente se mueva, ¿verdad? De nada sirve si le disparamos y no va a ninguna parte, no nos hace ningún bien en ese momento. Entonces sigamos adelante y podemos agregar en un guión. Asegúrate de colocar eso en la ubicación correcta para mantener las cosas bonitas y limpias. Los scripts proyectan abajo del punto normal GD. Y al igual que nuestro jugador, y vamos a necesitar una velocidad. Y puedo empezar como un vector vacío dos. También vamos a necesitar una velocidad. Y vamos con, voy a decir un 100 por ahora, ya veremos cómo cambia eso después. No vamos a necesitar la función de listo. En realidad, podemos usar la función ready. Entonces eso es un aguantazo en eso. Guárdalo aquí, y agreguemos el movimiento y el deslizamiento. También puedes usar move en clase, pero tiendo a usar siempre move dentro de mí. Yo nunca no he necesitado moverme y Clyde y en esta situación no va a hacer ninguna diferencia de todos modos. El colisionador se desliza es más o menos lo que sucede cuando dos, cuando los dos cuerpos se tocan entre sí. Entonces con toboganes móviles establecidos allí y están listos función, podemos tomar la velocidad y podemos agarrar la propiedad y de la misma, y queremos que suba. Entonces vamos a ponerlo a una velocidad negativa. Ahora bien, si eso funciona, debería desaparecer por completo nuestra pantalla aquí cuando lo probemos y no lo vemos. Entonces o se ha ido o es demasiado pequeño. De cualquier manera, podemos echarle un vistazo a eso. Y se puede ver en nuestro depurador tenemos 22 problemas ahí. Son las mismas cosas que teníamos en nuestro jugador. Justo ahora en nuestro proyectil están dos comentarios de vuelta en. También quiero saber si sí quieres deshacerte de estos. Fuera de aparecer y no quieres usar estos comentarios de manera consistente, puedes ignorarlos, que personalmente no necesariamente recomendaría, o puedes dirigirte a Creo que está en el Rajá. Sí. Y sólo advertencia de búsqueda. Y bajo el guión de GD encontrarás el argumento sin usar aquí mismo. Así como debes encontrar uno para la devolución, el plato de valor de retorno lo consiguió aquí mismo también. Entonces puedes simplemente apagar ambos si no quieres estar poniendo estos comentarios esa manera alterna en él ahí dentro. Ahora le hemos pegado a nuestro jugador. Y voy a sumar en posición de d. poco difícil de ver aquí. Ahí está. Y puedes configurar esto donde quieras que desove tu proyectil. Entonces en mi caso, sólo voy a poner mío Voy a poner el mío Ray, justo por ahí. Eso está bien. Por supuesto. Puedes hacerlo lo más cerca posible. Voy a nombrar esta posición izquierda proyectil. Eso se deletreó mal. Ahí vamos. Y sólo duplicaré eso y agregaré una segunda. En el lado derecho. Haré ese proyecto correcto posición Alfa. Y los que van a ser mis dos puntos de los que voy a disparar. Entonces ahora entrando en nuestro jugador, podemos crear una variable que tenga nuestro tiro normal. Podemos establecer eso en una precarga. Y eso tomará un argumento de nuestro proyectil visto que creamos. Si echamos un vistazo en escenas, tenemos nuestro proyectil normal. Adelante. Puedes copiar la ruta o arrastrarla. Así. Y lo que eso va a hacer es cuando nuestro jugador sea traído a la escena, también va a cargar ese proyectil normal visto para cuando lo necesitemos. En lugar de cargarlo en el acto, ya lo tendrá. De acuerdo, así que sigamos adelante y podemos crear una función para disparar. Y lo que vamos a poner aquí es que necesitamos crear una instancia de nuestra toma normal. Y entonces necesitamos ponerlo en el mundo. Entonces diremos Crear nueva variable que sea temporal. Le dispararon en la instancia de disparo de Stanford. Y esto será igual a nuestra variable de disparo normal que acabamos crear encima de la instancia de punto superior. Ahora, todo lo que tenemos que hacer es fijar la posición. Y el, bueno, no tenemos que fijar la velocidad. Ya dijimos que sólo hay que fijar la posición para disparar por nuestra cuenta o por su cuenta más bien. Entonces, para que esto sea más fácil, seguiremos adelante y crearemos otra barra on ready en la parte superior. Por nuestra izquierda. Lo llamaremos posición izquierda del zapato. Y crearía uno para el lado derecho también. Posición. Aquí vamos. Sam bajaría aquí y sí nos quedamos impactados. Y hacer posición de punto para acceder a la propiedad de posición de la misma. Y vamos a poner eso igual a, diremos nuestra posición izquierda del zapato. Posición. Ahora, queremos que esto sólo suceda cuando disparemos nuestro proyectil. Por lo que sólo voy a resaltar esas dos líneas y golpear el Tab para moverlo. Y voy a sobresalir dentro de una declaración if diciendo si la entrada es acción, solo presiona o puedes ir con recién liberado, depende de ti. Voy a ir con solo prensado y lo estamos haciendo. Entonces esto sucede la única vez y no sucede continuamente mientras lo tenemos abajo. Esa es la diferencia entre simplemente chocar y acción. Prensa. La acción presionada significa que podemos mantener presionado el botón mientras el botón está presionado. Esto va a suceder de manera consistente. Sólo presionar significa que va a pasar la única vez. Cuando empujemos la llave hacia abajo, sucederá una vez. Y entonces eso es todo. Asegúrate de llamar a disparar dentro de nuestro proceso. Y si seguimos adelante y ejecutamos esto ahora, deberíamos poder darle a nuestro botón de disparar. Oh, error mío, olvidé una cosa crucial. Nosotros establecimos su posición, pero en realidad nunca la agregamos a la escena. Entonces algo de lo que tomar nota aquí es que no queremos agregarlo al jugador. Si lo agregamos al jugador, entonces se va a mover. Cuando movemos a su jugador a izquierda y derecha. Entonces nuestro proyectil se va a mover en el aire, lo cual no va a tener mucho sentido. Ya que no estamos creando como un láser para nuestra normalidad, necesitamos agregarle esto como niño a sus padres, así que lo vamos a sumar al mundo. Entonces en nuestra escritura, lo vamos a hacer todavía, que será el mundo. Y si te estás preguntando cómo sé que si echas un vistazo aquí, ves que tenemos esto como una función de árbol. Tenemos esta línea saliendo del jugador y luego sube y lo primero que golpea su mundo aquí. Entonces eso es conseguir padres. Y es lo mismo con estos, que estas posiciones aquí son los padres de nuestro jugador. Pero se está accediendo a nuestro guión desde el jugador. Entonces vamos a ejecutar al jugador fuera de uno, que es el mundo. Nosotros sí obtenemos punto padre, agregar hijo. Y pasará en ese tiro. Y ahora deberíamos poder verlo. De acuerdo, así que un pequeño cambio su nota que en vez de posición, aunque dice posicionado en el inspector aquí, y si flotamos sobre ella, dice Posición. Lo que en realidad queremos usar esto, queremos configurarlo a posición izquierda del zapato punto posición de subrayado global. Y eso en realidad lo colocarás donde queremos que vaya. Así que ahora si entramos en nuestro mundo y jugamos esto, ves cuando disparamos, va ahí y solo nos está empujando hacia atrás solo porque es un poco vago de hacer un poco de pruebas para probar y averiguar por qué restablecemos la escala a uno en nuestro proyectil. Y volveremos a la normalidad. Entonces tú vas. Entonces ahora tenemos nuestro proyectil yendo, obviamente solo nos va uno y eso aún nos está empujando hacia atrás. Sólo un poquito. Poco extrañamente. Entonces voy a seguir adelante y agarrar ambas posiciones y empujarlas un poco hacia arriba. Se le podría decir que ignore por completo al jugador, lo cual podemos echar un vistazo a hacer en una fecha futura. Pero por ahora, avancemos un poco y ya se puede ver que están rodando. No está funcionando perfectamente bien. Así que de nuevo, para simplemente repasar eso, repasar nuestra función de disparo o disparo, comprobamos si nuestra acción de disparo es solo presionar. De modo que eso sólo ocurre una vez cuando presionas el botón hacia abajo. Después creamos una nueva variable que sostendrá una instancia de nuestra toma. ¿ Qué es una instancia de punto de disparo normal? Y después fijamos la posición de eso. Entonces si esa instancia, la instancia de tiro, obtenemos la propiedad de posición de esa. Establecimos eso igual a nuestra posición de zapatilla izquierda, que es una posición a D que trajimos a nuestro jugador. Y pusimos eso a la posición izquierda del zapato, agacharse posición de subrayado global. Y entonces no vamos a ver nada a menos que en realidad lo agreguemos al nombre. Y queremos agregarlo a nuestro padre de jugadores, que es nuestro mundo. Tenga en cuenta que van a querer conseguir ese nodo, conseguir a sus padres, y luego agregar niño y agregar nuestra instancia de tiro. Como hijo de eso. Vamos a entrar aquí y tenemos dos posiciones, sólo voy a crear una segunda. Entonces tengo una toma in-situ. Ahora fijaremos el segundo a nuestra otra posición, que es nuestro rodaje correcto. Y asegúrate de que estamos accediendo a tiro en el número dos, esto. Y luego tenemos que asegurarnos de que también añadimos esa a nuestra escena también. Entonces vamos a conseguir que la paternidad y el niño disparen. Y cuando toquemos esto, ahora deberíamos estar disparando a los dos de nuestros proyectiles a la vez. Ahora, como pueden ver, si fuéramos a expandir el botón, podemos obtener una gran cantidad de estos celulares. Ahora si quieres que eso sea intencional en tu juego o no depende completamente de ti. Si desea agregar algún tipo de enfriamiento a eso, puede agregar fácilmente eso también, simplemente comprobando si el jugador puede disparar. Y si no, entonces no permitimos que disparen. Ahí vamos. Ahora tenemos una incapacidad para disparar algunos proyectiles. Y de nuevo, puedes hacer que este sea el color que quieras y ver tu proyectil con solo cambiar la modularidad a donde quieras. Entonces, si lo cambiamos a la pantalla y entramos aquí y filmamos libros, tenemos que entrar aquí y disparar. Ahora tenemos un proyectil verde. Para que puedas hacer que sea el color que quieras. Puedes hacerlos de dos colores diferentes si así lo deseas. Eso depende completamente de ti y de lo que quieras hacer. Pero así es como podemos agregar un mecánico de tiro a nuestro pequeño tirador espacial. 12. Cómo crear potencias: Muy bien, Bienvenido. En este video vamos a repasar creación de nuestros power-ups y conseguir esos desove en el mundo. Y la razón por la que vamos a abordar esto primero antes de llegar al enemigo, es simplemente porque los enemigos van a usar efectivamente el mismo sistema que podemos introducir con power-ups sin confundiéndolo con cualquier hernia de IA o comportamientos, que lo primero que tenemos que hacer con el poder, por supuesto, es crear nuestro poder. Vamos a crear una nueva escena. Vamos a seleccionar Otro y convertirlo en un cuerpo cinemático. Lo renombraré a nuestra arriba. Va a necesitar un sprite, claro, porque necesitamos mostrar cuáles son las imágenes. Vamos a tener un reproductor de animación. ¿ Qué más podemos hacer? Podemos configurarlo, vamos a necesitar un área. Y esa zona tendrá su propia colisión. Ahora sé que tenemos este triángulo amarillo en el powerup, pero no tenemos que preocuparnos por eso porque no necesitamos que eso tenga forma de colisión. Lo que necesitamos es que el área tenga una forma de colisión de esa manera que puedas detectar desde nuestro jugador entra en ella o interactúa con ella. Y para la forma de colisión, sólo voy a ponerla en un rectángulo. De acuerdo, para nuestro sprite, podemos seguir adelante y arrastrar en nuestra hoja de cálculo. Sprites, power up, tráiganlo en AUC tenemos escudos de salud, velocidad, t animal Ahora, podemos poner esto por supuesto ocho cuadros y se va cruzando. Tenemos seis transversales, y cuatro verticales. Y ahora sólo podemos usar el reproductor Animation para crear nuestros frames. Y si solo querías tener uno de estos colores mostrando, tú, ciertamente no puedes. De lo contrario, lo vamos a animar para tenerlo loop entre todos estos colores y sonidos como un pequeño destello de arco iris pasando. Va a ser tu decisión como quieras ir sobre eso. Pero eso es todo lo que tenemos que hacer ni configurar nuestro poder. Adelante y guarda esa escena. Y luego en el siguiente video, seguiremos adelante y abordaremos la creación de las animaciones. Y supongo que configurando nuestra configuración de nuestro código. Ya que la mayoría de ella en este momento sólo va a ser la animación. 13. Animar potencias: De acuerdo, sigamos adelante y saltemos a animar nuestros power-ups. Sigamos adelante y seleccionemos al reproductor de animación. Voy a seleccionar Nuevo de mi animación. Voy a seleccionar Salud. Y ahora con que tiene 1 segundo de largo, voy a poner esto en bucle. Voy a poner mi snap a 0.15. Ahora siempre podrías configurar esto a lo que quieras. Cómo la app VR te pide que quieras que las cosas se muevan por ti. Para mí, voy a usar 0.15 y voy a usar frame 0 para mi primer frame aquí. Golpea Crear. Voy a personal hasta 0.15 0s frame one. Como ves, se va a avanzar, reservado el marco en el snap, así como el marco y mi número aquí para que pueda seguir golpeando teclas. Y ahora tenemos nuestra configuración de salud. Entonces si sigo adelante y juego eso, tenemos esta salud con un poco de un destello de arco iris en el texto. De nuevo, si no quieres esto, solo puedes configurarlo para que sea un fotograma para toda la animación. Pero eso depende de ti. Personalmente me gusta el arco iris, el cambio RGB del arco iris. Eso sucede. Pero claro que si no quieres o no quieres eso, no tienes que tener eso. Y vamos a seguir adelante y crear lo mismo para nuestras otras animaciones. Voya parar eso. Entra en animación nuevo, y tenemos escudos. Se. ¿De acuerdo? Y nuestro marco comenzará en seis, aquí de vuelta a 0. Inserta esta llave. Devin será nuestro 0.15. asegura de que esté en bucle. Y volverá a establecer esto , 67891011. Y si jugamos eso, tenemos nuestras animaciones de escudo. Fantástico. Entonces sólo tenemos dos más que crear aquí. Esta será nuestra velocidad, es de 0.15. Bucle it, volver a 0, cetera, animación. Marco 12. Muévete hacia arriba para 13. Ahí vamos. Podemos jugarlo para revisarlo. Se. Se ve muy bien. Y nuestro último es un multi Snap, 0.15. Lucas la animación. Regresa al principio. Inició en la animación 18. Borra ese último fotograma muy rápido y juega eso. Aquí vamos. Tenemos una linda animación yendo con eso. Y así como así, tenemos todas nuestras animaciones creadas para nuestros power-ups. Ahora por supuesto, si agregas más a esta hoja de sprite y creas las tuyas propias, por supuesto, más animaciones. Usa más, haz más power-ups. Yo sólo voy a seguir adelante y guardar eso. Y podemos dirigirnos a nuestro script de powerup. Ahora bien, lo que vamos a hacer para que esto funcione hasta donde llegue el futuro, es que vamos a crear una nueva función llamada create power up. Y eso va a tomar un argumento. Ese argumento que vamos a llamar apretado. Y eso lo podemos atrapar como una cuerda. Ahora otra vez, no tenemos que poner esta cadena de dos puntos aquí. Podrías simplemente tener apretado. No obstante, deberíamos acostumbrarnos porque en proyectos más grandes esto nos va a dar un ligero aumento en el rendimiento. Lanzando todas nuestras diferentes variables aquí, variables, argumentos, parámetros. Entonces es algo que deberíamos acostumbrarnos a hacer. Entonces lo que vamos a hacer aquí en crear power-ups es que vamos a establecer nuestra variable de apretado. Entonces vamos a tener una, nuestro tipo. Vamos a establecer nuestro tipo es igual demasiado apretado. De esa manera. Este poder específico sabrá qué tipo de poder pero es el que nos vendrá muy bien cuando recojamos nuestros poderes más adelante e interactuemos con él. Y la única otra cosa que vamos a hacer es establecer nuestra animación. Vas a conseguir el reproductor de animación. Vamos a llamar a jugar en ello. Y sólo vamos a pasar en apretado. Y eso es todo lo que tenemos que hacer para que las animaciones funcionen aquí. Entonces cada vez que pasemos en cualquiera que sea nuestro tipo, eso es lo que va a funcionar. Entonces, por ejemplo, solo para fines de demostración aquí, vamos a seguir adelante y sí crearemos power up y lo llamaremos. Lo pasaremos y diremos salud. Y si probamos esta escena, podemos ver que está animando y es nuestro power-up de salud allá arriba. Y si tuviéramos que cambiar esto a, digamos velocidad, inténtalo de nuevo. Tenemos nuestro power-up de velocidad allá arriba en la esquina y eso es animador. Entonces todo está funcionando como se pretendía. En cuanto a la animación para entrar. El siguiente video, vamos a seguir adelante y darle nuestro poder, algo de movimiento y crear un spotter para que aparezca en nuestro mundo al azar. 14. Potencia hacia el Spawner: En este video, vamos a seguir adelante y crear el movimiento de nuestro Power of Habit que viene de la parte superior de la pantalla y llegar hacia el jugador. Entonces para hacer esto, vamos a necesitar algunas de nuestras cosas estándar aquí. El primero es la velocidad añadida a nuestro power up. Hasta el momento, la velocidad de colon es igual al vector dos punto 0. También vamos a necesitar una velocidad. Podemos establecer eso a, voy a usar 200 para este proceso, tenemos que pasar en nuestro movimiento y deslizarnos con velocidad como nuestro primer argumento. Y para nuestra lista, podemos decir velocidad punto x punto y porque nos estamos moviendo vertical es igual a velocidad. Ahora estamos usando un positivo porque estamos bajando. Si lo estamos haciendo negativo estaría subiendo a menos que los consiguiera al revés. Ya veremos en un segundo y probemos nuestra escena. Y ahí va, moviéndose por nuestra pantalla. Entonces sí los tengo en el, la orientación correcta. De acuerdo, así que ahora tenemos los que van. Voy a seguir adelante y agarrar de nuevo mis dos comentarios de mi jugador. Y los voy a pasar a mis Power Apps aquí. Evita cualquier confusión. Nosotros vamos. Y ahora tenemos movimiento para el poder arriba, y tenemos nuestro poder de animar. Necesitamos realmente engendrarlo en el mundo. Entonces para esto, voy a crear una nueva escena, seleccionar otra para mi nodo. Y yo sólo voy a usar el nodo básico que encontrarás en la parte superior. Y esto será por spawner. Voy a seguir adelante y cambiarle el nombre de spawner. Este spotter tendrá un temporizador. Ahora la cantidad de tiempo que quieres configurarlo va a ser completamente de ti. Para tal efecto. Sólo voy a ajustarlo a tres segundos y activar autostart en mi escena. Spider.js PUEDE agregar un nuevo script, mi spawner. Asegúrate de que esté en la carpeta correcta. Y ahora en realidad podemos crear la aplicación de vinculación de nuestros power-ups. No queremos que aparezcan power-ups colocados por todo el mapa, ¿verdad? No queremos colocar a mano todos nuestros power-ups. Y tal vez vas a ir como 4 mil pixeles por encima de nuestra escena real o cualquiera de eso. En realidad queremos engendrarlo al mundo. Queremos que sean aleatorizados. Entonces es diferente lo que los poderes obtendrán cada vez. Nunca es lo mismo. Enrealidad es hacer esto. Vamos a crear algunas variables. Vamos a crear uno que sostenga nuestra lista de power-up. Diga lista de power-ups. Eso va a ser una matriz, una matriz de cadena de piscina específicamente, eso es sólo va a mantener la salud. Escudos. Nuestra velocidad, y multi exactamente los mismos nombres y ortografías de las animaciones que usamos anteriormente. No necesitamos preocuparnos por la función del proceso en absoluto ni por la función ready. La única función de la que debemos preocuparnos ahora mismo es nuestro temporizador. Y cuando lo nuestro tiempos L. Así que voy a seleccionar el temporizador, la pestaña nodo aquí en la parte superior. Haga doble clic en el tiempo de espera asegura que el spawner esté seleccionado y presione el botón de conexión. Ahora podríamos haber conectado esto a través del código. Esto es cierto, pero también es la forma más sencilla de hacerlo. Si eres nuevo en hacer algo de este código en tiempo de espera. Y lo primero que tenemos que hacer es llamar al azar. Y va a aleatorizar la semilla y evitar que tengamos el mismo resultado cada vez. Porque si no hacemos eso, nuestra semilla seguirá siendo la misma. Y por ejemplo, podríamos obtener velocidad de escudo, velocidad escudo multi salud, velocidad de escudo multi salud, etc. Y eso no es muy aleatorio. Tampoco es muy emocionante. Entonces lo vamos a aleatorizar cada vez que se agote el temporizador. Y vamos a necesitar una variable que mantenga nuestro poder obsceno. Diga r es igual a recarga. Y vamos a tirar de nuestro poder obsceno en. Ahora que tenemos eso justo después de aleatorizar, podemos crear una instancia de potencia de barra arsina. Es igual a nuestra instancia de punto ascendente. Entonces ahora que tenemos una instancia de nuestra escena, podemos establecer la posición de donde quieres que abarque. Ahora, si vamos por la parte superior, queremos que sea en cualquier lugar al azar aquí arriba, al azar arriba. Ahora si echamos un vistazo a nuestro proyecto y si te acuerdas, bajas a nuestra exhibición. Nuestro ancho es de solo 224. Entonces eso es con lo que tenemos que trabajar. Así que vamos a decir var posición subrayado x es igual a Randy, que es un entero aleatorio. Y si hacemos un signo de porcentaje seguido de un número como el siete, esto nos va a dar un número aleatorio entre 06. Entonces si hacemos 224, esto nos dará un número aleatorio entre 0223. Ahora, siempre podemos cambiar esto. Por ejemplo, algo que podríamos hacer es que podríamos hacer entre 0201, pero luego también podemos agregar un 23 adicional. Entonces esto ahora nos dará un número entre 23224. Y la razón es que vamos a conseguir nuestro número. Entonces digamos por ejemplo, obtenemos 0, se seleccionan. Entonces vamos a sumar 23 a eso. Por lo que el número más bajo que podemos obtener como 23. Y el número más alto que podemos obtener es ya que 200 está en la parte superior de nuestra lista, es 200 más 23. Por lo que sin embargo, quieres decidir dónde trabajarán tus spawns dependerá de ti. Por el tiempo actual. Yo sólo voy a seguir adelante y usar a 24. Ahora que tenemos una posición, necesitamos subir nuestro poder aleatorio que se crea. Entonces vamos a trabajar esto de la misma manera. Vamos a decir var hora es igual a Randy. Y vamos a pasar en otro número usando el por ciento. Sólo. Esta vez vamos a usar el tamaño de nuestra lista de Power Apps. Ahora lo que el tamaño va a hacer es que nos va a proporcionar un número de cuánto tiempo es nuestra matriz, cuántos artículos hay aquí. Entonces 1234, lo que significa que vamos a conseguir un número entre 03, lo que nos funciona porque cuando estamos hablando de un índice, tenemos 0123, ¿verdad? Empezamos a 0. Por lo que el tamaño nos dará el número perfecto. Y si tuviéramos que añadir otras cosas aquí, como, no sé, vayamos con explosión, ¿no? Entonces. No tenemos que cambiar nuestro código en absoluto. Simplemente podemos cambiar o simplemente podemos agregar un nuevo artículo a nuestra Power App List. Acude a nuestra escena de power-up y creó nueva animación, y estaremos bien. No tendremos que tocar nuestro código en absoluto. Ahora que tenemos la posición queremos que la desove. Y el poder o el poder que queremos que se muestre y se muestre en juego necesitaría establecer en realidad ambas dos cosas y agregarlas a nuestra escena para poder ser vistas. Entonces, para hacer esto, podemos sacar bien nuestro poder o instancia de nuestro poder aquí arriba. Vamos a fijar la posición. Queremos la x propiedad de eso. Por lo que queremos fijar la exposición de eso a nuestra posición. Bajo x, sea cual sea ese número aleatorio. Ahora bien, si echamos un vistazo a nuestro script de power-up aquí, recordemos que creamos, hicimos una función llamada create power up, y pasamos en un tipo. Este tipo va a ser el poder que pasemos. Por lo que el tipo de poder será uno de estos aquí, que también es el mismo nombre que nuestras animaciones. Entonces también vamos a reproducir una animación basada en lo que sea que pasemos. Para que podamos ir al poder. En nuestra instancia aquí, vamos a llamar crear poder. Y eso toma un argumento. Y ese argumento va a ser nuestro poder. Y esos no deben ser una minúscula B mayúscula. Vamos, está bien. Entonces ahora tenemos nuestra posición siendo puesta. Tenemos el tipo de poder siendo establecido y nuestra animación debería estar siendo reproducida. Todo lo que tenemos que hacer ahora es agregar esto a nuestra escena. Y como nuestro spawner no se mueve ni nada, simplemente agregamos directamente a nuestro spawner. Decimos sumar poder infantil. Y ahora si tocáramos nuestra escena de nuestro spawner aquí y echar un vistazo. Oh, mi error. Es poder de arrastramiento, no poder de arrastramiento. De acuerdo, solo guardemos eso y volvamos a probar la escena otra vez. Cada vez que esto se agote, deberíamos ver. Muy bien, Una vez más pequeño que aquí, me olvidó cómo nos da un número. Todavía tenemos que acceder a lo que es eso. Entonces tenemos que entrar en nuestra, nuestra , nuestra lista de x. Y el índice que vamos a pasar como nuestro poder. Mi error ahí. Estaba saltando un poco por delante de mí mismo. Ahora si seguimos adelante y lo probamos, ahora deberíamos ver nuestros poderes desovar en una animación. Estos son escudo. Y esperamos de nuevo el cronómetro, su velocidad. Es otra velocidad. Y vemos que es completamente al azar. Cada vez que conseguimos tres cabezas seguidas, Eso es mucha velocidad para nuestro personaje. Ahí hay otro escudo. Velocidad, tiene mucho, mucho en el medio ahí, hay una velocidad de disparo múltiple. No nos estamos poniendo demasiado en el camino de la salud por el momento. Ahí hay una nave, estamos recibiendo muchos escudos, lo cual podría estar bien. Ahí hay un sueco. Esa es otra velocidad que estamos recibiendo mucho de hablar. ¿ Podemos tener una salud aquí, ejecución hipotecaria? ¿ Qué obtenemos una x? Conseguimos un multi. De acuerdo, así que al parecer no vamos a conseguir pase nada de salud aquí para nuestros power-ups, cual es lamentable, pero es aleatorio. Aparecerá, confía en mí, simplemente todo está a la altura de orangey en ese punto. Ahora todo lo que tenemos que hacer es ir a nuestro mundo y a nuestro pequeño icono de cadena aquí arriba y simplemente agregar a nuestro spawner a la escena. Y ahí vamos. Ahora tenemos power-ups desovando en nuestro juego. No hacen nada en este momento, pero sí aparecen. Y siempre podemos ajustar nuestro temporizador en cuanto a cómo queremos que esto vaya en el futuro. Hay una salud que tenemos para nosotros mismos. Ahora, un tema que vamos a tener aquí. Un tema aquí es nuestro power up. A veces no queremos que siempre se genere, encienda. No queremos que esté encendido cada 20 segundos, por ejemplo, o cada dos segundos. Quiso a veces no conseguimos un power up y a veces lo hacemos. Entonces para algo así, si quieres tener esa oportunidad aleatoria ahí dentro, solo para agregar un poco más de aleatoriedad a tu juego. Entonces podemos crear otra variable aquí llamada vamos. Llamémoslouna oportunidad. Y lo volveremos a establecer igual a un entero aleatorio. Y podemos pasar en un número un porcentaje de dos. Y ahora esto va a decir 0 o uno. Entonces podemos decir 0, no gasta nada, y lo hace. Entonces para eso podemos igualar azar. Diré 0. Esto pasará y en uno en realidad generará el poder de lo que necesitamos para aprovechar esto en uno más. Aquí vamos. Ahí vamos. Entonces ahora no siempre tenemos un power-up entrando. Entonces para mostrar esta renta Wassip bajo el 0, diré que no hay poder. Sigamos adelante y corramos hacia nuestro mundo y podemos echar un vistazo a esto. Ya ves que llegamos a encender esa vez y si vemos nuestra salida tarde o temprano, deberíamos darle a un 0. Ahí vamos. Sin alimentación. No hay energía otra vez. Tres casos sin poderes en fila. Por lo que se puede ver ya a pesar de que tenemos un temporizador corto, ya que es una oportunidad 5050 aquí, realmente estamos reduciendo el potencial. Pero al mismo tiempo, se puede ver que también estamos obteniendo muchos poderes. Entonces si querías cambiar esto a, digo un 10% de posibilidades, entonces podemos entrar aquí y podemos decir diez, ¿no? Podemos establecer esto en diez números, así que del 0 al nueve. Y todo lo que tenemos que hacer es subir aquí. Puedes configurar esto al número que queramos. No importa. Entonces lo configuramos en 0. Por ejemplo. Podríamos simplemente pasar en los demás como un comodín y decir, nada de poder. Entonces ahora cada vez que sea largo nuestro temporizador, creo que es 1 segundo. No creo que lo cambiara. Sólo tenemos un 10% de posibilidades de un power up desove. Entonces, como quieras hacer eso, ¿qué quieres ir con la ruta 5050? O si quieres ir con un porcentaje de probabilidad como este. Entonces esto es 10%. Si cambiamos esto a un cinco y lo ejecutamos, ahora tenemos una oportunidad de uno en cinco. Entonces, uno de cada cinco sería 20% de probabilidad de que nuestro power up desove. Lo cual es un bastante decente, siempre puedes modificar esto a medida que vayan tus niveles. Si tienes niveles o simplemente puedes hacerlo un scroller infinito y tal vez ajustar el número. Para que puedas cambiar los cinco ahí para tal vez aumentar conseguir horas extras. Pero de todos modos, estoy seguro que este video se está haciendo bastante largo en este punto, pero ahí es cómo creamos power-ups. Ahí está cómo podemos hacer la probabilidad 5050 de si es desova o no. Ahí es cómo podemos hacer un porcentaje de probabilidad de un desove de encendido. Y recuerda, puedes entrar y podrías cambiar el temporizador en nuestro spawner. Aquí. Se puede seleccionar el temporizador y no tenemos tres segundos. Puedes ajustar esto a sin embargo, por mucho tiempo que quieras que el tuyo esté entre potenciadores potenciales. Entonces con eso, espero que tengas una idea bastante buena. ¿ Cómo se crea un power-up? ¿ Cómo detectarlos en el mundo? Voy a seguir adelante y volver a guardar eso. Así que ahora sabes cómo crear power-ups, agregarlos a tu lista, crear las animaciones para él, y engendrarlas en tu mundo para que las usemos. Las auditorías que quedan para las Power Apps ahora es poder interactuar con ellas y hacerlas actuar en consecuencia en función de lo que son. 15. Activación de poder: Muy bien, Sigamos adelante y creamos nuestros power-ups y los hagamos funcionales. Que en realidad puedan hacer cosas e interactuar con el jugador no lo recogería. De acuerdo, así que entremos a nuestra escena de power-up. Y podemos seleccionar nuestra zona 2D. Y en realidad vamos a pasar en una señal de cuerpo ingresada. Podría pasar eso justo hasta nuestro poder aquí arriba. Y ahora lo primero que queremos hacer es asegurarnos de que este sea el jugador. Por lo que voy a comprobar si jugador y cuerpo y cuerpo nombre punto. Y puedo verificar dos veces. Sí, sí tengo mi cuerpo cinemático aquí llamado jugador con una P. mayúscula Así que esto debería funcionar. Lo siento, si el jugador en y el nombre del punto del cuerpo cuando vienen aquí y podemos tener lo que pasó en consecuencia. Ahora claro que queremos que esto dependa del tipo de poder. Pero por ahora, podemos seguir adelante e imprimir. Y podemos decir poder obtenido. Y si tuviéramos que jugar esto ahora, cuando nos topamos con nuestro poder, cuando uno de ellos desove, deberíamos ver eso impreso en la consola. Boom, ahí vamos. Poder obtenido. Entonces la verdadera pregunta se convierte en, ¿qué queremos que hagan estos con cada poder? Bueno, aquí podemos usar la velocidad como ejemplo. Pero lo que quiero que hagas es que intentes averiguar cómo podemos conseguir el power-up de velocidad para aumentar la velocidad de nuestro jugador. De acuerdo, así que adelante, pausa el video y tómate un momento para hacer eso. De acuerdo, bienvenidos de nuevo. Voy, voy a pasar, y lo que voy a hacer es usar una declaración de matemáticas y voy a igualar mis tomas de poder. Así que la potencia máxima apretada. Y voy a decir, si el tipo es igual a velocidad, lo que voy a hacer es que voy a acceder al cuerpo, que es nuestro jugador. Recuerda, voy a, voy a obtener el valor de la velocidad, la velocidad del punto corporal, y voy a poner eso en 200. Entonces sea cual sea nuestra velocidad, la vamos a multiplicar. Y para evitar cualquier error por ahora, sólo vamos a llamarle el comodín y golpear pasado. Entonces vamos a ver cómo pasa eso ahora. Por supuesto, tenemos que esperar hasta que consigamos un power-up de velocidad para que aparezca. Si tenemos suerte, conseguiremos uno de inmediato. Se puede ver lo lento que nos movemos por aquí. Y eso debería duplicarse en cuanto consigamos un power-up de velocidad, eso es Salud, no pasa nada. Eso está bien. Lo mismo con escudo porque esto cae bajo nuestro comodín, que por el momento no está haciendo nada. Eso es más salud. Su velocidad. Lo golpeamos y se ve que vamos mucho más rápido. ¿ Listos? Ahora claro escudo, eso nos vamos a perder. Si conseguimos otra velocidad que debería multiplicarse. Entonces entiendo, ni siquiera nos va a multiplicar porque lo estábamos poniendo a través de difícil a 100. No estamos multiplicando el dulce en absoluto. Entonces todo esto está bien y dandy, pero también necesitamos echar un vistazo a reducir nuestra velocidad de vuelta a la normalidad en algún momento. Entonces lo que vamos a hacer es primero, vamos a crear una nueva variable llamada multiplicador de velocidad. Y vamos a poner eso en dos. De esa manera podremos multiplicar esto Con Facilidad en el futuro. Entonces vamos a establecer esto dos veces iguales, lo que significa que vamos a establecer velocidad igual a tiempos de velocidad lo que pongamos en el lado derecho aquí, que en este caso va a ser nuestro multiplicador de velocidad. Entonces estamos diciendo que la velocidad es igual al multiplicador de tiempos de velocidad, por así decirlo Tom steel. Y eso nos dará el mismo resultado es sólo un poco más modular porque eso vendría aquí y sólo podemos ajustar esto a lo que queramos que sea. Por el momento. Sólo lo voy a dejar en dos ocasiones. ¿ De acuerdo? Por lo que ahora necesitamos una forma de que la velocidad desaparezca. Entonces para mi jugador, lo que quiero es mi velocidad. Quiero que todos mis power-ups duren. Yo diría diez segundos. Entonces voy a crear un temporizador en mi reproductor y llamarlo nuestro temporizador de aplicaciones. Voy a fijar el tiempo de espera para ello diez segundos porque es el tiempo que quiero mi corte de power-up. Voy a conectar la señal de tiempo de espera a mi jugador. Y ahora cuando pase el tiempo de espera, vamos a hacer dependiendo del power up que esté activo. Entonces vamos a crear una nueva variable llamada potencia activa. Y eso sólo será una cuerda. Y vamos a decir partido poder activo. Entonces cuando nuestro temporizador cronometra l Así que al final de nuestros diez segundos, vamos a ser lo que es nuestra potencia activa. En este caso, estamos trabajando con la velocidad como nuestro ejemplo. Entonces vamos a decir que cuando se acabe nuestro cronómetro, vamos a volver a poner nuestra velocidad a la normalidad. Entonces vamos a conseguir nuestra variable de velocidad y volverla a poner en 100. Y por el momento, si tenemos algo más, simplemente pasaremos. De acuerdo, entonces si fuéramos a correr esto, ahora, te darás cuenta que hay, aquí hay un problema. Ahora si seguimos adelante y esperamos este escudo y ¿sabes qué? Voy a seguir adelante e imprimir aquí abajo sólo para asegurarme de que no estamos contando mal. Velocidad normal. Intentémoslo otra vez. Nepalí. De acuerdo. Ven aquí con la velocidad de aparecer en cualquier momento. Al parecer que se está poniendo realmente desafortunado y no consiguiendo ningún power-ups mientras estamos tratando de probarlos aquí. Por ser un súper desafortunado. Pero puede suceder, por supuesto, porque todo es aleatorio. Entonces parece que estamos recibiendo una temporada bastante seca en nuestros power-ups. Su velocidad, lo conseguimos. De acuerdo. Ya se ve que vamos a exceso de velocidad. Si nos fijamos en la salida, podemos ver que cualquier velocidad de segunda hora ha vuelto a la normalidad. Pero no lo hace. ¿Y por qué no lo hace? Porque en realidad nunca arrancamos el temporizador. Y eso, claro, va a ser un problema. No podemos devolver nuestro discurso normal al final del tiempo si nunca arrancamos el temporizador. Entonces lo que tenemos que hacer de vuelta en nuestro power up es cuando es velocidad. No sólo hay que cambiar el multiplicador o lo siento, perseguir el valor dulce. Pero tenemos que hacer también body dot get node. Echemos un vistazo. ¿Cómo lo llamamos? Lo llamamos temporizador de encendido. Entonces vamos a tener una cuerda aquí llamada power Tyrone. Asegúrate de que esté escrito exactamente igual o tendrás un error. Entonces temporizador de encendido y diremos punto de inicio. Entonces vamos a arrancar el cronómetro. Y ahora si lo jugamos, no sólo aumenta la velocidad de obturación, sino que arrancará el temporizador. Y así cuando termine el temporizador o la velocidad debe volver a la normalidad. Pero si lo piensas, todavía nos falta una cosa crucial en cuanto a por qué nuestro temporizador en realidad no volverá esto a la normalidad. ¿ Se puede pensar en lo que es eso? Eso está justo dentro de nuestro jugador. Estamos basando esto en el poder activo, pero nunca establecemos lo que es ese poder activo. Entonces, dentro de nuestro script de power-up, también necesitamos establecer eso también. Por lo que el cuerpo de punto de potencia activa. Claro, eso lo deletreé bien. Poder de subrayado activo. Podemos establecer eso igual a velocidad. O si no queremos ponerla ahí. También podemos configurarlo aquí cuando sabemos que no queremos configurarlo. Cuando creamos la Power App, solo queremos hacerlo, no la recogeríamos. Entonces tenemos que hacerlo aquí abajo dentro de nuestro partido. ¿ De acuerdo? Entonces si lo probamos ahora, o la velocidad debería aumentar. Como lo teníamos antes, el acto de poder debe fijarse. Entonces sabemos qué hacer cuando se acabe el cronómetro. Y deberíamos estar empezando en el cronómetro para que se agote. No pasa nada. Y sólo esperamos a la velocidad. Tenía un errata a mi nombre. Aquí está el problema. Tengo un yo mayúscula y mi temporizador. Necesito arreglar eso. Ahí vamos. Yo Aaron fuera debido a un errata. Por eso es importante que te asegures de deletrear las cosas exactamente de la manera en que lo tenías antes. Porque cuando estamos comparando cadenas, y mayúsculas y minúsculas son dos caracteres muy diferentes. Entonces sigamos adelante y esperemos de nuevo aparezca otro power-up de velocidad. Es por esto que siempre probamos el código a medida que avanzamos. Nosotros no queremos. Un montón de cosas en y luego probarlo y tener como 30 errores diferentes de todas estas diferentes ubicaciones que aparecen. Queremos asegurarnos de que captemos el error cuando suceda para que podamos solucionarlo de inmediato. Por lo que sólo esperamos a que aparezca ese power-up de velocidad. Es otra salud. Boom, boom, boom, boom. Disparos. Eso aún funciona. Obtenemos una pantalla que es escudo. Hay una velocidad. Ahí vamos. Sepuede ver donde mucho más rápido y asume que se agota el tiempo. A ver que impreso vuelve a la normalidad. Y estamos frenados de nuevo. Entonces ahora tenemos un power-up de velocidad que funciona como se pretende, además de volvernos a la normalidad. Entonces lo último que tenemos que hacer es en realidad ajustar las cosas para la memoria, porque por el momento sí tenemos una fuga de memoria en nuestro juego. Y eso se debe a que nuestras Power Apps nunca desaparecieron aunque están fuera de la pantalla. Todavía existe dentro de nuestro mundo. Entonces lo que queremos hacer es deshacernos de nuestra declaración impresa ahí. Y en nuestro poder cuando interactuamos con el jugador, queremos liberarnos. Ahora recuerda, self es opcional, así que solo podrías escribir q para cada uno, igual que hacemos con ese niño. Personalmente, prefiero escribir en auto, pero no tienes que hacer cola libre cuando el jugador toca el power up. Pero también queremos echar un vistazo en el proceso si nuestra posición como desaparece. Entonces queremos decir si eso es todo capitales. Entonces decimos si self dot session dot y es mayor que, y si recordamos 400 de largo. Entonces digamos que si es mayor a 400, pero llegamos a factor en el tiempo extra porque el punto va a estar en medio del verso, ¿no? Entonces estamos diciendo por 20. Entonces si nuestra posición es mayor a 420, entonces de nuevo sólo vamos a decirle a nuestro power up para eliminarse a sí mismo. Y si no tuviéramos eso, lo podrías ver en la pestaña remota, que te mostraré aquí en un segundo. Vamos a seguir adelante y jugar, y verás remoto en el lado izquierdo aquí, según hit que este es nuestro juego ya que está corriendo. Entonces, si abrimos nuestro spawner, ves que entran las Power Apps. Y verás una vez que salgan de pantalla, se borrarán ellos mismos. Ahora antes no estaban haciendo esto. Si lo deseas, puedes ir y puedes comentarlos. Y ahí vas. Ya viste desaparecer ese power-up. Y si quieres, puedes volver atrás, comentar eso fuera y puedes echarle un vistazo a lo que desapareció. Cuando hablo aparece. Deberíamos toparnos con él y deberíamos ver cómo desaparecen ese canje. Y en realidad podríamos optimizar ligeramente este código R. Pero solo asegurémonos de que esto funcione. De acuerdo, así que ahí está nuestra velocidad. Nos dieron impulso de velocidad. Desapareció un power-up. El temporizador debe estar agotando cualquier retorno secundario a la normalidad. Entonces todo sigue pareciendo que está funcionando perfectamente bien. Entonces lo que estaba hablando y podríamos referirnos o hacer que nuestro código vuelva a la normalidad también, o mejor dicho optimizar un poco más ya que no queremos escribir self dot Q cada, para cada potencia, porque quieren hacer eso cada vez sin importar. Entonces lo que vamos a hacer es que en realidad vamos a bajar y fuera de nuestra declaración de partido, siempre y cuando la interacción del jugador, así que todavía estamos dentro de la declaración if. Lo vamos a liberar. Entonces lo que puedes hacer ahora es que ahora puedes entrar aquí y puedes crear más power up para que puedas reemplazar nuestro comodín ahí. Entonces podemos decir salud, por ejemplo. Y ahora entras aquí y a crear una variable de salud en tu jugador si quieres, si querías saltar adelante y hacerlo ahora. Y podrías agregar uno a la salud de tu jugador. Podemos echar un vistazo al multi y puedes activar eso y tenerlo para que si estás en uno de rodaje ahora puedas disparar dos, por ejemplo. O tal vez cambies el proyectil por completo. ¿ Cuándo conseguiste el multi, lo que quieras hacer esto completamente depende de ti, pero ahora puedes crear diferentes efectos para cada potencia que retomaría. Y los veré chicos en la siguiente. 16. Escudos: De acuerdo, así que sigamos adelante y sumemos el poder del escudo a nuestros jugadores para que podamos evitar que nos golpeen. Entonces vamos a tener una representación visual de esto. Yo me ocuparé de ello, desapareceré una vez que lleguemos a la porción dañada de este curso. Entonces voy a seguir adelante y evitar que ese avance o juego de prueba vaya. Y deberías ver en el interior de tus sprites que aquí tenemos otra hoja de cálculo para nuestros escudos, y sabemos cómo funciona esto. Ahora podemos seguir adelante y crear un sprite en un reproductor de animación a él. Podemos seguir adelante. Td visto, todo lo que necesitamos es un sprites. No necesitamos ninguna animación para esto. Entonces podemos ir directamente por un sprite para nuestra raíz aquí. Llámalo escudos. Vamos a necesitar un reproductor de animación. Porque por supuesto necesitamos que nuestras sombras estén animadas. Puedes dejarlos diádicos si quisieras, pero no soy malo. ¿ Qué necesitamos? Necesitamos escudos, ahí está nuestra textura. Trae eso en animación. Tenemos marcos horizontales, tres verticales. Y ahí está nuestro escudo. Podemos seguir adelante y establecer algo de animación para esa escena. Podemos crear nuestra animación. La animación lo sabía. Eso termina en el mismo. ¿Cuál es su 0.75? Entonces 0.9, puedo dejar eso nos diría que hagamos un bucle y ya veremos cómo se ve eso. De acuerdo, así que eso se ve un poco. Se ve bien. Podríaser un poco lento o rápido para algunas personas, depende completamente de ti. Lo primero que noté es que el mío está borroso de ir adelante y volver a importar eso rápido real. Y apague mi filtro. Muy importante, ahí vamos. Y toca eso. Ahora vamos. A ver. No quiero acelerar eso. ¿ Qué pasa si aceleramos eso? Sólo me voy a ir. Ahora, cambiemos esto a 0.1 en su lugar. Y todo se mueve para liderar o funcionalmente. Apúntalo ahí abajo. Tres, estos ven cómo se ve eso. Creo que eso se ve mejor. Ajustaré mi longitud aquí a 0.6. De acuerdo, entonces creo que estos son los números con los que quiero ir. Voy a ir con 0.05 en mi snap. Su longitud total es de 0.3. Creo que estoy contento con esta velocidad por mi escudo. Es posible que quieras tu más lento a mis vigilantes más rápido. Pero creo que esto es lo que quiero ir a salvar eso. Y ahora que tenemos este cráter, voy a seguir adelante y detener la animación. Y la animación aquí. Si configuramos nuestra animación actual para que sea escudos activos, eso debería estar reproduciéndose automáticamente cada vez que esté en la escena. Y vamos a necesitar un área de detección o cuando nuestros escudos sean impactados más tarde. Entonces voy a crear un área a D. Y eso necesita una forma de colisión. Por la forma, sólo le voy a dar un círculo, algo así. Y podemos echar un vistazo a eso con nuestro jugador para asegurarnos de que va a cubrir a nuestro jugador y jugador bloqueador de ser golpeado. A ver, vamos, abramos nuestro jugador. Y por ahora sigamos adelante y sumemos en nuestro escudo. Échale un vistazo para que podamos ver un poco a nuestro jugador acabado sobresaliendo. Entonces lo que voy a hacer es en realidad voy a aumentar el tamaño de mis escudos aquí. Voy a bajar aquí a transformarme y voy a aumentar mi escala. Eso podría ser un poco demasiado, tal vez 1.25. Déjenme echar un vistazo a que definitivamente está bloqueando todo, todos nuestros otros éxitos aquí. Ahórrate eso y échale un vistazo a eso en juego ahora. Lo que tenemos ahora, no animando como esperaba funciona, así que está bien. Simplemente podemos configurarlo para que se anime automáticamente dentro del propio script de escudo. Entraremos a nuestro campo. Es guión en la ubicación correcta. Escudo de guiones. Genial. Ya estoy listo. ¿ El jugador de animación dot play escudos activos. Y eso es todo. Aquí vamos. Ahora sabemos lo que es, cómo sería tener escudos alrededor de nuestro jugador. Ahora, por supuesto, no queremos esto todo el tiempo. Queremos esto todo en B cuando recojamos nuestro escudo están ahí arriba. Entonces ya podemos ir a entrar a nuestro jugador. Podemos cargar en nuestros escudos, digamos var, escudo, escena equivale a recarga, y traeremos nuestro escudo visto en el aire que es. Eso lo traeremos. Y para la detección de esto, podemos poner escudos a ser verdad. Barra blindada, verdadera. Y también por supuesto queremos echar eso también, que ustedes quieren que separemos. Este será un booleano. Entonces ahora podemos bajar aquí y crear un escudo de función, activar. Y vamos a necesitar un campo de instancia n igual a escudo visto instancia. Y ahora sólo falta añadir esto a nuestros jugadores. Duda de sí mismo. Y escudo infantil debería ser todo lo que necesitamos hacer aquí. Así que vayamos a nuestro Script de Power Apps. Y cuando golpeemos escudos, cuando esto se recoja, vamos a llamarlo escudo corporal activar. Vamos a volver a revisar tu ortografía en esa capa. Y sólo para estar seguro, voy a copiar la función y simplemente pegarla ahí. ¿ De acuerdo? Es correcto. Y podríamos borrarlo de nuestra capa. Ahora puedo seguir adelante y probar y cuando cogemos un show power up, el escudo debería aparecer sobre nosotros. Y esto va a ser por supuesto, RNG cuanto a cuando esto realmente aparezca. De acuerdo, entonces nos tenemos un escudo y ahí vamos. Dos asientos activando todo bien. Ahora todo lo que tenemos que hacer es configurar el escudo para que desaparezca. Lo cual de nuevo, podemos abordar eso cuando nos metamos en la parte dañada o el jugador que toma sección de daños del curso. De acuerdo, así que si has estado siguiendo hasta ahora, no te has desviado por tu cuenta. Ahora deberías tener un potenciador de escudo funcionando. Y acabamos de aparecer tener un bicho ahí porque recogimos un segundo escudo y ahora tenemos tres. Entonces podemos encajar más bien a nuestros dos, pero podemos arreglar eso. Podemos comprobar si el cuerpo de punto blindado. Asegúrate de que lo hice bien. Sí, blindado. Vamos a establecer a false por defecto no true. Diga si el cuerpo de punto blindado. Entonces vamos a decir si blindado es cierto, entonces si nuestro jugador blindado, no haremos nada. Entonces queremos lo contrario de esto. Entonces podríamos hacer signo de exclamación aquí al principio y decir, si no cuerpo punto blindado, lo que nos conseguiría un falso. O podemos escribir la palabra si no con cuerpo, no blindado, de la manera que sea más cómoda para usted. Voy a escribir la palabra, no sólo para hacerla más clara a simple vista. Si no cuerpo no blindado. Entonces si nuestra variable blindada aquí es falsa, entonces haremos eso. De lo contrario, no haremos nada de eso. Entonces ahora si fuéramos a ejecutarlo y toparnos con múltiples escudos, sólo debería funcionar para El su escudo que consigamos. Tenemos que entrar en una cosa más. Tenemos que entrar en nuestros escudos aquí. Tenemos que recordar para establecer el cuerpo quedó blindado a verdadero. Muy bien. Ahora para nuestras pruebas, se puede ver que nuestros escudos no van a apilar un escudo y esos son todos los shows que debemos conseguir. Y ahí vamos. Entonces tenemos nuestros escudos funcionando y parcheamos pequeño bicho que surgió. Muy bien. Entonces con sólo voy a volver a mi spotter y quitar esto ya no necesitamos probar eso y simplemente volver a poner esto de nuevo a decir que no hay poder. Entonces con eso, ahora tenemos un escudo de encendido, totalmente funcional. Bueno, en cuanto a meterse en el juego y ser utilizado. 17. Multi Shot: De acuerdo, en este video vamos a echar un vistazo a agregar un multi shot. Entonces en lugar de disparar uno de cada lado, vamos a disparar para proteger a Alice de cada lado. Y van a salir en un poco de ángulo. ¿ De acuerdo? Entonces lo primero que tenemos que hacer es que vamos a dirigirnos a nuestro script de capas. Y vamos a crear una variable aquí. Para el multi shot. A false por defecto. Podemos entrar en un lugar de pelea o tiroteo aquí. Eso en, y vamos a decir si multi tiro o decir si no multi tiro. Y hacer eso. Y entonces básicamente podemos hacer una copia de esto. Y viniendo allá abajo, pero luego estará repitiendo código. Pero necesitamos el nosotros extra de todos modos. Entonces un poco escuchar a alguien decir lf decir else-if, else-if multi shot. Y vamos a necesitar cuatro de estos, en nuestro caso, tres o así ahora tenemos cuatro desove, pero van a estar superpuestos en este punto. Vamos a dirigirnos a, a ver, a sumar a estos niños. Aquí hay escenas de tres y forestales. Ella en su mayoría, la mayor parte de lo que hemos hecho es sólo un copy paste de lo que teníamos arriba. Pero lo que también necesitamos cambiar aquí es la propiedad de la velocidad. Entonces necesitamos cambiar la x de eso. Entonces vamos a cambiar velocidad de punto de disparo punto x Podemos configurar eso a, vamos a ver. El primero ha querido ir a la izquierda y 34 a la derecha. Por lo que queríamos hacer era decir negativo 50. Y podemos copiar esto por delitos a su alrededor tres veces más. 34. Por lo que 34 van a ser positivos, 512 serán negativos 50. Y vamos a seguir adelante y correr eso. Eso en realidad nunca va a cambiar y tenemos que ir a una potencia. Cuando multi consigue hará su cuerpo. Multi tiro, ¿verdad? Copia ese disparo múltiple, cierto. De acuerdo, así que ahora puedes ver con nuestro multi shot, tenemos esta acción cruzada pasando. Ahora por supuesto, puedes ajustar tus números aquí a lo que creas conveniente. Y sólo tenemos que decidir cuándo apagar este multi tiro. Ya ves que ya no estamos disparando también. Estamos disparando proyectiles. Y si reinicio eso de verdad rápido, ya ves será volver a disparar dos. Por ahora, todo lo que necesitas hacer es decidir cómo o cuándo se apaga esto. Y luego ven aquí a nuestro jugador y velocidad de potencia activa. Entonces creo que también voy a rehacer esta sección, o inhabilitando nuestros poderes. Pero podemos guardar eso para otro momento. Pero por ahora, podemos ver que esto se enciende, funciona. Y vamos a ver cómo podemos habilitar multi shot, que eran función no viene aquí para habilitar realmente multi shot. Esto dará vuelta multi tiro verdadero. Entonces lo que podemos hacer desde aquí es que podemos hacer, podemos usar un rendimiento. Ahora esto va a funcionar de manera diferente en 4, ligeramente diferente. No necesitas estos paréntesis. Entonces tal vez tengas que echar un vistazo y ver cuál es la diferencia para la x No estoy 100% seguro de eso. Pero tenemos rendimiento y luego queremos obtener tree dot create timer. Dentro de aquí está el tiempo que queremos que dure. Diremos cinco segundos, obtendremos los tiempos de espera, y luego estableceremos multi shot en falso. Ahora bien esto podría estar usando, este método podría ser la forma que rehago nuestras Power Apps aquí, ¿verdad? Que la velocidad así como nosotros avancemos. Entonces vamos a entrar y en lugar de habilitar multi shot, vamos a decir body dot enable multi shot. Y echaremos un vistazo, veremos cómo funciona eso, asegurarnos de que eso funcione. Entonces estamos disparando a dos por la puerta, lo cual es genial. Tenemos un disparo múltiple, estaba disparando a cuatro de ellos. Al final de nuestro temporizador. Volvemos a ustedes yendo con dos. Entonces ahí vamos. Tenemos un multi shot que funciona maravillosamente. De acuerdo, entonces tenemos un escudo que se activa y habilita para nosotros, y tenemos un disparo múltiple que se enciende y nos da nuestro poder y habilidad. De nuevo, puedes simplemente cambiar este número a lo que quieras por el tiempo que quieras que dure. Y si tienes diferentes Power Apps de disparo que habilitas en el futuro, esto es todo lo que tienes que hacer. Cambia cualquiera que sea tu habilidad, y cambia lo que sea que dispares o cómo sin embargo, como sea que vayas haciendo eso. Entonces si tienes un láser, lo vas a traer. Vas a tener una instancia de una escena completamente diferente. Por ejemplo, en el caso de un láser, simplemente le agregarías al jugador porque queremos que el láser se quede con el jugador. Por lo general, si vas a tener como un rayo láser tradicional, más bien, en lugar de disparar láseres como un bláster. Pero ahí vas. Así es como funciona el disparo múltiple. Y como dije, probablemente voy a cambiar el código aquí por la velocidad. Y en lugar de usar un temporizador de encendido, solo usa una pequeña función como este activador, agridulce. 18. Pequeños cambios: De acuerdo, esta es su estancia. Un breve video. Sólo quiero mostrarles que sí re rehacer la velocidad que acabamos de crear en el mismo formato que hicimos para nuestro multi shot aquí. Por lo que tenemos una función llamada enable speed. Agregó un parámetro ahí dentro que podemos pasar en un multiplicador. Dije que mi velocidad sólo fuera tiempos de velocidad y multiplicador. Esperamos nuestros cinco segundos. Una vez que eso sube, disminuimos nuestra velocidad nuevamente por nuestro multiplicador. Y en el poder anexar o simplemente llamar habilite la velocidad. Y pasamos en ese multiplicador que estábamos usando de antemano. Entonces eso es lo único que ha cambiado ahí por la velocidad, escudos en el multi tiro se ha mantenido igual. Pero lo que podemos hacer es uno puede hacer también. Si abrimos nuestra escena de proyectiles, podríamos deshacernos de nuestra forma de colisión. Se va a sacar a colación, tendremos un triángulo amarillo si eliminas aquí la forma de colisión. Pero si sólo lo quitamos, eso está perfectamente bien. Y si tuviéramos que hacer eso, verás aquí y el multi tiro que los dos en el medio que están justo uno contra el otro, ahora van a disparar entre sí en lugar de chocar con el uno al otro y yendo derecho. Ahora esos son dos resultados completamente diferentes, son dos resultados diferentes. Por lo que depende de ti si quieres o no tener tu forma de colisión en tu proyectil aquí, habilitada o desactivada. Y como pueden ver, la velocidad está activada 54321 y volvemos a la normalidad. Ahí hay un disparo múltiple. Porlo que ahora puedes ver nuestras piezas intermedias cruzándose entre sí eventualmente. Entonces si no quieres tenerlos golpeándose unos contra otros y yendo perfectamente derecho. Eso es todo lo que tienes que simplemente apagar esa forma de colisión. Y podríamos simplemente desactivarlo por completo ahí porque no necesitamos verlo. Ahí vas. Se puede ver que se están cruzando el uno otro y nos estamos poniendo casi como un rodaje de ToString ahora. Pero ahí vamos. Depende de ti si quieres que tu colisión en tu proyecto se desactive. O si quieres dejar eso habilitado para esa apariencia de pantalla, o si quieres que sean crossover hasta ti completamente desarrollador y elección de diseño. Pero me imaginé que tiraría eso solo para que tú también lo supieras. 19. Configuración del enemigo: De acuerdo, En el video de hoy, vamos a seguir adelante y echar un vistazo a la creación de nuestro enemigo. Vamos a conseguir que nuestro enemigo sea creado de vez en cuando a continuación pasaremos a conseguir que nuestro enemigo dispare y nuestro desplazamiento vertical básico entre con nuestro enemigo, los movimientos. De acuerdo, entonces primero arriba, vamos a tener que por supuesto acreditar una nueva escena. Esto al igual que nuestro jugador, será un cuerpo cinemático, claro que va a ser un TD. Vamos a necesitar un derecho para nuestro enemigo. Ross, va a necesitar muchas cosas que tenemos en nuestro jugador aquí. Entonces podríamos agregar una forma de colisión, razón por la cual aquí tenemos nuestro triángulo. Entonces conseguimos nuestro cuerpo cinemático en un polígono de colisión. Quieres que la forma vaya. Y si echamos un vistazo a nuestro jugador, ¿qué más necesitamos? Podríamos utilizar un reproductor de animación más adelante si quieres crear animaciones de esa manera, específicamente para tus enemigos. Pero para esta configuración específica a nuestro enemigo, no lo vamos a necesitar, pero no vamos a usar una posición aquí para que tengamos una ubicación de donde nuestro enemigo está disparando desde una posición a D. por lo que a partir de arriba, podemos renombrar esto como enemigo. Yo lo llamaré la nave enemiga. No llamaría. Puedes llamarlo cualquier tipo de entidad que quieras que sea ésta específicamente. Ve a nuestro sprite. Podemos traer a nuestro enemigo y notamos que aquí es sólo un sprite normal. No es una hoja de sprite, así que no tenemos que preocuparnos por pintar la animación ni nada porque este spray solo va a estar moviéndose y disparando. No tenemos todas estas animaciones diferentes en él. Podrías, por supuesto, usar la hoja de cálculo si lo deseas. Aquí es donde puedo presentarles la vía alterna que mencioné anteriormente. Y eso es lo que la animación, siento, no el reproductor de animación, la animación animada, sprite animada. Entonces digamos que querías hacer una animación usando el sprite animado. Entraríamos, haríamos marcos. Podría decir que si no tienes ninguna, no estás usando una hoja de sprite. Acabas de tener PNGs individuales. Vienes aquí y haces un nuevo sprite frames. Vuelves a dar clic en eso. Y ahora tenemos nuestras animaciones aquí, ¿verdad? Y no entraría aquí e iría ocioso. Derecha, izquierda, derecha. Yse te ocurre la idea, podemos hacerlas así. Y en lugar de meterte con una línea de tiempo y posicionar tus fotogramas clave, tienes una velocidad aquí que determina lo cerca que estaría cada una de esas teclas, entonces todo lo que harías es simplemente traer cada enmarcan aquí uno por uno así. Y a medida que juega, lo recorrería. Y para echar un vistazo a eso, sólo volveremos a nuestro sprite animado otra vez y tenemos jugando. Podríamos echarle un vistazo, que por supuesto en este caso las cosas de ahí dentro. Entonces si nos vamos al ocioso, cuando ves ahí está nuestra nave y está jugando a través de nuestro marco CC el espectro. Entonces esa es la alternativa. Si solo tienes PNGs y no tienes una hoja de cálculo para tus enemigos. Así es como irías sobre eso. Lo que otra vez, esto es, en nuestro caso, el enemigo es sólo un ENG estático. Simplemente va a estar moviéndose en base a las coordenadas de la pantalla. Pero para futuras referencias, si todo lo que tienes son PNGs y no tienes hojas de cálculo o no quieres usar hojas de cálculo y quieres cortar mi reproductor y los power-ups todos en sus propias hojas. Así es como lo harías y sería lo mismo sin embargo. En lugar de llamar a un reproductor de animación, llamamos al sprite animado y reproducimos la animación ahora. Entonces como dije, eso no necesitamos para el nuestro, nuestro caso. Yo me desharé de eso. Y le mostraré otra vez al Sprite regular. Caja de colisión. Esto es sólo un rectángulo simple. Eso es todo lo que necesitamos . Esto se va a subir y lo cubriremos. Y puedes decidir cuánto de tu nave quieres cubrir. Entonces creo que sólo voy a cubrir esa parte y no tapar la porción de armas. Y mi posición para d. puedo asegurarme de que consigo el reflejo que está en rojo, que abajo. Ahí vamos. Simplemente me muevo eso un poco por delante del canon, un AAC. Si tuviéramos que tomar esto , muévelo. Tenemos nuestra posición y de ahí va a estar disparando. Hombres Lizzie, o 0. Ahí vamos. Entonces tenemos a nuestro enemigo. Guardenuestra escena. Y será enviado. Quetenemos nuestro enemigo básico configurado y listo para comenzar a disparar, moverse y ser engendrado en nuestro mundo. 20. Tiro con enemigos: De acuerdo, vamos a seguir adelante y hacer frente la capacidad de disparo enemigo aquí dentro. Ahora bien, te vendría que no se apagara igual que hicimos con nuestro jugador. Crea una escena personalizada con su propia toma, dale su color. Yo le doy su propia dirección. No tienes que hacer el código en eso. Simplemente vas a hacer que baje la pantalla en lugar de subir la pantalla. Pero para efectos de esto, les voy a mostrar cómo podemos usar el proyectil de los jugadores. Entonces vamos a usar esa misma, esa misma escena que tuvimos aquí. Si abrimos nuestras escenas, Ahí vamos. Entonces les voy a mostrar cómo podemos usar la misma escena aquí. Pero modificarlo para que el enemigo pueda usarlo, además de seguir permitiendo que nuestro jugador lo use. Entonces, para hacer esto, vamos a dirigirnos a nuestra nave enemiga. Vamos a agregarle el guión. Se asegura de colocarlo en la ubicación correcta de nuestros scripts. Golpea Crear. Y ahí vamos. Tenemos esto creado. Entonces para empezar por nuestro enemigo, vamos a necesitar que sean capaces de hacer. Entonces lo que vamos a hacer es vamos a agregar una variable aquí. Tiempo o nave enemiga. Vamos a agregar un temporizador a nuestra escena aquí. Y podemos usar el para tener cualquier espacio ahí dentro. Queremos evitar eso, evitar cualquier problema potencial. Y de vuelta en nuestro script, ahora que tenemos una variable de tiempo, en realidad podemos establecer esto a un número aleatorio. Y para hacer esto, en realidad vamos a dejar esto, tener un default allá arriba. Y dentro de nuestra función ready es donde la vamos a retocar. En caso de que vamos a llamar al azar. Qué va a aleatorizar nuestra c. para que podamos tener una verdadera aleatorización. De esta manera. No nos sale una boca repetitiva. Por lo que cada vez que iniciamos el juego, no nos vamos a salvar. 510131211. No vamos a obtener esa misma secuencia de números cada vez cuando aleatorizamos la semilla, eso va a cambiar, efectivamente cambiar eso cada vez. Entonces lo que vamos a hacer aquí es que vamos a llamar al azar solo una vez porque solo queremos cambiar el tiempo que obtenemos. Entonces vamos a establecer el tiempo igual a, y luego lo vamos a establecer a un flotador aleatorio. Y si echamos un vistazo aquí con esto, vamos adelante y metemos con Randolph obtendrá un número aleatorio entre 0, entre 01. ¿ De acuerdo? Eso es un poco útil. Pero entre 01, creo que eso va a ser muy corto. Y en caso de este enemigo, no queremos tener algo así como una ametralladora. Entonces lo que podemos hacer es hacer un azar, podemos redondear un flotador si seguimos adelante y usamos esos. Pero en cambio lo que somos, lo que creo que vamos a hacer es que sólo vamos a usar ¿dónde está aquí? Ya lo hemos usado antes. Nos vendría bien el despotricar. Ahí está, ahí abajo al fondo con nuestros porcentajes. Pero de nuevo, queremos, queremos mezclar esto un poco más. Entonces vamos a usar rango rand esta vez. Para que podamos obtener números de flotación. Sólo para sacudir un poco las cosas . Si quieres usar el aleatorio regular, solo tienes incrementos de números enteros. Eso se puede hacer. Pero para esto, creo que voy a usar rango rand. Como se ve aquí. De esa manera podemos conseguir un flotador y tenemos que pasar en dos argumentos, el número más pequeño y el mayor número. Entonces voy a decir que va a ser por lo menos 1 segundo entre el rodaje. A lo sumo. Voy a darle cinco segundos entre disparar. Ahora vamos a conseguir algo de tiempo entre 15 segundos minutero. Entonces podemos seguir adelante y conseguir nuestro temporizador de tiro. Y sólo fijaremos el tiempo. Podemos ver aquí en las propiedades se llama tiempo de espera. Espera subrayado, bien. Y podemos establecer ese igual al tiempo que acabamos de crear. Entonces ahora tenemos una cantidad de tiempo aleatoria. Con esto, podemos conectar nuestra señal para mi temporizador, que esto va a ser un poco diferente en 4 también. Si querías hacerlo a través de código. Si quieres mantener esto lo más fácil posible de seguir conmigo, solo sube aquí al nodo y haz doble clic en timeout. Es como nuestra nave enemiga y golpeó conectar. Ese camino va a ir a través de ambas versiones. Ya sea que estés usando la versión tres o la versión para el motor. Pero si querías conectar este nuevo código o tienes curiosidad de cómo hacerlo. Entonces en, en la versión actual aquí, vamos a hacer esto. Esa duda de sí mismo conecta mucho que iban a, vas a conseguir lo que quieres conectar. ¿ Cuál es tu temporizador de tiro? Ellos querrían conectar algo. Lo que queremos conectar es el seguimiento de la señal. Y esa señal, si la echamos un vistazo, se llama timeout. Entonces escribiríamos tiempo de espera aquí. Y el objetivo, que es a lo que quieres conectarlo. Recuerda cuando seleccionamos nuestra nave enemiga, cuando fuimos así y seleccionamos nuestra nave. Lo que seleccionas aquí, en este caso nuestra nave enemiga. Esto es a lo que queremos conectarnos. Y como el guión está en nuestra nave enemiga, sólo tenemos que decir uno mismo. Eso nos deja con un tercer argumento, básicamente solo siendo lo que quieras que sea el nombre del método. Entonces si vamos así, que este comando de aquí es esencialmente lo que el motor acaba de hacer cuando fuimos así y seleccionamos la nave enemiga y golpeamos a Connect. Ahora, en la versión cuatro, esto va a ser ligeramente diferente. Y no estoy 100% seguro de cómo se va a ver eso de arriba de mi cabeza. Pero como dije, la forma más fácil es simplemente entrar en esa pestaña de nodo y simplemente conectar la señal de tiempo de espera de esa manera. Entonces cuando se acabe el cronómetro, lo que vamos a hacer es disparar. Entonces obviamente para esto, vamos a necesitar nuestra escena. Entonces vamos a decir, vamos a cargar esto como nuestro no quisiéramos llamar a esto, solo querríamos llamarlo tiro. Y precargados en Suecia, que vean nuestro proyectil normal, traigan eso. A tiempo de espera. Haremos que nuestra instancia de tiro sea igual a o instancia de punto de disparo. Ahora lo tenemos y estamos listos para agregarlo a la escena. Caballo, esto se va a sumar para dudar de nosotros mismos. Pero en este caso, si hacemos uno consiguió que un buen padre sea agregado a nuestro spawner, cuál es nuestro spotter nunca se mueve de todos modos. Entonces eso no es demasiado grande, pero si quieres ir hasta el mundo, como hacemos con nuestro jugador. Entonces sólo podemos hacer que los padres dos veces. Ahora en la mayoría de los casos, se quiere tratar de evitar el uso de múltiples padres get solo para evitar posibles problemas en el futuro. Y ahí es donde la creación nuestras propias señales como esta entraría a jugar. Siempre que subes al árbol, es mejor práctica usar señales. Y cuando bajes por el árbol, solo tienes el nodo. Pero en este caso, específicamente para este tipo de juegos, esto no va a causar ninguna fuente de problema. Entonces podemos hacer para saltarse a los padres, no conseguir padre e hijo. Y podemos sumar en nuestra instancia tiro aquí. Entonces eso va a sumar esto al juego. El problema es, a estas alturas, es que sabemos que nuestra toma va a subir por la pantalla. Entonces lo que se dispara esto va a ser salir donde nuestros enemigos esencialmente se van a disparar. Y eso no es lo que queremos. Entonces lo que tenemos que hacer es modificar partes de ese proyectil. Entonces si venimos aquí, podemos echar un vistazo, estamos ajustando la velocidad y a una velocidad negativa. Para que podamos cambiar eso. Ahora que se ha añadido a nuestra escena. Podemos cambiar eso inmediatamente para que podamos sobrescribir eso. Entonces vayamos adelante y pongamos. Podemos conseguir nuestra oportunidad. Acceda a la velocidad y variable de la misma. La propiedad y de nuestra variable de velocidad, y ajustar nuestro tiro a nuestra velocidad. Ahora recuerden que nuestra velocidad es positiva. Entonces no lo vamos a restar aquí. Yo quiero ir positivo, que lo mandará por la pantalla y diferenciarlo de nuestro jugador. Si abro esa escena, si se acuerdan aquí en nuestro sprite, podemos seguir adelante y podemos cambiar el color aquí abajo en visibilidad y modular. Parece que hicimos eso en el cuerpo cinemático, lo que hará esto un poco más fácil. Esto es todo lo que vamos a hacer. Vamos a cambiar el modulado para que se vea diferente cuando sea disparado por nuestro enemigo. va a quedar conmocionado moduli. Y vamos a establecer eso igual a un color diferente. Entonces si solo escribimos la palabra color, se puede ver que la palabra color va a cambiar a un color. Y nosotros sólo lo hacemos. Si haces paréntesis como este, puedes pasar un valor RGB. Si utiliza comillas dobles, puede pasar en un código hexadecimal si lo desea. Lo que voy a hacer es aprovechar los colores incorporados porque hay muchos de ellos. Yo sólo voy a colorear, punto. Y ahora ya ves tenemos toneladas de diferentes colores aquí que podemos escoger de que ya está incorporado. Y muchas veces esto es todo lo que necesito hacer. Y por lo general funciona lo suficientemente bien para mí. Creo que voy a intentarlo. A ver. Vamos con un morado mediano. De acuerdo, entonces guardamos eso. Vayamos a nuestro mundo y creemos una nave enemiga. Nosotros sólo los traemos a nuestro mundo aquí y le pegamos al play. Deberíamos ser capaces de disparar dentro cinco segundos con base en cualquiera que sea su número de renta. Excepto que no lo es. Y la razón de eso es porque en realidad no iniciamos el cronómetro en ningún momento. Configúrelo. Nosotros configuramos nuestra corriente, pero no arrancamos el cronómetro. Vamos a conseguir nuestro temporizador de disparo y simplemente llamarlo la función de inicio en él. Y cuando se acabe nuestro cronómetro, también volveremos a hacer esto. Así que vamos a conseguir nuestro temporizador de tiro y columnas Inicio. Aquí vamos. Si sólo echamos un vistazo, podemos ver a mi oficial de proyecto subiendo y su proyecto fuera. Lo vemos ahí del lado izquierdo. Se está moviendo hacia abajo. Y la razón de ello es por qué mismo tema que tuvimos con nuestro jugador. Tenemos que arreglar la posición de la misma. Entonces si seguimos adelante y echamos un vistazo a nuestro jugador como referencia porque sí usamos la posición de jugador ahí. Podemos ver que obtenemos una posición de tiro. Y fijamos eso igual a nuestra posición 2D e igual a la posición global, cabeza hacia abajo en nuestro enemigo. Y podemos hacer esto en cualquier lugar. Lo sabíamos antes de agregar de niño o después. realidad no importa en este caso porque no estamos anulando nada dentro del proyecto Alex self. Entonces vamos a hacer tiro en posición y vamos a establecer que igual a tenemos esta disposición a D, vamos a llamarlo pausa posición de tiro. Establece eso igual a nuestra pausa de tiro. Posición móvil. Aquí vamos. Y lo ejecutamos ahora. Ahora debería estar disparando desde su recámara. Vemos mater amarillo y el suyo o morado. Ahora que el morado en este caso es un poco oscuro, podría ser difícil para el jugador verlo. Entonces voy a seguir adelante y cambiar este color. Y de esta manera puedes hacerle ajustes y decidir qué se ve mejor vista contra tus antecedentes. Ahora, usando una cal, esto sería muy, eso es muy, muy brillante y fácil de ver de nuestro enemigo. Entonces eso es fantástico. En este punto, solo puedes seguir adelante y ajustar los colores que quieras para eso. Y justo como nota al margen, si solo quieres usar este sprite, pero quieres tener diferentes barcos son chips de diferentes colores o tal vez simplemente no quieres este pegamento. En realidad podemos hacer lo mismo que hacemos con nuestra toma entrar en modular aquí. Y como no es blanco, en realidad vamos a agregarle diferentes colores. Como pueden ver aquí, que podemos conseguir diferentes colores aquí si solo apago la forma de colisión allá. Y puedes seguir adelante y echar un vistazo a eso. Por lo que puedes hacer variaciones levemente, ligeramente diferentes. Si quisieras. Yo sólo voy a restablecer la mía de nuevo a la normalidad. Y ahí vamos. De acuerdo, entonces con eso tenemos a nuestro enemigo montado. Y ahora tenemos a nuestro enemigo capaz de dispararnos en un momento aleatorio. Y para demostrarte que es aleatorio, solo voy a añadir otro y estar a nuestra escena aquí, solo voy a usar Control D para duplicar. Ahí vamos. Tenemos tres diferentes y todos van a disparar en tres momentos completamente diferentes. Tú vas. Ah, como pueden ver, los dos de la izquierda parecen estar bastante sincronizados, pero en realidad están bastante apagados en su tiempo. Un poco más de coincidencia. Ahí vamos. Entonces ahora tenemos la configuración. Están disparando y disparan en tiempo aleatorio. Entonces no todos van a ser iguales cuando salgan o cuando se engendren. Entonces a continuación vamos a seguir adelante y establecer un enemigo, el desove enemigo o el movimiento enemigo que estoy pensando que probablemente deberíamos hacer los movimientos enemigos básicos. Piensa bien manejado eso siguiente. De esa manera cuando lo detectamos, realidad podemos decir que el ser engendrado en lugar de que ellos se queden fuera de la pantalla. 21. Fuga de memoria: Muy bien, Entonces algo que quería, quiero abordar primero antes de olvidarlo, es que nos vamos a topar con temas. Eventualmente más tiempo continúa un juego porque sí tenemos una fuga de memoria. Lo que esto es, es lo que continuamente estamos creando todos estos elementos que lo están causando. Y no estamos lidiando con ellos cuando ya no los necesitamos. Entonces solo vamos a seguir apilando cada vez más y más hasta que finalmente la computadora del usuario ralentiza y comience a rezagarse, o tal vez incluso se estrella. Y echamos un vistazo al lado derecho aquí. Yo he ido adelante y pausa esta prueba que se ve a un costado. Y si solo echamos un vistazo a esto y a la sección remota, echemos un vistazo a todos estos proyectiles que se han engendrado, pero no desaparecen. Entonces a pesar de que ya no los vemos en pantalla y son completamente irrelevantes para nuestro juego. Siguen moviéndose. Todavía hay una parte de nuestro juego. Entonces lo que tenemos que hacer es que ahora manejemos esto para cuando salga nuestra pantalla en la parte inferior y cuando salga de nuestra pantalla en la parte superior. Entonces vamos a seguir adelante, seguir adelante y entrar en nuestro guión de proyectiles aquí. Voy a crear una función para chequear. Qué charla con una posición de verificación. No es el mejor nombre para ello, pero funcionará para esto. Nos diremos yo. Podemos comprobar si auto punto posición punto y. diré si es menor que 0, porque recuerda, 0 va a estar en la esquina superior izquierda o parte superior de nuestra pantalla será 0 en la dirección y. Entonces si es menor a 0, entonces se lo vamos a decir al propio Q3. Ahora, también tenemos que comprobar cuándo el enemigo dispara va pasando por el fondo de nuestra pantalla. Y si olvida el número de su pantalla, podemos volver a entrar a la configuración de su proyecto, ir a nuestra ventana de visualización. Y recuerda que no mide 400 de altura, por lo que queremos buscar algo más grande que 400. Recuerden nuestros sprites, 32.5 de eso son 16. Por lo que queremos comprobar LF, LF, posición de duda. No Y es mayor que. Ahora, recuerden que dijimos 400, así por ahora. Recuerda que dijimos 400. Pero si echamos un vistazo y recordamos el proyectil, el punto está en el medio. Entonces tenemos la mitad, la mitad. Esto se quedará sobresaliendo aún, lo que en este caso está bien, pero se verá más bonito si esperamos hasta que tire salga de la pantalla. Ya que estos son 32 por 32 sprites que estamos usando un all these. En realidad podemos comprobar. Podemos añadir eso a esto. Entonces podríamos sumar 16 sólo para ponernos un poco. Hacemos 32 para conseguir todo el asunto. Yo sólo voy a usar para 50, dale un bonito número redondo. Y para asegurar completamente que no hay manera posible de que quede en nuestra pantalla. Y luego te lo voy a decir para que te cuentes si lo es. Ahora si echamos un vistazo a esta sección remota, cuando jugamos nuestro juego, y echamos un vistazo a todos estos proyectiles que entran, se engendran y no lo borraron ellos mismos. Fácil. Eso es sólo porque en realidad nunca lo llamamos nuestra posición de verificación con el gradiente pero no lo llamamos. Yo sólo voy a llamar a esto dentro de nuestra función de proceso. Ahora si quisieras, podrías crear un temporizador que comprobará esto. En lugar de llamar a esto cada fotograma y el Tíber, poner un temporizador en proyectil y comprobar cuándo está fuera ese tiempo probablemente sea un poco más amigable para el rendimiento. Pero todo eso va a depender de lo lejos que llegues con tu juego en cuanto a si eso termina o no siendo una mejor opción. Si entramos y echamos un vistazo y otra vez, miraremos el control remoto que debemos proteger casa se engendra en y se borran cuando salen de la pantalla. Y lo mismo con los que disparamos también. Esas son todas se borran y ahí van. Ahora hemos arreglado la fuga de memoria que creamos dentro de nuestro juego. Entonces es así de simple. Se asegura de que una vez que ya no necesites algo, sigas adelante y te deshagas de él. Y si echamos un vistazo a nuestros power-ups dentro de nuestro spawner aquí, vemos que no lo estamos, no tenemos ninguno de estos temas con nuestros power-ups apareciendo. Y la razón de eso es que en realidad abordamos eso aquí mismo. Si tiene curiosidad, rechazaré si la posición era mayor a 420 y la eliminamos. Si es mayor que, claro que se pasa ese número. Nuestro jugador ha pasado al alza o 100. Entonces sabemos que ya no está en pantalla. No lo necesitamos y nos deshacemos de él. Por lo que sí abordamos esto con nuestro con nuestro power-up. Y ahora acabas de ver con nuestro proyectil, por qué necesitamos hacer eso con la pestaña remota de allá. Con solo la gran cantidad de cosas que estamos creando que aún existen dentro de nuestro juego y lo rápido que se acumularán con proyectiles. Por ejemplo. Nuevamente, si tenemos algunos yendo con un fuego rápido, tenemos unas armas de disparo rápido. Por ejemplo. Se puede ver lo rápido que realmente pueden empezar a acumularse. Entonces hemos abordado eso, lo arreglamos, y pasaremos a agregar movimiento vertical a nuestro enemigo. Si lo único que quieres es que el enemigo se desplace hacia el jugador. 22. Movimiento vertical: Sigamos adelante y abordemos nuestro agradable poder movernos verticalmente. Si eso es todo lo que quieres en tu juego, entonces este es todo el movimiento que vas a necesitar. Ahora esto es, por supuesto, hiper dependiente de lo que quieras fuera de tu juego. Por supuesto, lo que vamos a hacer aquí es que sólo vamos a encontrar aquí nuestra nave enemiga. Y vamos a hacer algo similar a lo que hicimos con nuestro proyectil. Entonces tenemos nuestra velocidad y nuestra velocidad que queremos enviar para moverse. Dentro de nuestro proceso, vamos a necesitar un movimiento y un deslizamiento. Necesitamos un, algún tipo de velocidad pasada en. Entonces claro que sólo vamos a usar nuestra velocidad como el argumento de la velocidad. Y todo lo que vamos a hacer es igual que un listo ahora otra vez, si querías aleatorizar la velocidad entre dos números, sin duda puedes hacer eso también. Solo asegúrate de hacer eso bajo el color aleatorio aquí. Y puedes hacer lo mismo igual que hicimos con el tiempo. Están usando a Rand. Bueno, quiero presentar un número o si quieres hacer un rango de rango, sin duda puedes hacer eso también. Puedes aleatorizar las velocidades. Si quieres que todas tus naves tengan diferentes velocidades, sin duda puedes. Yosolo agrego también. Para mí, sólo voy a usar la velocidad normal aquí. Y voy a poner el mío a un 100. Así que sólo voy a decir velocidad punto y es igual a velocidad. Ahora recuerden que estamos teniendo esto vaya positivo. Entonces nuestra nave se está moviendo hacia abajo. Y si eso es todo el movimiento que queremos, Eso es todo lo que vamos a necesitar. Voy a seguir adelante y sólo subir estos. Y váyase. Dije si todos han sido engendrados en diferentes puntos y podemos ver que van, se vuelven moviéndose hacia nosotros y nos podemos ajustar. Podemos seguir adelante y ajustar esas velocidades como veamos. Y se puede ver como son todos poco como moviéndose en una fila ahí. Entonces te voy a mostrar cómo se vería eso si cambiamos esto por ser una cantidad aleatoria. Entonces dicen que la velocidad es igual. Y vamos con, sólo para mostrarte aunque sea solo un pequeño cambio, vamos a usar rango rand. Vamos a poner esto entre, digamos 9110. Entonces esa es una pequeña brecha, esa es una diferencia de 20. Echamos un vistazo y podemos ver que empezaron cerca. Pero entonces tienen diferencias. Ahora este se está quedando atrás porque el del medio en realidad se está moviendo más rápido. Y por supuesto, puedes hacer esto tan grande de una brecha como quieras que sea. Si quieres ir por esta ruta, ahí vamos. El medio era simplemente de crucero en y el de la extrema derecha, que sólo un poco de frío y relajarse. Y si tuviéramos que hacer una pausa en esto e ir a distancia, en realidad bajamos a ver nuestra nave enemiga. Y vemos que una nave tiene 187, la otra nave tiene 95. Y nuestro tercero tiene uno a uno. Entonces si quieres tener una velocidad aleatoria para tus naves en ese rango vertical, Así es como puedes seguir adelante y ajustar que se establecen eso. Entonces eso va a depender completamente de ti. Creo que por ahora sólo voy a dejar el mío así y podemos pasar a ajustar nuestro spawner. 23. Enemy Spawner: De acuerdo, para el spawner enemigo, vamos a ir con lo mismo aquí, usando un nodo básico como root Enemy Spawner. Adelante y guarda eso en nuestras escenas. Y vamos a hacer mucho de lo que hicimos aquí con nuestro desove regular. Entonces vamos a agregarle un temporizador. Y si echamos un vistazo al código que aquí usamos, aquí tenemos a nuestro enemigo. Ahora bien, si quieres tener múltiples nuestros UPS o no, en este caso, al igual que nuestros poderes, tenemos múltiples enemigos. Para que puedas tener una variedad aleatoria y aleatoria de enemigos como la que engendró. Eso sí lo puedes hacer. Y te mostraré cómo hacerlo de esa manera. Porque sabes cómo hacerlo con un solo artículo como este. Ahora bien, lo que vamos a hacer es algo parecido a esto. Entonces vamos a adentrarnos en nuestro desove enemigo. Voy a agregar un guión, ponerlo en el lugar correcto. Lo que haríamos es que podemos hacer var enemigos iguales y luego nuestros corchetes. Pero entonces para cada uno de estos, vamos a ir así y conseguir nuestra nave enemiga. Entonces, si tuviéramos múltiplos de estos, entonces simplemente se vería así. Y simplemente seguirías con cuantas variedades tuvieras ahí dentro. En este caso, sólo tengo el uno. Y por supuesto, el beneficio de hacerlo de esta manera es si agregas más de los enemigos más pequeños de cualquier manera. En el futuro, será autónomo, como si no tuvieras que editar tu código. Puedes simplemente añadirlos a la parte superior aquí y seguir adelante. De acuerdo, entonces si nos referimos de nuevo a nuestros power-ups que teníamos nuestro spawner, no abrir ese código. Nosotros lo hicimos. Está justo ahí abajo. Nisiquiera lo vi. Para que puedan ver que estamos haciendo todo en tiempo de espera. Entonces eso significa que necesitamos conectar nuestro temporizador a nuestro desodorador enemigo. Y ahora tenemos esa configuración también a tiempo, o podemos llamar al azar. Porque de nuevo, queremos que las cosas sean aleatorias al igual que lo hacemos con nuestro poder. Y podemos ver aquí creamos una instancia de nuestra escena. En este caso, estamos teniendo, estamos llamando una instancia de nuestro poder, pero queremos que estos sean un número aleatorio. Entonces necesitamos realmente conseguir un barco al azar primero. Por lo que dicen enemigo seleccionado es igual a enemigos. Y dentro de nuestros corchetes, vamos a decir Randy. Y vamos a usar por ciento de nuestros enemigos tamaño de punto a nueva variable. Ahívamos. Entonces lo que eso, no importa cuántos enemigos agreguemos o eliminemos aquí arriba, nuestro código nunca iba a cambiar. Siempre vamos a tener un, un enemigo que se puede seleccionar. Entonces bajamos y entonces podemos crear una instancia de nuestro enemigo. Entonces digamos enemigo n iguales lo puse de esa manera equivocada. Digamos instancia enemiga seleccionada. Entonces sea cual sea el enemigo que se escoja, ese es el que vamos a crear una nueva variable. Y entonces todo lo que tenemos que hacer, es uno se suma a. Entonces voy a echar un vistazo a nuestro spawner aquí. Y puedes ver que todo lo que hicimos fue simplemente agregarlo, cual está perfectamente bien con nuestro spawner porque el spawner en sí no se va a mover. Entonces sigamos adelante sumemos niño enemigo. Y en este punto ahora está en el juego. Pero lo que queremos, recuerda uno, una variedad en la x Así que no todo es solo en la esquina superior izquierda. Digamos rand posición x Y vamos a establecer que sea un número aleatorio. Podemos usar rango rand. Eso está perfectamente bien. ¿ Usamos eso aquí para ir una ruta diferente con ella? Nosotros sólo usamos a Randy. Así que sigamos adelante y sigamos con eso solo por estándares de consistencia de consistencia. Pero si querías usar estos in-betweens, otra vez, 02 a cuatro. Aquí vamos. Entonces tenemos nuestro número aleatorio dentro de nuestro 224. Yo puedo, puedes modificar esto si no quieres que tu nave esté colgando un poco. Entonces por ejemplo, voy a ir con, voy a decir 200. Después a las 20, lo que hará de mis números mis Min y max 20 a 20. Simplemente los agregamos a la escena. Entonces vayamos a nuestro mundo. Y en nuestro engendro enemigo. Y yo sólo voy a mover eso allá arriba. Y si jugamos esto ahora, eso no va a ir porque en realidad no activamos nuestro cronómetro. Entonces volvamos a eso, configurémoslo a auto start, e inténtalo de nuevo. Ahí vamos. Entonces vemos que van para allá y en realidad se están topando. Y se quedan ahí arriba. Tienes que posicionar, pero no lo establecimos. Simplemente consigue nuestra posición enemiga punto x Así que lo bueno es que sabemos que nuestro guión está funcionando. La mala noticia es que está chocando consigo mismo. Así que cuando la nueva posición punto x es igual a nuestra posición rand, rand, puedo deletrear aquí la posición corrió. Y eso lo arreglará. O los sorbos todavía se van a topar. Si tienen la oportunidad de. Ahí vamos. Lo vemos ahí del lado derecho. Tengo tres de ellas todas apiladas. Entonces a menudo desovamos, tenemos la posición y están disparando, luciendo genial, excepto por el hecho de que se están estrellando entre sí. Entonces en este punto es donde voy a presentarles la función Mac y capa. Entonces si entramos en nuestra nave enemiga, ahí vamos. Y nuestro cuerpo cinemático 2D, margen seguro. Y luego aquí vamos bajo colisión objeto td. Aquí en nuestro Inspector, tenemos Coalición, y aquí tenemos capas y máscaras. Entonces la capa es, si ves algo como Photoshop, sabes qué son las capas, funciona de manera similar. Donde se puede tener una capa de jugador son capa hacia arriba, la capa enemiga, proyectar hacia fuera la capa. Y por más que muchos quieran seguir adelante y separarse con eso. Ya puedes ver si abro esto, tienes 32 capas diferentes con las que trabajar. Y tanto tu capa como en tus máscaras. La capa es donde está tu objeto y la máscara es con lo que puede interactuar. Entonces si no lo haces, tu nave para poder chocar entre sí o chocar contra el jugador o cualquiera de eso, podríamos apagar la máscara. Ahora el problema que tenemos aquí es que nuestro proyectil también está en la capa uno. Entonces desde que volteamos la máscara de una sola vez, no vamos a poder dispararle en absoluto al enemigo. Entonces lo que voy a hacer en su lugar es que voy a mover a nuestro enemigo a la capa dos. Nada es, tiene una máscara de capa dos en el momento actual. Entonces si seguimos adelante y jugamos eso ahora, se puede ver que nuestros enemigos no se tocan entre sí. Se ignoran por completo. Pero se están topando con el jugador porque recordamos que nuestro jugador está en la máscara uno, ¿ o nuestros jugadores están en la capa uno? Entonces con la máscara detectada, nos estamos topando con ella. Ahora, dependiendo de si quieres que el enemigo pueda toparse el jugador o no y volarlo con un trato de daño al jugador. Esto puede o no ser ideal para ti. Recuerda, si estamos infligiendo daño a un jugador, entonces solo podemos desactivar temporalmente la colisión del jugador para evitar que eso suceda. Entonces lo que podemos hacer entonces es ir a podemos dejar a nuestro jugador en uno. Tenemos a nuestro enemigo prendido. Y si usamos tres para nuestro proyectil. Y echamos un vistazo a esos tres para el proyectil. Y el proyectil puede interactuar tanto con el jugador como con el enemigo. Entonces tenemos máscara 12 ambos establecidos y probamos eso. Vemos hueso y ahora el enemigo va directo sobre nosotros. Y ya no pueden interactuar con nosotros. Entonces ahí vamos. Eso es wow. Cómo podemos seguir adelante y lograr que sean turnos y ya no toparnos el uno con el otro. No se están atascando en nuestro jugador y en nuestro proyectil. Ya que interactúa con ambas capas. Con nuestra máscara seleccionada 12. Deberíamos poder infligir daño a nuestro enemigo y nuestra Amy debería poder hacernos daño aún una vez que sumemos eso. Entonces eso también es una pequeña introducción en capas y máscaras allí. Así que recuerda, capa es donde tus objetivos y la máscara, con qué capas puede interactuar. Entonces, de nuevo, si estamos en la máscara uno y la capa uno, capa uno se interactuará con ella. Ya que tenemos máscara seleccionada. Si estamos en la capa dos con la máscara uno seleccionada, entonces podemos interactuar con cualquier cosa que esté en la capa uno, capa un lado interactuando con nosotros. Esperemos que eso no sea, eso no se puso demasiado confuso para ti. Pero solo sé que lo tenemos todo funcionando. Si tienes alguna duda sobre las máscaras de capa, siempre puedes hacerlas. Y trataré de aclarar lo que sea que te confundas con ellos. Y podemos pasar al siguiente video. En este punto, tenemos movimiento de disparo de desove y no tenemos fugas de memoria pasando. Entonces lo que voy a hacer es que en realidad sólo voy a sacar estas tres naves de arranque de mi escena aquí. Ahí vamos. Ahora, no los tenemos cuando empiezas y pueden desovar. Ahora si quieres crear un temporizador aleatorio para tus naves, sabes cómo hacer temporizadores aleatorios en este punto u obtener números aleatorios. Eso sí lo puedes hacer. Sereemplazó el tiempo de espera. De acuerdo, ahí lo tienes. Tenemos todo arreglado, se va a ir. Tenemos enemigos, power up, tiroteo. Aparte de la salud y GameOver estaba destruyendo y todo eso. Tenemos. En este punto. Lo básico, lo básico del shooter espacial estándar. 24. Golpear balas: hoy vamos a abordar que nuestro proyectil realmente dispare y destruya a nuestro enemigo y a nuestro jugador. Y dependiendo de la cantidad salud que quieras que tenga el jugador o el enemigo, estarás infligiéndoles daño o matándolos de plano. Entonces lo primero que debemos hacer es más que lo primero que quiero que te asegures de que has hecho es asegurarte de que tu nave enemiga no esté causando ninguna, no esté causando una fuga de memoria. Al revisar tu posición, como hacemos con los proyectiles que hicimos recientemente, uno de los últimos videos. Y con eso, una vez que te asegures de que tienes eso, pasemos a nuestro proyectil. Y vas a seguir adelante y agregar un área a D que tenga forma de colisión y hacer que la forma de colisión sea un poco más grande. Lo que están haciendo clic en forma fue para que puedas ver aquí para mí es solo un clic más grande. De acuerdo, así que adelante y haz eso. Y luego para que esto funcione, Vayamos a nuestra zona de tiro o área para ser igual a la colisión. La capa madura se establece en la capa tres. Y vamos a poner nuestra máscara 212 poder interactuar con las capas 12, qué jugador estrella y nave enemiga. Podemos dirigirnos a la sección de notas aquí para que podamos echar un vistazo a las señales y podamos conectar la señal introducida por el cuerpo en nuestro script de proyectil. Y esto es lo que deberíamos ver aquí. Esta función se crea automáticamente para nosotros. Entonces la forma más fácil de hacer esto y de poner esto en marcha y probando es para nuestro jugador, te voy a mostrar dos formas en que puedes revisar esto. Uno usando nombres y otro usando grupos. Entonces para el jugador voy a usar nombres. Por lo que voy a decir si jugador y cuerpo Nombre, cuerpo punto Q libre. Entonces lo que esto está diciendo es este decir, si el cuerpo de física que entra a esta zona, si su nombre pasa jugador con una P. mayúscula Y entonces le vamos a decir que ese cuerpo ahora entró a nuestra área, DQ se libere. Entonces si volvemos a nuestra escena de jugador y echamos un vistazo a nuestro cuerpo cinemático. Es un jugador con una P. mayúscula Así que esto va a funcionar. El enemigo debería poder matarnos de manera efectiva, se le disparará y el modo desaparecerá de la escena. Ahí vamos. Si disparamos, nos movemos. No pasa nada porque estamos completamente curados. De acuerdo, ahora por nuestro enemigo, ahora les voy a mostrar cómo hacerlo con grupos. Entonces, si quieres crear múltiples naves enemigas diferentes, solo puedes meterlas todas bajo el grupo enemigo, y esto simplemente funcionará. No tendrás que agregar ningún código al proyecto. Entonces vayamos a nuestra nave enemiga vista con nuestro cuerpo cinemático 2D aquí. Porque recuerden que estamos trabajando fuera del cuerpo ingresado. Pasemos a la sección de grupos. A la derecha. Vamos a entrar a nuestro cuadro de texto y vamos a decir enemigo y darle al botón Agregar. Entonces si fuéramos a gestionar nuestros grupos ahora vemos que tenemos el grupo enemigo y que consiste en nuestra nave enemiga. Como ves sus notas en grupo nave enemiga. Y se podría agregar o quitar fácilmente de ahí. Pero ahora que tenemos eso ahí dentro, podemos tener este trabajo con todos nuestros enemigos siempre y cuando sólo los agreguemos al grupo. Entonces todo lo que tendríamos que hacer es si el cuerpo está en grupo. Y esto tomará un argumento en forma de cadena si no me equivoco del nombre del grupo. Entonces en este caso sería una cadena de capital enemigo Y. Sigamos adelante y demos un tiro a esto. Dirige nuestro mundo. Y ahora deberíamos poder matar a nuestro enemigo. Y no podemos. Oh, no importa. Nosotros le dijimos que pasara por aquí. Obviamente queríamos hacer gratis, igual que hacemos con nuestro jugador. Entonces si nuestros cuerpos y el grupo enemigo, sólo le decimos que se mantenga libre. Seleccionaron ahí la escena equivocada, por supuesto. Y se puede ver si disparamos ahora, Aereo, nuestro enemigo y se mata. Ahora, como pueden ver, nuestro objeto está pasando directamente por cualquier cosa que disparemos. Entonces, si no quieres que eso suceda, quieres que tus tiros sean mínimos. Aquí. Lo que vamos a hacer es fuera de cualquiera de estas condiciones. Ahora podrías hacer esto en la parte inferior, o puedes hacerlo en la parte superior, no importa. Sólo vamos a decir self dot Q libre. De esta manera, nuestro discurso proyectil en sí. Ahí vamos. Tenemos un tiroteo trabajando en nuestro juego y somos capaces destruir nuestra anatomía y nuestro jugador. De acuerdo, el siguiente video, vamos a seguir adelante y vamos a configurar salud hablando arriba. Ahí está el poder. Configura la salud y nuestro multiplicador de daños. Asegúrate de que nuestro escudo esté funcionando para protegernos. Ahí vamos. De acuerdo, nos vemos en el siguiente video. 25. Salud y daños por escudos: En este video, vamos a seguir adelante y atacar al jugador y a nuestro enemigo, teniendo salud y daño que se les está haciendo. Entonces sigamos adelante y sigamos adentro. Vayamos a apilar nuestra nave enemiga. Será un poco más fácil, pero algo de espaciamiento ahí dentro. Y crearemos una nueva función llamada daño. Queremos llamarlo hit. Paso en mi parámetro de daño. Y sólo vamos a golpear pase por ahora. Vamos a subir a los dos primeros son variables. Y voy a crear una variable para nuestra, para esta nave enemiga específica. Yo lo llamaré Salud. Y voy a poner eso a tres. Entonces el barco tiene tres de salud, no es muy fuerte. Y lo que vamos a hacer es decir salud dentro de nuestra función, Salud menos es igual a daño. Entonces diremos si la salud es menor o igual a 0, entonces auto punto Q libre. Ahora la razón por la que vamos a decir menor o igual a 0, porque si es igual a 0, entonces nuestro enemigo debería estar muerto y debería leer. Entonces. Pero si hay de alguna manera, de alguna manera un glitch que sucede y nuestro enemigo termina con salud negativa. Esto está actuando como ese control de barrera para asegurarse de que el enemigo sí sea destruido como se supone que debe hacerlo, incluso si de alguna manera se trata de fallos técnicos por debajo de 0. Ahora en nuestro proyectil, donde tenemos aquí a nuestro grupo enemigo, sólo vamos a llamar a golpes de punto de cuerpo. Y recuerda que esto toma en un parámetro esencia son este enemigo tiene tres de salud. Vamos a decir este análisis de proyecto, podemos filmarlo muy rápido. Vamos a decir que esto comprobado sólo le hace un daño al enemigo. Entonces si fuéramos a correr eso ahora deberíamos ver que el enemigo toma disparos para matar. Aquí vamos, 123. Y si a nuestro jugador le disparan, se ve que nuestros jugadores siguen siendo destruidos al instante. Entonces nuestra nave ahora tiene salud, y nuestro jugador necesita tener salud, pero también factor en otros parámetros como, por supuesto, nuestros escudos en eso. Así que pasemos a nuestro script de capas. Démosle algo de salud a nuestro jugador si aún no lo has hecho. Mi jugador tiene tres de salud. Vamos a bajar a ¿Dónde debo poner esto? Pondré esto justo debajo de mi tiroteo antes de meternos en nuestros power-ups. Voy a crear una nueva función llamada hit. Esto tomará un parámetro de daño. Y vamos a hacer lo similar aquí, salud menos es igual a daño. Y diríamos si l menor o igual a 0, self.view gray, al igual que hicimos con nuestra anatomía. Ahora el problema aquí, así que necesitamos echar un vistazo a nuestro escudo, ¿no? Por lo que necesitamos echar un vistazo si nuestro escudo está activo. Entonces echamos un vistazo, tenemos una variable que creamos llamada blindada. Y cuando el escudo está activo, podemos seguir adelante y sumar en blindados iguales verdaderos. Asegurémonos de que tenemos eso en nuestra función. Y ahora cuando nos golpean, antes de hacer cualquiera de esos cálculos, podemos decir si lo hizo el viejo. Y queremos asegurarnos de que dice si no, ella tenía una C, Puedes hacer el signo de exclamación antes de la palabra blindada, o puedes escribir la palabra no. De cualquier manera. Estaba afuera haciendo lo mismo. Y sólo voy a resaltar estas tres líneas y darle a Tab. Entonces si no estamos blindados, vamos a perder la salud. Y si nuestra salud está por debajo de 0, nos eliminamos. Entonces ahora podemos tener aquí una declaración else. Entonces si estamos blindados, podemos entonces borrar nuestro escudo entrado blindado, ajustado a falso. Ahora si echamos un vistazo, escudo contra Israel es nuestro hijo de nuestro jugador, vamos a tener uno de esos. Entonces si abrimos nuestra escena de escudos, podemos ver que acabamos de llamar a esto grandes escudos. Por lo que deberíamos poder hacer dentro de nuestros jugadores vistos aquí. Deberíamos poder simplemente obtener los escudos del nodo, asegúrate de deletrearlo correctamente o terminarás con un error una vez que ejecutemos el juego y lleguemos a esta porción. Eso dicen escudos puntean Kubrick. Ahora esto debería borrar nuestro escudo y poner nuestro blindado en falso. Y si no tenemos escudo, entonces deberíamos dañarnos. Entonces para esto, voy a imprimir también nuestra salud solo para que podamos ver eso visualmente en nuestra consola. Sigamos adelante y ejecutemos esto y veamos cómo funciona esto . Sin ningún blindaje. Nos disparan. No lo llamamos a nuestro proyectil. Quieres llamarlo body dot, hit. Y de nuevo, sólo voy a hacerle un daño a nuestro jugador también. Se va a mantener parejo entre los dos. Vemos encima en el costado aquí pasamos a la salud One Health y 0, con los que por supuesto morimos. Ahora si podemos vivir lo suficiente para conseguirnos un escudo, podemos probar eso. Va a ser un poco de una prueba aleatoria. ¿ Quién sabe? ¿Cuándo vamos a conseguir un poder? Si vamos a conseguir uno también. Sigamos adelante y oh, hay un escudo. Fantástico. Entonces tenemos uno. Cuando nos golpean, nuestra salud no debe bajar y nuestro escudo debe desaparecer. Nuestro escudo desapareció. Y claro que no imprimimos nuestra salud porque nunca tomamos daños. Ahora le llevamos daño a uno. Y entonces nuestros escudos y nuestra salud están todos disminuyendo tal como esperamos que lo haga. Ahora si tienes una animación de explosión o muerte que agregues a esto para tu jugador o tu enemigo. Simplemente tocas la animación. Y luego una vez que eso termine, lo puse a. 26. Ganancia de la salud: De acuerdo, sigamos adelante y abordemos en nuestra salud arriba. Entonces también, ¿tengo algo aquí? Entonces echemos un vistazo. ¿Qué hacer? Echa un vistazo a nuestro Script de Power Apps. Y podemos crear nuestro power up. Entró Buddy. De acuerdo, Así que aquí vamos. Cuando nos volvemos más saludables, esa es la sección que queremos echar un vistazo aquí. Por lo que cuando entró el cuerpo de área 2D y el poder arriba que estamos buscando es nuestra salud. Y ahí es cuando vamos a trabajar con aquí. Vamos a seguir adelante y crear nuestra función para ello. Vamos a decir, bueno, salud dirá salud sube cantidad y rehacer salud más igual cantidad. Y eso es tan sencillo como tenemos que hacer que nuestro power-up de salud funcione. Si quieres tener una cantidad máxima de salud, entonces puedes decir, todo lo que tenemos que hacer es entonces subir arriba aquí y diremos var max health. Voy a establecer que a tal vez cinco es la salud máxima que nunca podremos obtener. Entrará y vamos si salud menos de r max estante. Y entonces sólo tenemos esta línea adentro. Y ahí vamos. Eso es todo lo que tendríamos que hacer si queremos asegurarnos de que tenemos una salud máxima que el jugador no vaya arriba ni abajo. Eso es todo lo que tenemos que hacer para eso. Pero ahora podemos ver que nuestra salud va a funcionar. Y si imprimo más sano, y sólo voy a ir a nuestro mundo. Y vamos a seguir adelante y jugarlo y ver qué pasa cuando obtenemos una salud nuestro Aferrarse. Sí recuerdo, no lo llamé. Entonces vamos a entrar en nuestra salud de nuestros power-ups. Y en realidad nos llaman el cuerpo punto salud. Y pasar en la cantidad que quisimos subir, que es la mía. Asegúrate de que lo hice bien. Sí. Muy bien. Ahora podemos ir a nuestro mundo y podemos probar nuestra propiedad de salud. Entonces tenemos tres por defecto, si te acuerdas, recogimos una Salud y puedes ver en la consola ahí a la izquierda, o la salud ahora es cuatro. Cuando empezamos a las tres. Y con nuestro cheque por la salud de Mac, nunca debemos ir por encima por ningún motivo. Sea lo que sea que nuestro sur esté listo. Muy bien, así que ahí vamos. Nuestro power-up de salud ahora está funcionando de la manera que debería. Nuestros escudos no sólo están funcionando, sino que se están tomando en cuenta cuando le disparan. Y cuando nos disparan nos hemos dañado. Nos ocupamos apropiadamente a nuestros enemigos y a nuestro jugador. Eso cubre todos nuestros power-ups, eso cubre nuestro poder, nuestros disparos, haciendo daño. Si creas tomas diferentes, podrías entonces por supuesto que podrías usar el mismo tipo de script para el proyectil solo tener valores diferentes puestos aquí para tu daño. acuerdo, así que tenemos todo eso funcionando y en su mayor parte, tenemos justo lo que necesitamos para Llamar a este shooter espacial terminado. 27. Deja de dispararse mutuamente: De acuerdo, en este video, vamos a seguir adelante y asegurarnos de que nuestro enemigo no pueda dispararse entre sí por la espalda. Y cómo lo vamos a hacer es dirigirnos a nuestra nave enemiga. Vamos a agregar un ray cast a D. Y por alguna razón está deshabilitado por defecto. Por lo que queremos pasar a la sección Habilitado en el inspector y encender eso. Ahora, flecha es efectivamente lo lejos que va a llegar nuestro elenco, qué tan lejos estamos revisando. Entonces lo que vamos a hacer es que voy a seguir adelante y poner caché para digamos, tal vez un 100. Que lo hagan extra, hagan la mayor parte de su pantalla. Si quieres volverte un poco loco con él, podrías hacer algo así como 400 para asegurarte de cubrir toda la pantalla. Eso depende completamente de ti. O máscara de colisión, queremos interactuar con la capa dos. Entonces voy a apagar uno porque sólo queremos comprobar si estamos golpeando a nuestro enemigo, o en este caso a nuestros enemigos aliados. Entonces en nuestro guión, cuando disparemos, A ver. ¿ Dónde lo filmamos aquí, deberíamos escribir aquí cuando nuestro temporizador cronometra L. Así que vamos a hacer un pequeño chequeo. Voy a decir si vamos a conseguir nuestro ray cast 2D para que el rayo F pueda estudiar punto está colisionando. Y eso es todo lo que deberíamos tener que comprobar. Cd hay colisionando o no lo es. Entonces vamos a decir cambiar esto a si no, re-cast TD está colisionando. Nosotros vamos a hacer esto, que va a esencialmente aceitunas para disparar. Y fíjate que dejé el arranque del temporizador fuera de ahí porque ya sea chocando o no, queremos reiniciar el temporizador. Entonces si fuéramos a ejecutar esto ahora, y solo por pura prueba y mostrarte, voy a poner mi velocidad fuera y a 0 otra vez sobre mi enemigo. Voy a dar vuelta, entrar a nuestro mundo aquí. Y me voy a poner a enemigos. Voy a poner uno justo delante de nuestros jugadores aquí. O mejor dicho, vamos a ponerlo a un lado aquí. Y sigamos adelante y consigamos otra nave enemiga. Y lo pondremos detrás de él así. Entonces ahora si nuestro código funciona ahí, sí, en la parte de atrás aquí no debería, porque sabe que le dispararía a un amistoso un aliado para ello. En tanto que el del frente aquí debería poder simplemente seguir disparando de forma normal. Y ahí vamos. Podemosver en el frente y todos estos que están desovando y están disparando. Pero el que el que está justo aquí en nuestra parte superior izquierda son nuestra superior izquierda? No, ya que el enemigo al frente y no disparó. Si echamos un vistazo, sólo el primero está disparando porque los demás están golpeando al menos otra nave que estará frente a ella. Una app Nuestro decir agarra este barco y deténgalo. Ya se ve ahora que tendría tiroteo porque no hay nada frente a él. Y el que está en la cima no está disparando. Porque si echas un vistazo justo en esta zona, puedes ver que apenas está golpeando la caja de colisión que tenemos de nuestra nave. Entonces si sólo tuviéramos que tomar eso y poco más de un poco, se puede ver aquí abajo que sigue adelante y empieza a disparar. Ahora está golpeando ahí a nuestro enemigo. Y eso es para el cuerpo. De acuerdo, entonces no fuimos. Podemosver que sólo disparan cuando tenemos enemigos frente a ellos directamente. Para que vean lo que esto, tenemos alguna conexión bastante decente pasando aquí con saber si hay o no un enemigo frente a nosotros. Entonces con esa lógica, deberíamos estar todos bien. Ahora, voy a seguir adelante y volver a agregar mis desovadores al mundo. Enemigo desodorador. Si seguimos adelante y le echamos un vistazo ahora. Oh, eso es correcto. Yolos puse a 0. Prueba eso. Vuelve a poner esto a la velocidad. Ahí vamos. De manera que podemos ver que no están disparando cuando tienen otra nave directamente frente a ellos. Y vamos. Por lo que ahora nuestras naves son un poco más conscientes de sí mismas. 28. Animaciones de Spawn: Ahora todo lo que tienes que hacer si quieres patrones más complejos, en lugar de moverte directamente hacia abajo. Simplemente puedes usar algo así como un azar, algo así como nuestro aleatorio que usamos . Vamos a tirar de eso hacia atrás. Por ejemplo, al igual que estamos haciendo aquí cuando Randy podemos hacer algo así. Y luego basado en el número que obtienes, puedes reproducir una animación específica que creas barcos británicos. Entonces si quieres tener único, tal vez quieras enviar para hacer un par de bucles. Puedes seguir adelante y puedes configurarlo para hacer eso. Obviamente, necesitarías establecer su velocidad y en 0. Si quieres eso. De lo contrario, vas a seguir moviéndote verticalmente aunque estés reproduciendo tu animación. Para que puedas aprovechar la animación de jugador para hacer que tus naves hagan todo tipo de cosas. Y puedes aprovechar el uso de Randy para crear escenarios diferentes o jugar diferentes. Y el lugar que harías eso sería justo aquí dentro de tus enemigos engendran. Tan basado en lo que sea que obtengas. Entonces estamos diciendo, digamos, por ejemplo, si voy a decir var es igual a randy, Muy bien, digamos Randy cinco, así. Y luego diremos como F y M es igual, igual a 0. ¿ Qué hizo aquí el default? Y aquí, y m es igual a uno. Y por supuesto puedes usar match como lo hicimos antes con el jugador. Cuando se trata de power-ups. Aquí mismo, se puede ver un partido aquí. No quieres usar declaraciones if. Obviamente, podemos seguir adelante y echar un vistazo. Si anime cuchillo animado. Si Adán uno. Juega esta animación, establece velocidad saber pi a 0. Y eso es todo lo que tendrías que hacer. Ahora, nuestra forma va a disparar continuamente. Eso es lógica es todo por sí sola. Pero así es como puedes hacerlo, ¿verdad? Y entonces podemos, por supuesto hacer otra comprobación si estábamos todos y M2. Y podemos reproducir esta animación y establecer la velocidad es 0, quien rodando un tres por ciento eso. Entonces hasta ahí, de verdad depende de ti. Y la animación es que quieres crear para que las naves las usen o tengan cuando desoven. Y si quieres llevarlo más lejos, digamos que la animación viene una por la izquierda. Soy Sam de la izquierda. Se puede hacer. Se puede entrar y se puede, se puede comprobar la posición x es menor que, tal vez su animación tiene que ser menos de 300. Para que puedas revisar eso, ¿verdad? Así que solo usando estos textos simples y creando diferentes tipos de animaciones con un flujo de enlace como este. Yo también debería agregar aquí. si acaso algunas personas no se dan cuenta agregan enemigo de niño. Niño. Voy a sólo añadir eso en para un poco de énfasis ahí. Pero esto es esencialmente todo lo que tienes que hacer es simplemente seguir esta cosa camino con, y puedes entrar en el reproductor de Animación y puedes crear todas las diferentes animaciones, todas las diferentes animaciones que desea que su nave tome tan lejos como camino y vaya. De acuerdo, eso, eso lo maneja. Nosotros tenemos, tienes una idea de cómo crear tener único. Si quieres tener una animación especial o tu nave, cuando desove en. Y por supuesto, será una oportunidad aleatoria si hace eso o si simplemente viene directamente hacia abajo. Si quieres. Hemos ido adelante y nos hemos dirigido a nuestros enemigos, no disparándonos unos a otros por la espalda. ¿ Verdad? A estas alturas, no voy a usar ninguno de estos, pero sin duda puedes, si así lo deseas. No creo que vaya a hacerlo, estoy de acuerdo con que solo venga directo hacia abajo como algunos de los clásicos. Pero en realidad no nos queda mucho por hacer aquí aparte de abordar cómo va a ser nuestra GUI y tenerla actualizada. 29. Creación de la interfaz de usuario: De acuerdo todos, En este video, vamos a seguir adelante y vamos a crear la parte de interfaz de usuario de nuestro juego. Entonces si solo me acerco aquí, pueden ver que vamos a tener nuestra salud exhibida a nuestra izquierda en forma de corazones. Y tenemos tanto un vacío como un relleno. Al igual que hicimos con nuestros otros power-ups aquí, pero vamos a tener nuestros power-ups exhibidos en el lado derecho. Cuando estén vacíos, quedarán en gris. Cuando son visibles. todo iluminado como se ve aquí. Ahora. Podríamos simplemente dejarlos individualmente así. Y luego simplemente alternar cuáles se están mostrando a través de la visibilidad. Pero hay una manera mucho más fácil para nosotros de hacer esto. Entonces voy a borrar todos esos. Y la forma más fácil de lograr algo como esto. En primer lugar, usa una capa de lienzo. Ahora la capa de lienzo, cualquier cosa que se ponga en eso, sobre eso se dibujará encima o delante de todo lo demás en la pantalla. Entonces voy a crear una nueva escena, ir a mi otro nodo. Mi capa de lienzo ayuda si deletreamos correctamente. Ahívamos. Voy a renombrar esto a mi deber. Eso es lo que va a ser y darle un salvamento. Escenas. Guardar. Ahí vamos. Entonces ahora tenemos nuestra escena segura. Y gooey, si no lo sabes, solo significa interfaz gráfica de usuario. Lo que voy a usar para estos es que en realidad voy a usar una barra de progreso. Pero no queremos un progreso normal. Queremos tener nuestras texturas y vamos a usar un progreso de textura. Ahora bien, esto básicamente nos va a permitir llenar y vaciar una barra. Y ahora podría pensar en esto como una típica barra de salud rectangular o una barra de carga. No obstante, vamos a hacer esto con nuestros sprites. Y vamos a seguir adelante, empezaremos con la Barra de Salud, a lo que denominamos esta. Y sigamos adelante y echemos un vistazo. Lo vamos a llenar de izquierda a derecha. Puedes ver que aquí tenemos todas estas diferentes opciones, dependiendo de cómo quieras. Cinturón de portería tu Bartok. Tenemos de izquierda a derecha, de derecha a izquierda. Tenemos de arriba a abajo. Lo cual puede ser interesante o abajo hacia arriba pagando en cómo quieres ir por hacer eso. Nos dieron barra en sentido horario, así que no me equivoco. Alientode lo salvaje. Ese nuevo juego de Zelda que está en el interruptor ha usado una barra de resistencia en el sentido de las agujas del reloj, si no recuerdo mal. Pero lo que vamos a usar es de izquierda a derecha para esto. Ahora si te abrimos texturas, tenemos un bajo y otra y un progreso. Ahora sí mezclo estos hilos exactamente qué, que es cuál. Pero voy a seguir adelante y traer mi salud. Vacío creo que va a bajo lleno o pasa por encima o progresa. Creo que encima sería como las decoraciones con un borde alrededor de su barra. Debajo está la parte inferior de cada barra. Entonces, si tienes una barra de salud podría ser un rojo más oscuro o podría simplemente estar vacía y no tener nada. Y entonces el progreso es lo que vamos a mostrar a medida que avanzamos. Entonces si pongo mi barra de salud llena una en progreso y la vacía y debajo, si vengo aquí abajo a mi valor y pongo esto a 50, que está a mitad de camino porque el Min es 0, max tiene hambre. Por lo que dije valorado en 50 compartir salud se llena a mitad de camino. Ahora puedes mostrar esto sin embargo, te gustaría. Voy a seguir adelante y fijar mi valor máximo en cinco. que significa que si pongo mi valor a cinco estará a plena salud. Si lo pongo en uno, nos queda una salud. Y si quieres dar este otro paso, puedes ver que nuestros pasos subirán al estar configurado en uno. Por ejemplo, no podemos hacer 1.5, solo redondear esto a dos. Pero si quieres tener medio corazón ahí dentro, entonces cambia nuestro paso 2.50, y ahora podremos hacer 1.5 sin redondear sobre nosotros. Entonces esas son sólo algunas opciones que se te ocurren para lo que vamos a hacer o lo que quieres hacer. Bueno, eso es esencialmente todo lo que vamos a necesitar. Por hacer estas barras son esencialmente todos van a funcionar igual. Nuestra salud y nuestros escudos de disparo múltiple y velocidad. No, Los únicos tienen una imagen. Eso solo significa que vamos a tener un valor máximo de uno que digamos que hay 0 o uno. Está encendido o apagado, habilitado o desactivado. Antes de un más saludable, se puede ver tomarse un poco de libertad. Entonces si quieres, puedes hacer marcas de medio daño aquí o puedes seguir con la estándar, que es lo que voy a estar usando aquí. El estándar 12345. Y yo sólo seguiré adelante y crearé nuestras otras marcas aquí. Por lo que el laboratorio tiene dos texturas más. Las barras de progreso tendrán una para nuestra barra de tiro múltiple. Tenemos nuestra barra de velocidad. Y por último, una barra de progreso. No cerramos eso. Pero como tengo eso abierto, se puede ver una barra de progreso suele ser lo que vas a ver para algo así como una pantalla de carga. Es sólo una simple barra que se llena. Y eso es todo lo que realmente tienes a eso. Mientras que la textura , como viste, podemos aplicarle nuestras propias texturas personalizadas, hacer que se vea más única. Así que adelante y consigue un progreso de textura de nuevo. Y eso deja sólo querer ser nuestra barra de escudo. De acuerdo, así que pasando a esa fuera del camino, nuestra barra de disparo múltiple de la misma se va a encogerse. Echemos un vistazo. Pondremosnuestra debajo ella está vacía. Nuestro progreso, que es nuestro completo trae nuestro listón. Y así tenemos nuestro mínimo. Y esto o va a ser 0 o uno. Pon eso en uno. Para echar un vistazo a maxed out, podemos llevar nuestra velocidad más, que sería aproximadamente del mismo tamaño. De acuerdo, entonces ahora podemos echar un vistazo a hasta dónde queremos que estén nuestras posiciones sobre estos. Entonces, ¿a dónde quiero que vaya esto? A ver, Tomemos naufragio y posición. Y podría ser un poco mucho. Creo que cinco sería un buen número. Estos a lo largo del ir a lo largo la posición y hacia abajo, posición naufragada y cinco. Y lo mismo con nuestra ayuda. Mantener todo en un campo par o un aspecto más agradable en general a él también tire cinco de distancia de la x Agarra los tres de estos. Muévete encima. Y echemos un vistazo. Nosotros tenemos eso. Voy a empezar por llevarnos o todo el camino hasta el borde. Y entonces sólo voy a restar cinco de estos. Por lo que dicen 208 menos cinco. Entonces diremos 125 menos cinco, eso sería un ochenta, uno sesenta y tres menos cinco nos deja con 158. De acuerdo, así que ahora tenemos una distribución parejo entre todos estos y si ejecutamos esto, déjame ver, Así se va a ver nuestra UI aquí. Con nuestra IU ahora creada. Entonces podemos pasar a implementar el bill ops y no a nuestros scripts. 30. Actualización de la interfaz de usuario: De acuerdo, así que sigamos adelante y empecemos a agregar a nuestro código. Y creo que la forma más fácil de hacerlo es si creamos una función general que pudiera manejar cambiar cualquiera de nuestras barras. Entonces esta será una función que podemos usar una y otra vez. Entonces voy a seguir adelante y crear un nuevo guión para argumentar. Colóquelo en la ubicación correcta. Dentro de nuestros guiones. No va a ser ninguna variable. Están listos para funcionar. no nos vendría bien. No me voy a deshacer de ella por el momento. Y dentro de nuestra función de proceso, perdón, no proceso. Y deshazte de eso. Aquí vamos a tener nuestras propias funciones. Voy a entrar a la actualización de funciones, barra de actualización. Y eso va a tomar en dos argumentos de una barra en forma de cadena. Y eso va a tomar en un valor en forma de pulgada. Ahora bien, si estás haciendo media valores, entonces por supuesto tendrías que poder aceptar cargas también, lo que significa cómo puedes configurarlo así. ¿ Por qué hacer un número entero, por supuesto haces como 1, por ejemplo. Ya que estoy lidiando con números enteros, sólo voy a ir directo con. Y lo que vamos a hacer es que vamos a usar bar. Entonces cuando llamemos a esto, vamos a pasar en una cuerda como barra de salud, barra multi shot, barra C, barra de escudo. Entonces vamos a decirle cuáles son estas barras que compramos. Después de eso, podemos seguir adelante y hacer aún nodo. Y sólo podemos pasar en el bar que queremos ahí dentro. Establecimos valor de punto igual a cualquier valor que le pasemos. Y eso es todo lo que tenemos que hacer. Batalla ahora, suma o fija nuestros vars a lo que sea, lo que queramos que sean los valores actuales de ellos. En nuestra función lista. Voy a seguir adelante y hacer auto punto, agregar, agregar, agregar al grupo. Y voy a seguir adelante y sólo añadir esto a un grupo llamado gooey en todas las tapas. Ahora, lo que acabamos de hacer aquí en el código AC equivalente de venir aquí a nuestros grupos de nodos y agregar nuestro Dewey en un grupo gooey aquí y golpear Agregar. Esto es exactamente lo mismo. Simplemente va a suceder una vez que nuestro juego se cargue. Esa es una segunda forma en la que puedes seguir haciendo eso. En realidad depende de ti qué Rocks Gogo hacer eso realmente no lastima ninguno ni importa en qué dirección lo tomes. Y voy a guardar eso creado. Ahora deberíamos poder empezar a implementar estos. Entonces voy a seguir adelante y ir a, vamos a, vamos a, vamos a nuestro power up, voy a sumar o hacer nosotros en el mundo en una escena GUI de arte. Entonces ahora que tenemos a nuestro Dewey en el mundo, se podía ver si lo tenemos en la parte superior o en la de abajo. No lo hace no va a importar. Porque de nuevo, es una capa de lienzo que siempre se va a dibujar encima de todo lo demás. Ahora se podría cambiar esto, por supuesto, con capas, como se puede ver ahí, pero no hay verdadero, ningún punto real. Sobre todo en la madurez de los juegos aquí. Y las capas solo deberían realmente entrar en juego cuando se tiene, si tienes varios Canvas perezoso, voy a mantener todo súper organizado como se muestra. De acuerdo, así que saltemos a nuestros guiones. Empecemos con lo que dije? Potenciadores. Aquí vamos. Entonces estamos saltando, así que vamos a llamar innata y ellos acelerarán, activarán escudo, y habilitarán multi tiro todo en nuestro jugador. Digamos. De acuerdo, entonces esto nos da salud va a ser lo que nos sentamos aquí? Para que podamos seguir adelante y podemos poner eso en cinco. Ahora, vamos a fijar eso a cinco cantidad máxima sucesiva que podamos tener. Aquí vamos a encontrar nuestra salud. De acuerdo, entonces aquí lo que vamos a hacer es lo que vamos a hacer, vamos a llamar al grupo DUE, que significa todo lo que está dentro de ese grupo. Y vas a decir todas esas cosas para realizar una función específica. Ahora si no tiene, tenga esa función, claro, podría terminar con un error o un problema. En nuestro caso, solo tenemos un elemento ahí, y esa es nuestra GUI. Entonces sabemos que la función va a existir. Entonces vamos a decir call, get, tree dot col group. Entonces el primer ítem aquí es ¿qué grupo? Que va a ser la GUI. Nos agrupamos. El segundo argumento es la función que quieres llamarla. Sólo voy a seguir adelante y seleccionar eso para asegurarme de que esté bien escrito. Todos estos se agregan como cadenas, por lo que barra de actualización. Y luego los siguientes van a ser los argumentos que pases. Entonces primero necesitamos la barra, que es la salud. Bar. Y el segundo va a ser el valor al que queremos actualizarlo. Entonces en nuestro caso, vamos a usar salud porque la salud se va a poner a lo que sea, ¿no? Y eso se va a establecer 123 o cinco para el final de esto. Por lo que vamos a seguir adelante y usar eso para actualizar nuestra salud. Ahora cuando nos golpean, recuerda, también hay que actualizar nuestra salud. El de salud menos daño van y a eso lo llamaremos. Entonces ahora si ejecutamos esto, nuestra salud debería actualizarse. Y está configurado en uno solo porque somos tetramer las cosas probando. Y debido a que eso no está configurado a completo en default, voy a entrar en mi barra de salud y actualizar eso. ¿ Dónde están mis valores ahí? Entonces pondré eso a cinco. Pregunté mi default y seguimos adelante y corremos eso para que tengamos plena salud. Y ya ves que nos han disparado, estamos perdiendo salud. Se está actualizando. Y si podemos encontrar un power-up de salud, eso también debería aumentar. Si podemos tener tanta suerte. Ahí hay uno, Lo tenemos y ves nuestra salud actualizada hasta ahora. Cuatro de cinco. Hay un multi shot en el que aún no tenemos ninguna de esas cosas funcionando. Estamos argumentando que estos son los valores por defecto deben establecerse en 0. Son estos virus. Y ahí vamos. De acuerdo, así que ahora podemos usar el mismo código aquí para obtener nuestro otro valor. Por lo que permite la velocidad. Por ejemplo, aquí. Podemos entrar aquí, podemos habilitarlo. Voy a llamar al grupo GUI. Vamos a llamar a barra de actualización. Y esta vez vamos a llamar a la barra de velocidad. Y no vamos a pasar en salud. Vamos a pasar en uno. Esta vez. En realidad vamos a fijar nuestro número. Y cuando nuestra velocidad vuelva a la normalidad, pasaremos en un 0. De acuerdo, podemos seguir adelante y abordar esto para que nuestro escudo active también. Aunque la activación de escudo lo configurará en uno. Y lo ajustamos de nuevo a 0 cuando nos golpean. Entonces volvemos aquí arriba para golpear cuando blindado se vuelve falso y mantenemos blindajes traseros. Actualizamos nuestra barra. Note que en realidad necesitamos actualizar eso y vamos barra de escudo. Y luego eso nos deja nuestro multi tiro. Vamos adentro. Dijimos verdad. Multi shop están configurados en uno. Y después de nuestro temporizador, cuando apagamos multi shot, establecemos el valor de nuevo a 0. Por lo que ahora nuestros power-ups deberían estar todos funcionando. ¿ Y quién tiene que esperar hasta que se presenten para probarlos? Su velocidad. Boom, está encendido. Tenemos nuestro impulso. Debería desactivarme aquí en un momento. Ahí vamos. A nuestra velocidad funciona. Ahora tenemos que asegurarnos de nuestro multi shot. Ahí vamos. Nos topamos con un tema. Pongo de nuevo en lugar de bar. Ahí vamos. Por eso seguimos adelante y hacemos nuestras pruebas para que sepamos que nuestra velocidad funciona. Tenemos que probar nuestro multi tiro ahora que debería funcionar. Acabamos de tener un error tipográfico ahí dentro. Y entonces podremos probar nuestros escudos. Y si ambos funcionan, entonces nuestras Power Apps están funcionando como deberían. Ser. Fantástico. Siempre genial escuchar. Dice adelante y espera. Ahí hay un escudo, recójalo o escudo iluminado. Fantástico. Cuando nos disparan, desaparece con su escudo. Hermoso. Ahora solo tenemos que asegurarnos de que nuestro multi shot esté funcionando. Muy bien. Seguimos adelante y nos iluminaron varios tiros funcionando. Y en cuanto esté hecho, debería. Volvemos a un ícono vacío. De acuerdo, por lo que todas nuestras habilidades y power-ups están funcionando perfectamente bien , así como nuestra actualización de salud. Lo mantuvimos todo contenido en una sola función simple. Podemos llamar desde cualquier lugar sin pasar a las señales de conexión y hacer las cosas más confusas de lo que podrían ser para algunas personas. 31. Explosión de partículas: De acuerdo, en este video, vamos a seguir adelante y les voy a mostrar cómo se puede hacer una explosión usando partículas. Ahora, puedes usar partículas para todo tipo de cosas diferentes. En este caso, lo vamos a utilizar para hacer un poco de explosión. De esta manera en lugar de animar una explosión, te voy a mostrar cómo puedes crear una. Te voy a mostrar cómo puedes crear uno usando las partículas incorporadas. Ahora, al crear tus partículas, obviamente vamos a crear una nueva escena. Vamos a hacer un temporizador. Soy hijo de ello. Sólo para que sepa cuándo borrarse a sí mismo, que se costean nuestro problema de memoria. Pero al hacer partículas, CSI escribe esto aquí. Artículos. Tenemos partículas y partículas de CPU. No hay una gran diferencia entre los dos, excepto que las partículas de CPU van a ser alimentadas por tu CPU, mientras que las partículas TD se van a alimentar con tu GPU. Entonces dependiendo de tu proyecto, es posible que quieras ponerte del lado de un lado sobre el otro, completamente a tu cargo, pero vamos a estar usando las partículas de GPU aquí. De acuerdo, así que con esa seleccionada y renombrada a explosión, he ido adelante y salvé mi visto ya. Cuando Adelante. Podemos dejar toda la vida a la una. Y vamos a seguir adelante y bajar a procesar material. Ahora esto es lo que nos está diciendo el triángulo amarillo es que no tenemos material para nuestro, no tenemos material para que nuestras partículas aquí se vayan. Entonces vamos a seguir adelante y crear un nuevo material de partículas. Ahora, shader estaría entrando en código, y eso es un lenguaje completamente diferente y una bestia completamente diferente por sí sola. Mantenga las cosas simples. Y como realmente no necesitamos usar código de sombreado aquí, solo vamos a crear un nuevo material de partículas. Y ya se puede ver que nuestra partícula ya está activa y va directo hacia abajo. Vamos abajo, podemos echar un vistazo. Queremos nuestra forma de emisión. Un momento. Ahí vamos. Entonces nuestra forma de emisión, esto cambia mucho. ¿ Deberíamos decir nodo esfera ir en un área de círculo? Tenemos una caja iba a ser más de un rectángulo. Entonces esto es más o menos diciéndole cómo crearse a sí mismo. Vamos a estar usando un anillo. Y un ejemplo aquí, si aumentamos el radio del anillo, se puede ver que estamos obteniendo resultados diferentes en comparación con este punto básico. Entonces si fuéramos a usar digamos, una caja, digamos diez en la x ¿Por qué? Se puede ver que estamos entrando en ese espacio de diez por diez en que estas partículas están desovando. Así que dependiendo de lo que vayas adelante, es posible que quieras experimentar con diferentes formas, podrías encontrar algo que te guste. Voy a ir con un anillo por esta explosión. Mano restablece esto de nuevo a uno, creo que fue un default. Entonces avanzando, podemos ir a tenemos dirección y tenemos gravedad. Estas son las dos cosas que van a afectar cómo se mueven tus, tus partículas. Y para estos, voy a seguir adelante y fijar mi gravedad. Va a ser 0 en la y, y voy a poner uno en la x para que se esté moviendo hacia la derecha. Ahora. No es ir muy lejos en absoluto. Y no se está extendiendo en absoluto, como cabría esperar de una explosión. Pero lo que podemos hacer es bajar a la velocidad inicial. Y eso lo podemos poner en marcha, digamos 180. Ahí vamos, volando hacia la dirección x. Y razón por la que lo tenemos yendo por todas partes por nuestra propagación. Entonces tuvimos nuestro spread abajo a un grado. Casi va a parecer que va perfectamente recto. Si hacemos 0, irá recto. Pero como no tenemos explosión, necesitamos realmente darle la vuelta a esto todo el camino. Queremos 180 grados, ¿verdad? Queremos rodearnos todo el camino por aquí. Y creo que 180 en la velocidad podría ser un poco demasiado rápido para esto. Entonces lo voy a cambiar a 50. Ahora. Esto es, esto se ve genial. Pero como ves, nos estamos poniendo como boop, boop, boop, boop, boop, boop. Podrás ver todas estas diferentes direcciones. Ahora, explosión de Warren, queremos que esto sea como una explosión, ¿no? Nosotros sólo queremos un gran boom y hay de todo. Bueno, antes de saltar ahí arriba, voy a ajustar mi año de aleatoriedad de velocidad. Y esto sólo va a poner variedad en esto. Entonces si mi velocidad está en 50, mi enrojecimiento unos 0.45. Esto significa que mi velocidad puede estar en cualquier lugar desde 49.4 o cinco, perdón, 49.55 como mínimo y tan alto como 50.45. Y puedes seguir adelante y modificar esto es mucho más fácil por qué tenemos toda una diferencia ahí. Pero de nuevo, sólo voy a ir con cualquier 0.45. No es una gran diferencia, pero agregará un poco de variedad. Entonces ni para conseguir esa explosividad que queremos, en realidad queremos desplazarnos todo el camino hacia arriba debajo, bajo la sección de tiempo. Tenemos explosividad aquí. Adelante y sólo pon eso a uno. Y boom, ahí vamos. Tenemos nuestra explosión. Ahora bien, eso no es un montón de partículas que tenemos pasando. Sólo hay ocho de ellos. Bueno, podemos seguir adelante y ajustar la cantidad aquí. Y todo el sistema va a ser diferente. Recuerda, cuantas más partículas, más recursos va a tomar para que la computadora rinda esas partículas. Podemos ir hasta, digamos, un 100. Boom, ahí vamos. Ahora, si querías usar un número menor, por supuesto, 5050 se ve bien por juego de píxeles también. Pero creo que voy a ir con un 100 personalmente. Y eso obviamente va a ser las propias elecciones personales de todos aquí. Ahora, mirando esto, podemos ver que todo es blanco. Ahora bien, esto no va a ser como una nieve **** pasando. Nosotros queremos, queremos algo de color ahí dentro. Pasemos a la sección de color. Y vamos a hacer una rampa de color. Por lo que una nueva textura de gradiente. Y con solo hacer clic en eso, podemos crear un nuevo gradiente. Abre eso. Y aquí vamos. Entonces lo que voy a hacer es por mi primer color aquí, voy a seguir adelante y hacer un amarillo. Ahora voy a tener otro color, un poco por debajo de la mitad, crear un naranja. Y en éste sólo voy a ir con un gris oscuro. Y he clickeado de eso. Ahí vamos. Entonces eso es lo que tengo para un explosivo. Podrías ajustar y filmar barras pequeñas aquí, lo que afectará el cambio de gradiente. Entonces a ver si muevo el naranja más a la derecha, van a tener ese tiempo de transición amarillo a naranja mucho más largo. Se nos pide graficar y moverlo a la izquierda. Va a ser sólo un incidente. Para que puedas mover estos deslizadores alrededor a algo con lo que te sientas cómodo y que creas que se ve bien. Creo que voy a ir con eso ahí mismo. Y con eso tenemos una explosión que está creada y lista. Ahora, sólo queríamos irnos la única vez. Promesa. Si golpeamos un disparo, nuestras partículas no van a emitir cuando estén cargadas en la escena. No sé si esto es un error o un problema o qué, pero podemos alternar un disparo después de que haya sido engendrado. Y otra vez, tu cantidad aquí va a estar hasta el final, pero te voy a mostrar, ¿ y si tuviéramos algo así como mil C son explosiones conseguir por qué? ¿ Por qué hizo mucho diferente? Porqueresponder a todos estos montar todos a la vez. Ya ves que aquí estamos consiguiendo una forma de anillo muy clara. Entonces así podría ser un poco demasiado. En este caso. Es por eso que para algo como el humo que se supone que existe en un juego de recogida, me gusta ir con estos números más pequeños, como del 50 al 100. De acuerdo, así que ahora que tenemos eso creado, asegúrate de guardar tu escena. Vamos a saltar, echar un vistazo a nuestro pequeño guión aquí. Voy a crear el para el temporizador. Voy a mandar la señal de tiempo de espera, mi explosión. Y yo sólo voy a poner eso a self dot. Ahora lo importante que quiero establecer aquí es que quiero asegurarme de que el tiempo de espera en mi temporizador sea la misma cantidad que la vida al menos coincida con nuestra vida útil en nuestras partículas aquí. Porque no queremos que se corte temprano. Y entonces podemos asegurarnos de ajustar nuestro temporizador a un disparo y arranque automático. De acuerdo, así que a continuación, todo lo que tenemos que hacer es entrar y montar esto en nuestras naves enemigas. De acuerdo, así que en nuestra nave enemiga aquí, he seguido adelante y creado una variable llamada explosión que freeloading en nuestras partículas aquí, partícula de explosión. Y voy a bajar a cuando nuestro enemigo reciba HIT dentro de la función de cinta es menor o igual a 0. Queremos borrarlo, pero claro que queremos, queremos desovar o partículas adentro. Entonces voy a crear una nueva variable conn EX p guión bajo. Establezca ese igual a la instancia de punto de explosión. Aquí tenemos una nueva instancia de esto. Y por supuesto queremos agregarlo a nuestra escena con get padre e hijo EXP. De acuerdo. Entonces eso es genial. Ya lo tenemos en escena. Hay dos problemas en este caso. Bueno, un problema y un problema parcial. El primero es el problema que va a estar subiendo en la esquina todavía. Por lo tanto, necesitamos establecer su posición EXP guión bajo punto posición es igual a la posición del punto del uno mismo. A ahora. Las partículas de explosión deberían estar ahora en el mismo lugar que nuestra nave enemiga cuando murió. Y podemos seguir adelante y podemos poner un tiro. Para ser verdad. No deberías tener que hacer esto con la configuración del temporizador. Pero si quieres ser extra seguro que una docena de bucles o cualquiera de eso por sí solo. Sólo un poco de precaución extra. Entonces puedes seguir adelante y establecer un disparo igual a verdadero aquí. Ahora si seguimos adelante y ejecutamos esto, puedes echar un vistazo. Ahí vamos. Tenemos una explosión y desaparece. Ahí vamos. Ahora puedes seguir adelante y puedes hacer lo mismo y agregarlo al jugador si quisieras. Cuando el jugador es asesinado. Ahí vamos. Creamos nuestra propia pequeña explosión. Fabricada puramente a partir de partículas. 32. Cómo acabar el juego: De acuerdo, Para este video, vamos a seguir adelante y hacer un pequeño juego sobre escena para que cuando el jugador muera, podamos avisar al usuario con una opción para reiniciar el juego. Y creo que voy a hacer esto dentro de mi orden. Yo quería hacer una hoja separada para esto. ¿ Sabes qué? Sigamos adelante y lo agregaré a mi Dewey. Sí, sigamos adelante y hagamos eso. Entonces voy a seguir adelante y para esto, voy a hacer un naufragio de color. Y yo sólo voy a extenderlo. Asegúrate de que cubra toda mi área azul. Y voy a cambiar el color para ser vamos a ver cómo se verá el modo oscuro. Veintiuno, veintiuno, veintiuno. Y bajar mi alfa a una ronda a mitad de camino. Si echamos un vistazo a eso ahora, ahí es donde podemos mirar. Ahora este juego sobre escena va a ser realmente simple para nosotros hacer. Llamaré a esto GO, GO BG para juego sobre fondo. Va a crear un nodo de control aquí y simplemente llamarlo game over. Para que pueda hacer esto fácil de acceder más tarde. Mueve mi fondo dentro de él. Y entonces lo que vamos a poder hacer es simplemente mostrar u ocultar todo el juego sobre la pantalla. De acuerdo, entonces lo que necesitamos aquí, entonces necesitamos una etiqueta para poder mostrar algún texto. Este texto sólo va a decir M sobre seguro, etiquetas encima de nuestro fondo. Y vamos a ver. Entonces cualquier cosa que podamos anular aquí. No, todo parece tan bueno como podemos hacerlo sin traer fuentes personalizadas en él. Entonces diga GameOver, diga geo impuesto. Y lo último que vamos a traer es un botón. Y este botón dirá reintentar. De acuerdo, entonces ahora tenemos nuestros libros. Tenemos todos nuestros elementos, ustedes, tenemos un poco de fondo para mostrar que algo es diferente. Tenemos nuestro texto diciéndote que los jugadores se acabó el juego y tenemos un botón de reintento. Ahora podemos meter. Entonces ahora todo lo que tenemos que hacer es simplemente mostrar u ocultar esto a la vista. Y para esto, podemos entrar, ir a nuestra GUI. Y lo que va a ser muy importante para nosotros es el modo pausa aquí. Ahora esto está configurado para heredar, lo que significa que si todo lo demás se detiene o GUI se va a parar y si nuestro Dewey se detiene, o juego sobre pantalla no va a funcionar. Entonces queremos poner esto a proceso para que cuando hagamos una pausa al árbol, discutiblemente y todos sus hijos aquí, vamos a seguir trabajando. De acuerdo, así que echemos un vistazo a nuestro guión y diremos escribir una función que le llamara encima. Y para esto, vamos a conseguir nuestro GameOver. Nota aquí. ¿Eso es visible igual a verdadero? Y cuando nuestro jugador muera, ver dónde está esto aquí mismo. Libre. Ross va a llamar al grupo GUI. Obviamente no necesitamos ningún argumento para esto. Vamos a llamar al grupo “gooey”. Y ya me olvidé juego terminado con un guión bajo. Copia eso. Entonces no hay ningún tipo de letra. Tú vas. En realidad ahora es activar nuestro GameOver cuando perdemos. Sigamos adelante y echemos un vistazo. Patinaje ciudadano de buques. Al parecer todos están tomando la misma ruta. Nosotros vamos. De acuerdo. De acuerdo, ahora tenemos dos de salud. Uno. Este siguiente debería desencadenar nuestro juego. Sobre. Aquí vamos. Entonces si no quieres pausar la escena y quieres seguir viendo a tus enemigos desovar y disparando. Sin duda puedes detener esta porción aquí mismo. Lo que te voy a mostrar cómo puedes pausar la pantalla también. Entonces dentro de nuestro guión de jugador, justo antes de hacerlo liberarlo, después de haber llamado al juego supervisado, vamos a decir árbol igual a verdadero. Y si tuviéramos que probar eso ahora veremos que todo se detiene. Cuando morimos. Ahí vamos. Entonces, si quieres tener todo en pausa, si quieres tener la pantalla en pausa cuando golpeamos un juego encima así. Así es como podemos hacer eso. Si no quieres tener eso, solo omite esa pantalla por completo o esa línea de código. Y ahora necesitamos nuestro botón de reintento aquí para funcionar. Así que sigamos adelante y conectemos nuestro botón de reintento con la señal del pecho en nuestra GUI. Y cuando eso se estrelle, vamos a decir conseguir tres monedas de recarga. Ahora lo que va a hacer eso es que definitivamente va a recargar la justicia faltante. Si fuéramos a SF, pulsamos el botón de reproducción como acabamos de hacer. A ver, 1231 más tiro y nos van a pegar con él. Ver GameOver, todo está en pausa. Y le pegamos a reintentar. Y vemos que se recarga, pero todo sigue en pausa. Tenemos que dejar de pausar el árbol ahora, ahora que se ha recargado. Entonces después de recargar, la escena haría lo mismo que acabamos de conseguir árbol. Y hacer una pausa, y vamos a poner eso en falso. Por lo que ahora no sólo se restablecerá, sino que me reiniciaré y podremos empezar a jugar de inmediato. Nuevamente. No vamos a tener todo no se va a congelar. Adelante y echa un vistazo. Necesitamos un golpe más. Aquí vamos. acercó. ¿Puedes volver a intentarlo? Y ahora podemos seguir jugando un poco más. Ahí vamos. Ahora tenemos un juego sobre escena, juego sobre pantalla. Ahora podemos eso nos da la opción de reiniciar un juego sin tener que cerrar y reabrir nuestro programa.