Transcripciones
1. 1.01 Introducción: En este curso vamos
a aprender a llegar Idle Clicker usando planos
en Honorable Engine five
recreando un
juego similar a héroes Clicker y
Cookie
Clicker A. Este curso contiene todo lo que necesitas saber para
comenzar con desarrollo de
dos
juegos D inactivo clicker en Honorable engine five, incluyendo cómo crear
conjuntos de fichas y mapas de azulejos Cómo agregar dos activos D estáticos así
como animados. Cómo generar daño y matar enemigos usando
el cursor del ratón Cómo crear una tienda de artículos
con artículos que se pueden generar. Cómo crear un
mecánico de clic automático para
inflige daño automáticamente a medida que compras
artículos en la tienda de artículos. Cómo agregar múltiples
niveles al juego, entre los
que puedes alternar. Cómo mostrar texto de combate
flotante, cómo crear dos UI de DUI
y generación mundial. Cómo crear consejos sobre herramientas de interfaz de usuario. Y finalmente, cómo agregar
la mecánica de ascensión para que la rejugabilidad
inflija más daño a medida que asciendes También te proporcionaré el proyecto
terminado para que
puedas inspeccionarlo como
desees mientras sigues el curso. Al final de este
curso,
podrás crear con confianza tu propio juego de dos D clicker desde cero usando
Real Engine Espero que hoy se unan a mí
en este curso. Y recuerda que
siempre estoy aquí para
apoyarte durante todo el curso
y espero verte pronto.
2. 1.02 Descarga de Unreal Engine 5: Para instalar Unreal Engine five, primero
tienes que ir
a epic games.com. Así que ve por ahí,
y encontrarás un botón azul de descarga en
la parte superior derecha. Adelante y presiona
el botón de descarga. Y aquí obtendrás el instalador para el lanzador de
Epic Games. Así que adelante y
ejecuta el instalador. Y una vez que hayas instalado el slauncher de Epic Games, sigue
adelante e inicia sesión Así que solo voy a escribir
mi correo electrónico y mi contraseña,
e iniciaré sesión en
el lanzador. Una vez que hayas iniciado sesión
en el lanzador, así es como se verá. Así que adelante y presiona
la pestaña del motor Unreal. Y dentro de esta pestaña, probablemente
estarás
en la nueva sección. Adelante y da clic en Biblioteca. Y dentro de la biblioteca, puedes ver todas las versiones reales del motor que
tienes actualmente. Pero si eres nuevo aquí, probablemente no tengas nada aquí, y es posible que veas una caja gris donde puedas
descargar motor real. Y si no lo ves,
siempre puedes dar click en
el más aquí arriba, y te dará esta caja
gris y podrás dar click en el número para seleccionar qué versión del
motor Unreal quieres instalar Ahora, voy a usar el
último Unreal Engine 5.3. Pero si estás viendo
este curso en el futuro, si tienes 5.4 o
5.35 o lo que sea, aún
puedes
seguir este curso No hay un gran cambio. Así que sigamos adelante y saltemos
a Unreal Engine 5.3. Voy a
seguir adelante y actualizar,
y voy a poner en marcha el motor.
3. 1.03 Crea un nuevo proyecto: Cuando inicies Unreal Engine, esta ventana aparecerá por ti para que puedas ver tus proyectos
recientes, y también puedes ver
algunas otras pestañas Esta pestaña estará vacía si
no tienes ningún
proyecto previamente, pero puedes abrirlos aquí
si estás trabajando en un proyecto Ahora mismo
deseamos hacer un juego. Entonces voy a ir
a la pestaña de Juegos. Pero como puedes ver
en Unreal Engine, no
se trata sólo de juegos También se puede, por ejemplo, arquitectura
automotriz
y así sucesivamente. Pasemos a la pestaña de
Juegos por ahora. Y dentro de la pestaña del juego, ves muchas plantillas desde las
que puedes comenzar. Por ejemplo, si quieres
hacer un shooter en primera persona, puedes elegir la plantilla en
primera persona. Si quieres hacer un juego de arriba
hacia abajo como Diablo, por ejemplo, puedes
comenzar con esta plantilla. No obstante, me gustaría comenzar
con un proyecto en blanco. Como sabes, si has
tomado mis cursos anteriores, porque quiero enseñarte
todo desde cero. Ahora, todas estas plantillas, se pueden crear
a partir de un proyecto en blanco. Y no son difíciles crear si sabes
lo que estás haciendo. Nos gusta partir de un proyecto en blanco y construir
todo nosotros mismos Realmente no me gusta empezar
con la plantilla. con un proyecto en blanco,
enseñarte todo
aquí a la derecha, Selecciona Blueprint como lenguaje de
programación para la plataforma objetivo.
Es de escritorio. Por ahora, siempre podemos enfocarnos
en el móvil en otro momento. Pero este curso
es sobre escritorio. Probablemente voy a hacer un curso
en el futuro sobre móvil. Pero incluso si seleccionas escritorio, aún
puedes
hacerlo para móvil, más adelante, puedes hacerlo
tanto para PC como para móvil. Seleccionemos el preajuste de calidad como máximo para el contenido de datos. Si tienes esto
marcado, solo tienes que seguir adelante y marcarlo para que no
tengamos nada De nuevo, me gustaría comenzar con un proyecto en blanco sin
nada aquí abajo. Puedes seleccionar dónde
quieres guardar el proyecto y luego darle
el nombre al proyecto. Ahora voy a llamar a
este Gin Clicker. Y siempre puedes llamarlo quieras, realmente no
importa. Y siga adelante y
haga clic en Crear. Una vez que
lanzas en el motor real cinco, así es como se verá. Ahora estoy grabando en resolución de
cuatro K y
tengo un monitor de cuatro K. La interfaz de usuario puede parecerte un poco
pequeña cuando estoy grabando este video
para todo este curso. De hecho voy a mejorar
mi interfaz de usuario para que puedas
ver lo que estoy haciendo Si deseas saber como
puedo hacer eso también, puedes dar click en Herramientas
e ir a Depurar. Ve a Widget Reflector
dentro de aquí. Sólo voy a aumentar
la escala de mi UI. A lo mejor no 21.3
tal vez este sea uno. Este 1.3 creo que lo voy a
mantener en 1.3 y siempre
puedo cambiarlo en las lecciones posteriores si pienso que
es demasiado grande o demasiado pequeño. De hecho, vamos a mantenerlo en 1.25
y voy a cerrarlo. Bien, entonces en la siguiente lección, vamos a tomar
una visión general rápida de Unreal Engine Five, para que podamos tener confianza con
él antes de construir nuestro juego Ahora bien, si ya tomaste mis cursos anteriores y ya
conoces
Unreal Engine five, puedes saltarte la siguiente lección Pero pasemos a la
siguiente lección y empecemos.
4. 1.04 Unreal Engine 5: Bien, así que antes
de comenzar nuestro juego, vamos a tomar
una visión general rápida de Unreal Engine Five Ahora bien, si ya usaste el motor antes y si has tomado mis cursos
anteriores, simplemente sigue adelante y salta esta
lección a la siguiente. Ahora aquí en medio del
motor está la ventana gráfica. Dentro de la vista
está el mundo. Este es tu juego que
puedes ver visualmente. Como puedes ver aquí
tenemos paisajes y así sucesivamente. Pero si haces clic derecho
dentro de la ventana gráfica, podrás ver que puedes controlar tu vista manteniendo pulsado el
botón derecho del ratón Ahora si mantienes el
clic derecho y haces clic sobre también, puedes ver que puedes
moverte manteniendo pulsado el
botón derecho del ratón y
haciendo clic en W, puedes moverte. Ahora se puede ver que me estoy moviendo muy despacio porque este
es un mundo grande. Si quieres moverte más rápido, solo haz clic aquí arriba
en la velocidad de la cámara, voy a aumentar la
velocidad a algo así como 16. En cambio, si mantengo pulsado el
botón derecho sobre mi mouse y hago
clic en W. Ahora ya
puedes ver que puedo moverme mucho más rápido en mi mundo,
como puedes ver aquí. Bien, también puedes hacer click
en D para moverte a la derecha, click en A para moverte a la izquierda, y dar click en para retroceder. Pero recuerda que tienes que mantener presionado el botón derecho del ratón y
luego hacer clic en W, D y A. Así es en realidad como navego ,
generalmente motor honual, solo
sostengo el botón derecho
del ratón y solo
sé viajar por el mundo y ver lo que estoy
haciendo desarrollando el juego Y por supuesto si
quieres acercar y alejar, puedes acercar con la rueda
del ratón, así como esto. Y
también puedes alejar el zoom con la rueda del mouse. Y puedes simplemente volar
por el mundo, tratar de tener confianza
con el movimiento. Ahora bien, si estás acostumbrado a jugar
tiradores en primera persona y así sucesivamente, esto es natural para ti Si no has jugado eso, solo trata de correr y ver si puedes conseguirlo
. Bien, entonces tenemos un par de botones aquí arriba
en la ventana gráfica, podemos dar click en este Y aquí puedes, por ejemplo, mostrar tus fotogramas FPS por segundo. Y cuando haces clic en eso, puedes ver que aparece
aquí a la derecha. Ahora, realmente no importa, por ahora, se puede cambiar el
campo de visión y así sucesivamente. Pero lo bueno Unreal Engine es
que no tienes que
saber qué hace
cada botón No lo sé, quizá la
mitad de los botones, porque no hago cinemática Por lo general, no hago cinemáticas de
cine. Por ejemplo, automotriz,
no diseño autos. Hay un par
de botones que en realidad no necesitas cuando
estás desarrollando tu juego. Trata de no recordarlo todo, pero trata sólo de recordar lo que es realmente
necesario en estos momentos. Lo que es realmente necesario en este
momento aquí es la vista del juego. Con la vista del juego, ocultas los íconos dentro del nivel. Entonces, por ejemplo, si hago clic
con G, esta es la vista del juego. Ver Oculto esta selección
naranja. Ahora si hago clic en, de nuevo, en mi teclado,
desactivo la vista del juego. Como puedes ver
aquí, El atajo es cuando hago clic
en la vista del juego, eliminas todos los iconos. Ahora si solo agrego una
luz, por ejemplo, una luz puntual, y aquí tengo
un icono de una luz puntual. Ahora no necesitas
agregar una luz puntual en este momento. Sólo te estoy mostrando
si haces clic en ahora, se esconde el icono de la luz puntual.
Y no lo puedo ver. Si vuelvo a hacer clic, se muestra el icono
de la luz puntual. La línea de punto es un
poco pequeña en este momento. Si hago clic en él aquí puedes ver que
en realidad está aquí abajo. Es un mundo grande. Suele
desaparecer, pero aquí está. Y si hago clic en una G, y G de nuevo, parece que la
vista del juego es
realmente, muy buena para visualizar tu juego sin
ninguno de esos íconos. Si construyo un mundo, y te imaginas que
tienes muchos íconos, si tienes mucha iluminación, tienes muchos objetos
dentro de tu nivel. Puedes hacer clic en G para
eliminar todos esos íconos, y podrás ver tu mundo
sin ninguno de esos íconos. Ahora lo siguiente es
el modo inmersivo. Si haces clic en 11, maximizas la
ventana gráfica y podrás visualizar tu mundo
en máxima vista Esto es muy, muy agradable si quieres ver cómo se ve
tu juego. Ahora de nuevo, puedes hacer clic
en G para mostrar los iconos, G para ocultar los iconos. Haga clic en 11 para minimizarlo. Nuevamente, dos botones importantes, el modo inmersivo
y la vista del juego Ahora por aquí tenemos la vista
en perspectiva y
también tenemos otras vistas,
las vistas ortográficas Ahora la más importante
es la vista correcta. Esto es lo que vamos a
usar porque
vamos a trabajar con dos D. Realmente no
vamos a entrar en un mundo
de tres D. No necesitamos demasiado la
perspectiva. Pero por ahora, vayamos
a la vista correcta, y a esto se le llama la vista
ortográfica Si alejas el zoom con la rueda del
mouse, puedes ver que este es
en realidad el mundo, el mundo abierto en
la vista correcta. Mirando hacia una vista de dos D, se
puede ver desde la parte superior. Lo que parece,
obviamente no se puede ver mucho porque no se pueden ver
las colinas desde lo alto. Si lo ves desde abajo, así es
como se ve, no se ve mucho. Si lo miras desde la izquierda, así es
como se ve. Y así sucesivamente. Se pueden ver las diferentes
vistas del mundo. Esto es por supuesto, la vista
en perspectiva de nuevo. Aquí tenemos diferentes modos
de iluminación. Realmente no los
necesitamos porque no
vamos a
trabajar en tres D. Realmente
no te concentres en
esto ahora mismo en el programa. Se pueden mostrar y ocultar cosas
diferentes. Lo estaremos usando más tarde. Por ejemplo, puedes
mostrar la colisión, puedes ocultar la niebla y así sucesivamente. No es realmente necesario en este momento, no nos
metamos en ello ahora. Muy importantes son esas herramientas. Por aquí tenemos
la herramienta de selección y esto básicamente selecciona
artículos en tu mundo. Ahora para usarlos, agreguemos realmente
algo al mundo. Vamos a este toque rápidamente
Agregar al botón Proyecto. Muy importante
aquí. Se puede agregar, por ejemplo, una forma básica. Agreguemos un cubo. Aquí está el cubo que hemos agregado. Voy a disminuir la velocidad
de la cámara. Nos estamos moviendo muy rápido en el mundo,
volviéndolo a uno. Si haces clic en esta, puedes ver que esta es
la herramienta Seleccionar. Y recuerda que tienes atajos
para estas herramientas, puedes. Esta es, la siguiente
es la herramienta de movimiento, haces clic en ella, puedes ver aparecer
esos puntos de pivote. Ahora si haces clic en el rojo, puedes moverte a este eje. Da clic en el azul, puedes moverte hacia arriba y hacia abajo. Si haces clic en el
eje verde, puedes moverte de esta manera. Ahora los colores para estos
son en realidad X, Y y Z. Y puedes verlo aquí
en el panel de detalles Puedes ver la
ubicación de la misma, la X. Si mantienes el mouse sobre ella, también
puedes ver
el valor realmente antes de que usualmente te dijera
que este es el eje X. Pero ya veo que ya
no lo está haciendo. Pero básicamente, el
rojo es el eje x, el verde es el eje y, azul es el eje z, el eje x, el eje y y el eje z. ¿Bien? Se puede mover así. También puedes sostenerlo aquí en
la plaza en el medio. Se puede mover en dos
direcciones a la vez. O puedes sostenerla sobre esta pequeña
esfera blanca en el medio y puedes moverla en las
tres direcciones a la vez. También puedes aquí en
el panel de detalles, tal vez te hayas dado cuenta de que estos son los detalles o
lo que sea que selecciones dentro de aquí. Si selecciono esto aquí, esos planos
de tierra de este mundo abierto, o si selecciono mi cubo, vea diferentes detalles sobre el artículo que ha
seleccionado en su mundo. Por ejemplo, puedo ver
la ubicación de mi artículo, puedo ver la rotación del mismo. Puedo ver la malla estática que es básicamente
el modelo tres D. Puedo ver el material suministrado. También puedo ver
cosas de la física. Y puedo ver, por ejemplo, simular la física no se aplica. Puedo ver que se aplica la
gravedad, puedo ver opciones de colisión, opciones iluminación,
y así sucesivamente y así sucesivamente. Y puedes ver que tienes
muchas cosas que puedes ver. No te preocupes por eso por ahora. Vamos a trabajar
mucho en el panel de detalles. Se pondrá cada vez
más fácil para ti. Muchas de estas cosas no
vamos a usar porque estamos, nuevamente trabajando en dos D, así que no te preocupes por esto, pero básicamente aquí
por la ubicación, puedes moverlo así y
también puedes hacerlo en tod, o puedes moverlo así si simplemente
haces clic aquí y
arrastras con el mouse, haz clic y arrastra con tu
mouse sobre los números Y puedes moverlo
así. O si tienes ubicaciones
específicas,
puedes escribirla. Si haces clic en
él aquí y puedo escribir 1,450 por ejemplo Y puedo dar click en Inter. Puedes ver mi cubo se mueve a la ubicación precisa.
Puedes hacerlo así. Puedes moverlo
manualmente, moverlo aquí. O puedes volver a escribir
el número. Ahora la rotación, que es la siguiente si haces clic
en, en tu teclado. Entonces el primero fue, el
siguiente fue para la herramienta de movimiento. La herramienta de rotación es E en el teclado con la
herramienta de rotación, autoexplicativa, se
puede rotar el elemento
en diferentes ejes, Nuevamente, en dos D,
solo tenemos dos ejes. No te preocupes por el tercero, pero sigue siendo el mismo proceso. Entonces te lo voy a enseñar
de esta manera. Nuevamente, para la rotación. También puedes cambiarlo por aquí. Si quieres
restablecer la rotación, tal vez no estés
satisfecho con ella. Puedes dar click en
esta pequeña flecha y se restablecerá
todo a los valores predeterminados. Entonces esta es la herramienta de rotación. Lo último es
la herramienta de escala. Si hace clic en R
en el teclado, hace clic en Q para
la herramienta de selección, para la herramienta de movimiento, para
la herramienta de rotación y R para la herramienta de escala. Ahora de nuevo, para la herramienta de escala, se
puede escalar en
diferentes direcciones. O si hago clic en el
control Z para volver atrás, también
puedes escalarlo uniformemente
en las tres direcciones. Si haces clic aquí en el medio, así de nuevo, si no estás satisfecho, siempre
puedes dar click
sobre esta flecha. También puedes
escalarlo de nuevo si
simplemente haces clic con el
mouse y arrastras. O si quieres
escalarlo de manera uniforme, puedes hacer clic en este candado. Siempre que escales, uno de ellos, todos ellos también escalarán. Esto es
lo bueno de la cerradura. Si quieres escalar
solo uno de ellos, puedes abrir la cerradura y
puedes simplemente escalar de un
lado a la vez,
¿de acuerdo? Muy importante. Recuerden esos. Los vamos a utilizar
a lo largo de todo
el curso, los siguientes cursos, y probablemente cada uno de los
cursos que hagamos. Solo recuerde la Q
para la herramienta de movimiento, para la herramienta de rotación
y R para la herramienta de escala. También tenemos algunas opciones de
chasquido aquí. Como pueden ver, cuando
muevo algo, se ajusta a una grilla No se mueve sin problemas
debido a esto. Puede hacer clic aquí y
aumentar el número. Esto chasqueará aún
más que antes. Esto es agradable si estás tratando construir algo
con una estructura. Ahora puedes copiar y pegar esto. Si mantienes Alt en tu teclado
y haces clic y arrastras, eso copiará este ítem. Voy a intentar copiarlo de nuevo. Mantenga presionado, haga clic y arrastre. Estás sosteniendo Alt y
puedes ver que lo volví a copiar. Ahora el chasquido es muy, muy bueno si estás tratando de
construir algo como
esto con una estructura Ahora bien, si no
quieres el ajuste, siempre
puedes hacer click en este botón y esto lo
deshabilitará Puedes, puedes
moverlo sin problemas. Se puede hacer
lo mismo con el escalado, la rotación y el escalado. Se puede aumentar la rotación, ajuste y también
el escalado puede desactivar el ajuste de escala o aumentar el ajuste de la misma Voy a ponérmela de nuevo
y sólo voy a volver a diez, que es la predeterminada como antes. Puedes bajar y subir
para la velocidad de la cámara. Ahora lo bueno de esto es que
si te estás
enfocando en objetos pequeños, quieres que la
velocidad de la cámara tal vez sea menor, para que puedas moverte más lento y
enfocarte en lo que estás haciendo. Si te mueves en un mundo
realmente grande, puedes ver que puedo moverme mucho más rápido aumentando la velocidad de
mi cámara. Así es como lo solemos usar. Yo sólo vuelvo a uno de aquí. Bien. Lo último muy
importante aquí
arriba son también los ajustes. Se puede ir a la escalabilidad
del motor. Y ahora mismo
se puede ver que estoy manejando el motor con una calidad épica. También puedes
configurarlo en baja calidad. Por ejemplo, si estás rezagado, si tienes una computadora de gama baja, puedes ver ahora mi motor no
está realmente usando
mucha memoria Si tienes una buena
computadora, por ejemplo, siempre
puedes aumentar
la escalabilidad Normalmente corro cinematográfico
si hago algo como arquitectura o si hago
una escena de corte en un juego Es muy agradable correr
cinematográfico y va a quedar rezagado. Entonces ahora mismo
no lo voy a hacer
porque también estoy
grabando el curso. ahora solo lo estoy ejecutando en
Epic. Todo bien. Entonces echemos un vistazo aquí arriba, tienes el archivo Botones básicos. Como sabes por cada software, puedes guardar el juego
o guardar el nivel. También puedes crear un nuevo
nivel que haremos más adelante. Se puede exportar
todo y así sucesivamente. También tienes las preferencias
del editor y dentro de las referencias del editor, puedes editar cosas
sobre este editor. Por ejemplo, esta
selección es naranja. A lo mejor quiero que sea
algo así como rojo en su lugar. Yo puedo hacer eso O, puedes editar cosas sobre esto. Ahora sólo voy a hacer click en el control Z porque estoy
satisfecho con el color. Pero básicamente puedes
cambiar las cosas este editor en la configuración
del proyecto, puedes editar cosas
sobre este proyecto. Por ejemplo, puedes
darle
un nombre al proyecto , el nombre de tu empresa. Más tarde, tal vez
lances el juego. La gente puede ver tu
soporte contactar correo electrónico y pueden
contactarte si hay errores. También puedes agregar películas. Por ejemplo,
cuando abres un juego, hay una pequeña película sobre el logotipo durante 5 segundos
y luego comienza el juego. Puedes agregar películas
aquí, poner en marcha películas, puedes empaquetar el juego
en diferentes consolas. Tienes muchas cosas que
puedes hacer dentro de aquí. Ahora vamos a entrar
de aquí porque tienes algunas cosas con las que puedes trabajar aquí y nosotros también lo
haremos. Así podemos ver que tienes mucho de eso que puedes hacer en
la configuración del proyecto. Nuevamente, igual que te
dije antes, no te centres en todas ellas. Vas a usar incluso 20% o vas
a usar 20% de ellos, Tal vez 15% 10% No te concentres
realmente en esto, va a ser demasiado confuso
si empiezas hacer cosas que
realmente no vas a usar más tarde. Por ahora, no nos
centremos en la configuración del proyecto, vamos a cerrarlo. Vamos a pasar por
esto cuando lo necesitemos, pero básicamente la mayoría de estas cosas
en realidad no vas a necesitar. Centrémonos en todo esto. Vamos a pasar por
este curso y voy a enseñarte cada cosa
que necesites saber. Por aquí a la derecha, puedes ver el Outliner Si haces clic en los
objetos del mundo, puedes ver que también están
en el World Outliner El World Outliner
básicamente está mostrando qué artículos tienes
dentro del mundo Tienes los tres
cubos que acabamos de agregar. Tenemos alguna iluminación
que puedes ver aquí. Tenemos un cielo y tenemos
la luz, y así sucesivamente. Estos en realidad están aquí y en realidad se pueden
ver aquí. Se puede dar click en la luz
direccional, por ejemplo, esta
es la luz solar. Si haces clic en,
en tu teclado, esto te llevará a donde
hayas seleccionado. Si hago clic en, te
llevará por aquí. Ahora si hago clic en,
porque escondí mis íconos, para presionar G. Así puedes ver los íconos y aquí
realmente puedes ver todas las luces. Lo están escondiendo por aquí. De nuevo, da clic en si
quieres ir allí rápidamente. Entonces, por ejemplo, puedo dar
click en el cubo. Si realmente puedo encontrar el cubo, no
puedo encontrar el cubo. Lo bueno del
outliner es que
puedes encontrar el cubo aquí y
puedes hacer clic en el cubo De hecho puedes ver
los cubos por aquí. También puedes seleccionar
artículos aquí. Da click en el teclado para
llevarte allí si deseas
ir allí rápidamente. En básicamente el
World Outliner te está mostrando lo que tienes
dentro de este mundo, dentro de tu juego ahora mismo Todas estas son solo las partes
del paisaje aquí. Como pueden ver, en realidad
no hay mucho
en el outliner Puedes crear carpetas si
quieres mantenerte organizado. Al hacer clic en este icono de carpeta
se creará una nueva carpeta. Simplemente puedes renombrar la
carpeta aquí que creamos. Puedes cambiarle el nombre y
puedes agregarle cosas. Si haces clic y arrastras
el elemento a él, puedes mantenerte organizado de esta manera. Puedes ocultar los elementos
haciendo clic en este y puedes volver a hacer clic en él para
volver a mostrarlos. Sí, ese es básicamente el outliner del que
ya hablamos, el panel de detalles,
y por aquí, no hay mucho que hacer Lo más importante
por ahora es que puedes agregar cosas al mundo haciendo
click aquí arriba, por ejemplo. Se pueden agregar luces. Realmente no necesitamos eso. Vamos a trabajar con dos D. Puedes volver a agregar formas, no
necesitamos eso. Vamos a trabajar con dos D. En realidad no
vamos a
centrarnos demasiado en esto, pero básicamente podemos agregar
cosas como volúmenes. Vamos a agregarlo más adelante. Entonces necesitamos algo dentro de aquí botón muy, muy
importante. También puedes jugar el juego, y puedes ver cómo es
el juego. Ahora bien, en
realidad no tenemos mucho en el juego, en realidad no pasa
mucho. Voy a dar click en Escape en mi teclado y
vamos a salir de aquí. Bien, antes de que terminemos esto, lo último dentro de este motor es
el cajón de contenido. Si haces clic en él, aparecerá esta
ventana. Lo que es el cajón de contenido, es básicamente donde puedes
agregar todos tus archivos de juego. Si tienes las dos D art que has realizado
en tu software, por
ejemplo, los personajes,
el entorno, los conjuntos de azulejos, todos esos
archivos estarán dentro de aquí. La música, los
efectos de sonido, lo que sea que tengas. Si estás haciendo un juego de tres D, tienes los tres
modelos D, texturas y así sucesivamente. Entonces todos los archivos
estarán dentro de aquí. Y puedes hacer clic y arrastrar
cosas al mundo, y podemos usarlas dentro
del cajón de contenido. Realmente no me gusta tener
el cajón de contenido así, porque si hago clic
en algo en mi mundo, lo minimizará. De nuevo, creo que
también te va a resultar confuso. Mientras
sigues el curso, lo que puedes hacer es hacer clic
en el cajón de contenido. Y voy a dar click
en Duck en Layout. Y esto hará que así el cajón de contenido ahora
se llame el navegador de contenido. Se quedará aquí en la
ventana gráfica o en mi vista, y solo puedo
redimensionarlo si quieres Puedes cambiar el tamaño de todos
los paneles si quieres. Es mucho mejor
cuando sigues este curso que puedas
verlo todo el tiempo. Y normalmente
lo tengo así también. Fue así en el
agujero del motor cuatro. Sí. Entonces básicamente
puedes ver tus archivos, puedes hacer nuevas carpetas. Si escribes, da clic en
esta carpeta de contenido, por ejemplo, puedes dar
click en nueva carpeta. Se le puede llamar, digamos activos o lo
que quiera agregar. Posteriormente,
incluso puedes hacer clic derecho en esta carpeta y
puedes ir a Establecer color. Puedes darle
un color a esta carpeta si quieres. Así como así,
puedes mantenerte organizado. Sea lo que sea que quieras hacer, siempre
puedes volver a hacer clic derecho, borrar el color
si no lo quieres. Ahora todos los archivos
volverán a estar aquí. También puedes hacer
clic en el botón Agregar y puedes agregar una nueva
carpeta si quieres. También puedes ver, puedes agregar otras cosas como
la clase Blueprint, esta es la programación
que estaremos haciendo Puedes agregar un nuevo nivel, puedes agregar un material. Puedes agregar muchas cosas sobre el follaje
de animación si estás haciendo pasto y árboles y así sucesivamente. Puedes agregar algo
sobre el papel a T, que es el para realmente el pix mucho con el
que estaremos trabajando. Estaremos sumando todos esos. Aprenderemos
cada cosa aquí. Se puede agregar física y así sucesivamente. También puedes hacerlo, en lugar
de hacerlo desde aquí, que nunca uso, puedes dar click en la carpeta y puedes
escribir click dentro de aquí. Y puedes agregar las mismas
cosas que normalmente solo escribo. Da clic aquí y agrega cosas. Pero también puedes hacerlo aquí arriba, ¿de acuerdo? Esto fue todo. Ahora bien, si quieres minimizar o hacer que estos iconos sean cada vez más
pequeños, puedes mantener el control en tu teclado y
puedes alejar el zoom. Esto aumentará o
disminuirá el tamaño del icono. También puede mantener el
control y
acercar para aumentar el
tamaño de los iconos. Ahora también puedes hacer clic en
Configuración, clavé Tamaño. Y esto es básicamente lo
mismo que fue para Nal Engine cinco
y la visión general. Espero que tengas un
poco más de confianza en lo que hay dentro de aquí. De nuevo, vamos a hacer todo
un curso dentro de aquí, así que vas a tener
confianza con él por ahora. Vamos
a saltar a la siguiente lección.
5. 2.01 Introducción al juego: Hola y bienvenidos. Y muchas gracias por
acompañarme en este curso aquí. Esto es solo una introducción
al juego que estamos creando. Me gustaría mostrarte lo que estamos creando antes de comenzar, para que tengas una idea de lo que estamos haciendo
dentro de este curso. Entonces básicamente, estamos
creando un juego de dos clicker. Y aquí está, dentro
de Unreal Engine Five. Y solo estamos
usando planos para crear este proyecto,
así que no hay C plus Ahora solo quiero
mostrarte cuál es el proyecto. Si solo hago clic en reproducir aquí, se
puede ver que la música ya
se está reproduciendo. Este es básicamente un juego
clicker como Cookie Clicker o
Clicker Heroes, si solo deshabilito Entonces puedo hablar libremente
si hago clic aquí. Así que el volumen 20 y
haga clic en reproducir de nuevo. Básicamente esto es
como Clicker Heroes, donde tienes un
enemigo en medio Tienes artículos de tienda aquí a un lado,
tienes monedas aquí arriba. Acabo de darme
muchas monedas para poder comprar todo esto y
poder mostrarte el juego. También tengo algunos niveles
aquí a un lado. Y tengo un temporizador que tengo
para matar al enemigo antes. Porque si no
mato al enemigo, el temporizador se restablecerá y el
enemigo sanará al máximo. Una vez más, tengo que matar a este enemigo antes de que se acabe
este temporizador. Si mato al enemigo, puedes
ver que se ha
desbloqueado un nuevo nivel y puedo pasar
al siguiente nivel para
engendrar al siguiente enemigo, y puedo matar a este enemigo Ahora cada vez que mato a un enemigo, gano monedas y puedo ir
más allá en los niveles, y los niveles continúan en
cuanto tengo dinero, ahora
puedo desbloquear artículos
que puedo comprar desde aquí. Por ejemplo,
puedes ver que mi mouse está haciendo 15 daños por clic. También lo puedo ver aquí, si sostengo el mouse sobre
él, dice actualmente haciendo
15 daños por clic. Y puedo pinchar en
él y comprar uno. Y ahora hago 40 daños por clic y puedo
hacer clic en el enemigo. Y ahora puedo ver
que hago más daño. Estos artículos aquí abajo son mecánicos
de clicker automático. Básicamente, si compro este, dice
que me da
cinco daños por segundo. Cinco por uno. Ahora puedes
ver que automáticamente inflige daño al enemigo e
inflige cinco de daño por segundo. Obviamente, esto no
va a matar al enemigo, y el enemigo sigue
reiniciando la salud Pero si compro algo más fuerte, puedes ver que aquí puede llegar a
la muerte y desbloquearlo. Ahora he hecho esto
súper fácil por ahora, porque solo quiero
mostrarte cómo es el juego. Pero obviamente la salud
necesita ser mucho más y el costo tiene
que ser mucho más también. Ahora en los planos, si
acabo de quitar mis monedas, si voy al jugador, hago clic en la cantidad de
monedas y la pongo a cero Y si hago clic en Play, puedes ver aquí los artículos
que aún no puedo comprar. Los botones han sido
deshabilitados y el botón cambia de color así en
cuanto tengo dinero. Puedes ver ahora
puedo comprar este artículo. Y en cuanto compre una, así que ahora tengo 15 monedas, puedo comprar una y me paso
las monedas aquí a un lado. Se puede ver cuántos he
comprado en cuanto compro. Todo lo que puedes ver, por cierto, cada vez que compras un artículo, pons aquí al mundo Entonces, si compras un
artículo, se genera aquí. Y si compro más de ella, puedes ver que sigue
desove aquí Así que todos los artículos que compres también
aparecerán en
el mundo En cuanto haya comprado todos
los artículos y una cantidad específica, habrá un
botón de ascenso que aparecerá Cuando hago clic en él, puedo
ascender a la siguiente etapa. Este es básicamente
el juego que estamos creando y aquí
también hay mecánicos de autobuses, así que enemigos de autobús que
aparecerán más adelante en las etapas. Este es básicamente el
juego clicker que estamos creando. Espero que me acompañes
en las próximas lecciones. Será muy divertido
crear todo esto contigo,
y te prometo
que será fácil, y te lo pondré fácil
también. Vamos a continuar.
6. 2.02 Crea un nuevo nivel: Bien,
comencemos con el proyecto. Sigamos adelante y
creamos un nuevo mapa dentro de las carpetas en el navegador de contenido.
Voy a escribir. Haga clic primero y cree una nueva
carpeta y llámela mapas. Simplemente mantente organizado
con el proyecto. Ahora dentro de aquí
voy a dar click ahora. Se puede crear un nivel
con dos métodos. Puedes hacer clic con el botón derecho
aquí y crear un nuevo nivel. O puedes ir a Archivo y puedes hacer clic en Nuevo Nivel. Ahora la diferencia es que
si haces clic
aquí desde aquí y haces
clic en Nuevo Nivel aquí, puedes ver que puedes hacer un
nivel de mundo abierto. Se puede hacer vacío a
nivel de mundo abierto y así sucesivamente. Entonces tienes algunas
plantillas aquí abajo. Si haces clic derecho
y haces clic en el nivel, no
obtienes esas opciones, solo
obtienes automáticamente un nivel vacío. Yo sólo quiero hacer un nivel
vacío porque de nuevo, vamos a crear
todo nosotros mismos. Haga clic derecho aquí,
haga un nuevo nivel. Llamemos a esto un mapa. Normalmente lo llamo mapa, llamemos a esta mazmorra No creo que vayamos a
tener múltiples mapas, Este es el
único que tendremos. Vamos a
hacer doble clic en este. Te iba a decir,
¿ quieres guardar este mapa? Esto es en realidad
lo que significa cuando tienes estrellas en tus íconos. Si tienes
estrellas pequeñas, significa que aún no las has guardado. Vamos a seguir adelante y dar
clic en Guardar seleccionados. Y ahora estamos
dentro de este mapa. Ahora se puede ver que está muy
oscuro, no podemos ver nada. Y también aquí en el Outliner, puedes ver que no
puedes ver ningún artículo Esto se debe a que tu
nivel está vacío. No tienes
nada, no
tienes iluminación, nada. Aquí vamos a agregar
muchas cosas, pero por ahora solo queríamos
crear un nuevo mapa. Sigamos adelante y hagamos
clic en Archivo Guardar todo. Muy bonita tecla para
presionar a menudo porque a veces
el motor se estrella. Pero sigamos adelante
y guardemos todo y pasemos
a la siguiente lección.
7. 2.03 Importación de elementos ambientales: Ahora sigamos adelante e importemos los activos
del medio ambiente. Ahora he incluido esto
para ti con el curso. Tenemos algunos materiales del curso
que puedes descargar. Ahora, dentro de estos
materiales, nuevamente, voy a agregar más artículos a
medida que desarrolle este curso. A veces si voy a
los efectos de sonido, es posible que veas muchos
más efectos de sonido cuando estoy dentro de aquí. Para que veas que los tengo, pero en tu carpeta
podrías tener muchos
más efectos de sonido. De nuevo, voy a
agregar más y más a los materiales de
mi curso a medida
que desarrolle este curso. No te confundas si
no tengo tantos, tantos artículos dentro de aquí. Bien, por el medio ambiente, vamos al
medio ambiente aquí, y tomemos esos dos. Entonces tengo los ambientes de
prisión de mazmorras. Ahora bien, si puedo
hacer doble clic sobre él y acercar, así es como se ve. Lo mismo aquí
para los apoyos. Tengo algunos apoyos que puedo usar. Ahora vamos a cerrarlo
y vamos a importar esos. Para importarlo,
hagamos una nueva carpeta. Voy a hacer click derecho
aquí, hacer una nueva carpeta. Voy a llamarlo
assets dentro de aquí, voy a hacer click derecho y volver a
hacer una nueva carpeta. Y llamémosle a esto
un ambiente. Bien, voy a
hacer mis íconos un poco más pequeños porque están
ocupando mucho espacio. Así que voy a hacer clic en Control y alejar con
la rueda del ratón. Bien, ahora voy a entrar a
la carpeta de entorno. Y es fuera de aquí. Ahora
podemos hacer clic y arrastrar. Déjame abrir
la carpeta otra vez. Puedo pinchar y
arrastrarlos hasta aquí. Ahí vamos. Ahora recuerda, si no puedes
hacer clic y arrastrarlos, obtienes este ícono aquí y te dice que realmente no
puedes
arrastrarlos hasta aquí. Esto se debe a que
tal vez tu carpeta sea una carpeta Ip o una carpeta sin procesar. Recuerda hacer clic derecho en tu carpeta y
extraer el contenido. Si es una carpeta Ip, tiene
que ser una carpeta normal. Extraer el contenido.
Después de extraer, puedes importar cosas
dentro de aquí. Ahora cuando importas
cosas dentro de aquí, puedes hacer clic en él y en realidad
puedes ver que está borrosa En realidad no se escoge mucho
y ve que es muy borrosa. Y eso no queremos. Esto se debe a que el motor real
es un motor de tres D. Difumina las cosas que
se ven bien en tres D,
pero no se ve bien en dos D. Una
cosa simple de hacer es simplemente seleccionar ambas y simplemente puede hacer
clic en Control y dar clic en la siguiente
que tanto el
clic
derecho irá a Acciones de Sprite
y haz clic en Aplicar Papel
dos D Ajustes de Textura Esto asegurará que los artículos dentro de aquí no
estén borrosos Y en realidad
es escoger
mucho como puedes ver aquí, ahora es escoger mucho, todo se ve bien Sigamos adelante y hagamos
clic en Archivo y guardemos todo, las texturas. Ahora en realidad voy a hacer una nueva carpeta llamada Texturas, y vamos a importarla. Dentro de aquí tenemos
la carpeta Activos. Dentro de él tenemos
el entorno, y dentro de él tenemos
la carpeta Texturas. Esto se debe a que cuando creamos un mapa de
teselas y un conjunto de mosaicos más adelante, solo los
voy a
colocar aquí. Estos ya no
necesitamos más. Más tarde, sólo voy a tenerlos dentro de
la carpeta Texturas. Pero por ahora, esto fue todo. Pasemos a
la siguiente lección.
8. 2.04 Crea un conjunto de azulejos: Ahora que hemos
importado los activos, ahora
podemos crear un
mapa de teselas y un conjunto de teselas. Ahora para conocer la
diferencia, puedes escribir click aquí y entrar en papel para, puedes ver que hay
algo llamado un mapa de teselas. Hay algo
llamado juego de azulejos. Ahora la diferencia entre
ellos es que el conjunto de mosaicos, ahí están los mosaicos con
los que necesitamos pintar nuestro mapa. El mapa de teselas es el mapa en sí. Te lo puedes imaginar
si eres pintor. Tienes el pellet, que es el conjunto de mosaicos que son nuestros mosaicos, y el lienzo que
es el mapa de azulejos donde pintamos nuestro mapa en sí. Sigamos adelante y
creamos un juego de mosaicos. No lo voy a
crear desde aquí, pero podemos crearlo
haciendo clic derecho sobre el prisma de la mazmorra Se puede ver que este
es el ambiente que importamos o
básicamente los azulejos. Hagamos clic derecho en
éste y vayamos a acciones de
sprites y
creamos un conjunto de mosaicos A partir de esta textura,
se puede ver que está creada. Sólo voy a hacer
doble click aquí. Y también puedes, por cierto, dar clic en él y hacer clic en
dos en el teclado. Eso es más fácil a veces. Sólo voy a decir S
como prefijo para el conjunto de mosaicos. Voy a hacer doble clic en
él y abrirlo aquí arriba. Puede mantener presionado el
clic derecho y puede escribir alrededor y puede acercar
y alejar y ver los mosaicos. Da click sobre ellos para seleccionarlos.
Eso es lo que estamos haciendo. Más adelante vamos
a seleccionar los mosaicos y luego pintarlos
dentro del mapa de teselas. Ahora podemos ver aquí, si selecciono un azulejo, no es realmente apropiado. Es seleccionar demasiado. Y esto es porque
aquí en el tamaño de la baldosa, tenemos que definir qué tan
grandes son las baldosas. Ahora estos azulejos específicamente los
encontré en do ins, creo que se llama
Dungeon Pixel tiles o algo así, pero básicamente en ho
puedes encontrar tres fichas, dos D art aquí, era 16 por 16, eso es lo que escribió el artista Además, si escribes 16 por 16 píxeles, así que estos son
píxeles puedes ver ahora
los estás seleccionando correctamente. Ahora si hago clic en los mosaicos, están siendo
seleccionados correctamente, Ahora están preparados. Más adelante necesitamos agregar
colisión aquí, dentro de aquí. A lo mejor lo necesitamos,
a lo mejor no. Porque es un
juego clicker y nadie se mueve. En realidad no
creo que necesitemos agregar ninguna colisión al juego. Esto fue por ahora. Ahora podemos simplemente seguir adelante y guardar todo
y cerrarlo. Ahora bien, si necesitamos los
accesorios más adelante, hagámoslo
ahora. Podríamos usarlos. Vamos a hacer clic derecho aquí.
Ve a Acciones de Sprite, Crea un conjunto de mosaicos a partir de
este también Adelante y cámbiale el nombre a S
en el conjunto de mosaicos inicial. Vamos a abrirla dentro de aquí. Nuevamente, se puede ver
cuando selecciono algo, es seleccionar demasiado. Esto se debe a que el tamaño del mosaico
es de 16 píxeles por 16 píxeles. Ahora cuando selecciono los artículos, es más correcto y no
es seleccionar el elemento al lado
también. Eso fue por ahora. Adelante y guarda
éste también. Ahora si decides ir
a Cho en el futuro, y puedes simplemente subir aquí en los juegos de cejas y activos, y aquí puedes
encontrar activos gratuitos y puedes descargarlos. Pero puedes hacerlo aquí también. Este es básicamente el
que descargué, esta especificación aquí. Pero básicamente si quieres más fichas más
adelante para tu juego o necesitas
más accesorios para tu juego, siempre
puedes entrar
aquí, descargarlos, y nuevamente importarlos. Recuerda hacer clic derecho, aplicar papel a la
configuración de textura de configuración para que no sean borrosas Y luego haz clic derecho,
sigue adelante y vuelve a crear
un conjunto de mosaicos. Y ahí tienes
tus nuevos azulejos. Bien, entonces ahora podemos
usarlas para hacer nuestro mapa de teselas. Así que sigamos adelante en la siguiente lección y
creemos un mapa de teselas.
9. 2.05 Crea un mapa en mosaico: Ahora que hemos
creado el conjunto de mosaicos, solo
voy a
tomar esos de aquí y moverlos a la carpeta
Entorno en su lugar, fuera de la carpeta Texturas. Porque básicamente los que ya no
necesitamos, Pero no necesitas
eliminarlos porque estos conjuntos de mosaicos aún
necesitan esas texturas. Pero realmente no los vamos
a usar en el juego, vamos a usar esto aquí. Ahora hagamos un mapa de teselas. Si haces clic derecho en tu conjunto de
mosaicos aquí que creamos, el prisma de mazmorra, puedes
crear un mapa de teselas aquí arriba Sigue adelante y crea un mapa de mosaico, y voy a llamarlo de
nuevo, Dungeon Prison Detengámonos, hagamos clic y
lo abramos y veamos qué es. Como te dije antes, un mapa de
teselas es el lienzo. Pintas los azulejos
en el juego de baldosas, que puedes ver aquí a
la izquierda es tu lienzo. Puedes seleccionar mosaicos aquí,
puedes acercar y alejar, puedes mantener presionado el clic derecho, y puedes escribir
alrededor, por ejemplo. Puede hacer uso de la palabra
aquí si da clic aquí. Si mueves el ratón a
tu lienzo en el mapa de teselas, y haces clic aquí, ahora puedes ver que has
pintado un azulejo. Simplemente puedes
hacer clic izquierdo y pintar. Ahora puedes ver que has
llenado todo el asunto. Ahora si quieres borrar,
puedes dar click en
el Borrador aquí arriba, o puedes hacer click en
E en el teclado Al hacer clic en, volveremos a seleccionar la maquinilla de afeitar,
dar clic en todo. O puedes seguir adelante, y eso llenará todo
el asunto. O puedes pincharlo
aquí arriba, el cubo de pintura. Y puedes dar click
aquí y llenará todo
el lienzo con el
azulejo que hayas seleccionado. También puedes seleccionar
otro azulejo, y haciendo clic en B
para la herramienta de pintura, luego puedes pintar aquí también. Ahora puedo ver que podemos
pintar dentro de aquí. A la derecha, tenemos capas. Si has trabajado con
software como Photoshop, ya
sabes qué son las capas. Por ejemplo, digamos que aquí
pinté este suelo. Al hacer clic en este
azulejo, pinté aquí. Si hago clic aquí arriba, básicamente
puedes
cambiar conjuntos de mosaicos. Puedo cambiar mi juego de azulejos de prisión de mazmorras a
los apoyos que creé Digamos que quiero
pintar esto aquí. Usted ve aquí. Si hago clic aquí, no
es suficiente
porque la caja consiste en
ésta y ésta De hecho, puedo simplemente hacer clic y arrastrar y simplemente seleccionar
ambos. Ahora si los llevo
aquí y pinto, se
puede ver que mi suelo
se está borrando. Esto es porque tú también estás
pintando aquí arriba. Voy a dar click en el control Z. así que en vez de aquí, agreguemos una nueva capa Ahora puedo pintar mi cubo
sobre esta nueva capa. Ahora se puede ver que no pasa nada. Esto se debe a que esta capa
no está afectando a la
capa debajo de ella. Si hago clic en el ojo para
mover la visibilidad, ahora pueden ver que golpeo mi caja Y si lo
vuelvo a hacer clic, lo muestro. Y puedo hacer
lo mismo con otros artículos. Básicamente puedo hacer clic en la
segunda capa y agregarla, y va a estar bien. Ahora puedes ver si hago clic en la primera capa y la pinto, borrará el
azulejo debajo de ella. Muy, muy agradable
tener estas capas. Si necesitas algo encima
de la capa debajo de ella, necesito algo
encima del suelo y tengo que hacer una nueva capa. Digamos que tuvimos un juego donde
teníamos cielo y nubes. Digamos que era una plataforma
o juego y teníamos la nube. Permítanme simplemente borrar
todos los que están aquí. Digamos que aquí teníamos nubes. Y detrás de esos mosaicos también, podríamos haber creado una capa. Y en realidad podríamos dar
click sobre esta flecha para colocar la capa detrás de
estos mosaicos aquí. Y podríamos pintar detrás de él
sin que se vea afectado. Y se puede ver si los
escondo aquí, estos son en realidad
detrás de los azulejos del suelo. Bien, así es como
funcionan las capas, al igual que en Photoshop, si ya has trabajado
con Photoshop antes, simplemente
sigamos adelante y eliminemos esta capa aquí. Y
esta capa también, solo quédate con esta.
Ahora aquí abajo tenemos que definir el ancho y la altura de la
baldosa. Ahora bien esto es correcto porque recuerden dentro del conjunto de mosaicos, teníamos los mosaicos para ser de
16 píxeles por 16 píxeles. Y aquí también es de 16
píxeles por 16 píxeles. Entonces esta es correcta. Bien, sigamos adelante
y eliminemos esto. Voy a hacer click
en E para la maquinilla de afeitar. Solo ve y borra todo. Ahora lo que podemos hacer es que
todo está bien. El ancho y la altura del mapa. Vamos a hacer el
mapa un poco más grande. Voy a hacer que
sea de 15 por 15 azulejos, tamaño 15 azulejos por 15 azulejos. Esto es sólo temporal. Crearás un mapa temporal que cambiaremos más adelante. No te preocupes por eso por ahora. Solo queremos que el juego
tenga algo para que
podamos codificar el juego. Por ahora, esto está
bien. Demos clic en Archivo y guardemos todo. Y pasemos
a la siguiente lección.
10. 2.06 Diseñar un mapa temporal en mosaico: Bien, sigamos adelante
y diseñemos un mapa temporal. Antes de que podamos codificar nuestro juego, necesitamos tener algo aquí. Básicamente, hagamos clic en
el mosaico configurado aquí y seleccionemos el prisma de mazmorra dentro Puedes seleccionar
lo que quieras. Incluso puedes tomar este y hacer clic en
para la herramienta de relleno. Y puedes dar click aquí
y ya terminaste. Pero básicamente solo voy a crear aquí no tiene
que ser realmente algo bueno, porque vamos
a cambiarlo de todos modos. Voy a dar click y
llenarlo aquí con estos mosaicos. Esta capa una, incluso
puedes hacer click sobre ella. Da click en dos en el teclado
y llámalo capa base. Este es tal vez el suelo. Ahora también necesitamos quizá algunas
paredes. Estas son las paredes. Sólo voy a seleccionar
esta esquina aquí otra vez. Puede hacer clic y arrastrar,
seleccionar los tres. Puedes dar click sobre este plus
aquí, hacer una nueva capa. Y sólo voy a
llamarlo capa frontal. A lo mejor haga clic en la herramienta de alfiler
para pintar, pintarla aquí. Voy a seleccionar muros Ahora, voy a simplemente hacer clic y arrastrar mi mouse para pintarlos
todos aquí. Nuevamente, selecciona éste
y píntalo aquí. Bien. Ahora a veces cuando
tienes fichas nuevas, tienes que
averiguar cuál va a dónde, porque son muy específicas. Por ejemplo, aquí abajo
está, creo que éste. Puedes seleccionar esto
aquí abajo, pintar por aquí. Entonces hay que seleccionar, veamos, creo que es
esta. Éste. Pinta aquí abajo también. Tienes que seleccionar
uno de ellos aquí. Tenemos que ver, déjame ver aquí. Si podemos encontrar uno que
se ajuste, a lo mejor éste. Sí, éste encaja. Puedes pintarlo por aquí. Puedes seleccionar este click
aquí, pintarlo hacia arriba. Ahora solo conéctate y
conéctalo con este de aquí. Ahora tenemos una pequeña
habitación con la que podemos trabajar. Incluso puedes intentar practicar estos mosaicos. Es
bueno practicar. Ahora, antes de
hacer el mapa final, tal vez agregue algo
como esto aquí. Pero como pueden ver, en
realidad estamos en los lados aquí. Déjame ver si podemos arreglar esto. A lo mejor puedas pintar
con éste. Para el otro lado,
necesito seleccionar los, déjame solo para que veas mejor los que hay en
ellos de este lado. Y ahora se ve correcto. Bien. También para los azulejos. A ver si tenemos que pintar esos ahora No los
necesitamos realmente, creo. Bien, entonces lo que
podamos agregar también, puedes intentar agregar este
si quieres. Básicamente, podemos hacer clic y secar y seleccionarlos todos
así, y ahora podemos
agregarlos nuevamente aquí. Puedes intentar agregarlos
a la capa base, pero como puedes ver, pintarás encima de aquí. Da click en Control, también podrás
ver que está detrás de la pared. Da click en la capa frontal,
puedes intentar pintarla aquí. Como puedes ver, de nuevo, está
pintando encima de las paredes, porque estamos pintando encima de esas capas o esos azulejos
haciendo clic aquí y agregando una nueva capa y tal vez llamarla decoración
frontal o lo que sea. En realidad no es demasiado importante, como
lo llames. Vamos, vamos a
agregarlo aquí, por ejemplo. Ahora se puede ver que
hemos agregado esto. Como puedo ver, las fichas que acabo de seleccionar. Los azulejos
aquí arriba no son adecuados, así que tenemos que ir
a la capa base. Y voy a
subir a los azulejos aquí. Y necesito pintar con estos azulejos. Pintar
con estos azulejos. Y el azulejo de esquina está aquí, el otro rincón está aquí. Intentemos pintarlo correctamente. Creo que esta está aquí. Pintemos este de aquí. De nuevo, esta esquina así. Y yo sólo voy a
pintar alrededor así. ¿Bien? Puedo hacerlo muy rápido. Ahora mismo, en
realidad no es demasiado importante. Esto es solo un mapa de prueba
que cambiaremos más adelante. Ahora lo malo del motor de
honor para picks mucho hasta ahora es que si
pintas cosas equivocadas, si haces clic en el control Z, solo
va a quitar
una baldosa a la vez Si lo haces demasiado,
puede ser un dolor. Bien, este azulejo de aquí, tal vez solo necesitamos pintar
este en su lugar así. Y se ve mucho
mejor aquí también. Ahora se ve bien.
Creo que también tenemos algo de destaque
para los pilares. Podemos ver que el pilar
también tiene algo de destaque. De hecho puedo seleccionar esta, volver a la capa frontal, y puedo pintar esta
como pilar. Tenemos algo
de luz de esta habitación de aquí, la luz roja, y se
ve más realista. Ahora bien, si también quieres
agregar algunos accesorios, nuevo, realmente no
importa ahora mismo Pero puedes agregar algunos accesorios
aquí. Por ejemplo, crear. Se puede ir al frente
de decoración. Coloquemos uno aquí. A lo mejor colocar este
lado, es así. Y quizá en la
esquina, veamos aquí. Podemos colocar este cofre tal vez aquí en la
esquina así. De nuevo,
realmente no importa por ahora. Dejémoslo así. Si quieres agregar algo de pasto, pude ver que
había algo de pasto. Tal vez puedas seleccionar
algunos de ellos aquí. Agrega la hierba aquí abajo. Entonces puedes rematarlo, creo insinuando
con éste También puedes pintarlo aquí. Voy a dar click en Controles. No es demasiado importante en estos momentos. Vamos a guardar todo. Y este es el
mapa que tenemos. Vamos a cerrarlo, y
pasemos a la siguiente lección.
11. 2.07 Coloca el mapa en mosaico en el nivel: Ahora que hemos
creado el mapa de mosaico, hagamos clic y arrastremos
esto al nivel. Muy fácil. Así es como colocas el mapa de mosaico en el nivel. Nuevamente, tal y como te
dije antes, puedes mantener presionado el
click derecho y dar click en W D S y A para moverte. Básicamente, esto es en realidad
lo que parece. Se trata de dos D dentro
del motor anual. Ya que es un
software de tres D o un motor de tres D, así es como se ve. Estamos trabajando con
tres D, pero si vas a la vista ortográfica y la ves desde la vista correcta en lugar del modo wireframe, solo
puedes seleccionar
el modo no iluminado Puedes acercar aquí y
puedes ver
que así es como se ve. Y ahora lo estamos viendo en dos D. Sólo voy a volver al modo
perspectiva por ahora. Lo que suelo hacer
por la ubicación, dije a los 20, escribamos 000. Es aquí en el
cero en el mundo. Voy a quitar todas estas líneas aquí porque
realmente no las necesito. Si haces clic en el mapa de mosaicos, vas aquí abajo,
puedes eliminar este, Mostrar por cuadrícula de mosaico
cuando se selecciona. Ahora se retira. Ahora
así es como lo colocas. Muy fácil. Podemos seguir
adelante y hacer clic en Archivo y guardar todo.
Pero como puedes ver, se ve muy mal porque los colores no
son correctos, y esto se debe a que
la iluminación en Unreal Engine está
afectando a este mapa de mosaicos Así que sigamos adelante y
lo arreglemos en la siguiente lección.
12. 2.08 Volumen de post proceso: Ahora para ajustar la iluminación, tenemos que usar algo
llamado volumen de post proceso. Si haces clic aquí arriba
y vas a volúmenes, puedes encontrar algo llamado volumen
de post proceso aquí abajo. También lo puedes encontrar
dentro de los efectos visuales. Este
volumen de post proceso es el mismo. Puedes hacer click en él y
vas a crear uno. Qué volumen de post proceso es, si has trabajado
con Photoshop antes, básicamente cambia los colores, igual que en Photoshop. Tú cambias la
saturación de la imagen, Tú cambias la iluminación
y el brillo, y así sucesivamente. Es lo mismo con el volumen de post proceso.
Se da click en él. Dentro de un volumen posterior al proceso, puedes cambiar la cantidad de Bloom la exposición si
quieres un destello de lente. El efecto de imagen que es la viñeta alrededor de la imagen
donde haces la imagen, también conocido como en las esquinas, y hace como un efecto
cinematográfico Y se puede cambiar la
temperatura de la luz. Puedes cambiar muchas cosas donde cambias
el aspecto del juego. El volumen del proceso posterior se utiliza para cambiar el
aspecto del juego. Bien, Dentro de aquí, si solo aumentas
y disminuyes el valor. Por ejemplo, si voy a Bloom y hago clic en la
intensidad y la aumento, la
disminuyo , ves que
no pasa nada. Esto se debe a que hay que
ir dentro de un volumen de post
proceso. Y como pueden ver,
si estoy dentro de ella, ahora
puedo aumentar y disminuir y cambia los valores. Ahora, en lugar de estar dentro
de él aquí puedes bajar y luego puedes encontrar este llamado Infinite Extend Unbound Si haces clic en él, esto significa que afectará a todo
el nivel. Y no importa si estás dentro de ella o
estás fuera de
ella, va a afectar a todo
el nivel. Ahora se puede ver si
aumento y disminuyo, la intensidad
va a cambiar. Ahora lo bueno de
estar dentro de él es, digamos que tuviste
un juego de tres D o incluso un juego de dos D como si quieres hacer
un estilo especial. Si entras en una cueva
en un juego de tres D, por ejemplo un juego de rol, cambia el aspecto del juego porque ahora estás
dentro de la cueva. La cueva tiene un aspecto
específico a la misma. Si sales fuera de la
cueva, cambia el aspecto. Pero aquí realmente no necesitamos cambiar los efectos
dependiendo de dónde nos encontremos. Queremos que
todo sea igual. Por lo general, en la mayoría de los juegos solo
hacemos clic en extensión
infinita unbound y
afectamos a todo el juego Bien, ahora para el Bloom, necesito ponerla a cero
porque realmente no tenemos Bloom o en dos D otra vez con dos D dentro de un motor de tres
D es realmente genial porque puedes usar la
iluminación D y agregarla a dos D, lo
que luego le da efectos realmente
especiales
que, que no obtienes
de dos motores. Puedes obtener tres luces D, puedes obtener tres
efectos D dentro de aquí, que no puedes obtener
en dos motores D. Muy genial para experimentar
con eso también. Probablemente crearé un curso más tarde si
aún no he creado uno, sobre cómo agregar
tres efectos especiales D a dos D. Pero por ahora, pongamos el Bloom a cero. Vamos a la exposición y básicamente la exposición mínima
y máxima, por lo general la pongo a 1.1 la exposición es simplemente
si la desactivo. Se puede ver que la iluminación
aumenta con el tiempo. Esto es bueno para entornos cinematográficos de
tres D, pero realmente no necesitamos
cambiar la iluminación dependiendo de si estamos cerca
o si estamos lejos. Así que vamos a
ponerla en una constante, aunque estemos cerca o muy lejos, realmente no
importa. Pero por ahora,
voy a configurarlo dos porque
solo voy a
darte mis ajustes de
volumen de post proceso que creé para
dos D dentro de aquí. La iluminación es muy, muy buena porque como
puedes ver aquí, tenemos que ajustar
la iluminación y queremos que se
vea como la apagada Si vas al apagón, así es
como se ve sin iluminación Esto es en realidad lo que tengo este
pixel o tile set. Así es como se
ve de verdad. También se puede ver
dentro de la vista derecha, en la vista autográfica Si haces zoom, así
es como se verá cuando tengamos
la iluminación correcta. Si volvemos al modo
perspectiva y vuelvo al modo iluminado,
el problema es que cuando haces
clic en reproducir aquí, solo lo ves en el modo iluminado. En realidad tenemos que
cambiar la iluminación en el modo iluminado para que sea la
misma que la del modo no iluminado Esto es lo que estamos tratando de hacer con el volumen de post proceso. Estamos tratando de
que el modo encendido se vea igual que el
modo apagado. Así. Bien, vamos
al modo iluminado aquí. Lo he intentado de tres a 4 horas. Solo estaba jugando con muchos ajustes aquí para que
pareciera el modo apagado Descubrí que la exposición mínima
y máxima se
deben establecer en dos. El efecto de imagen, que es
básicamente la viñeta, se
puede ver, se agrega como un efecto cinematográfico
alrededor de los bordes Simplemente nos
sentamos éste a cero, realmente no lo necesitamos. En realidad tenemos aquí arriba, los reflejos y
la miscelánea dentro de la gradación de color
para el mínimo de reflejos, necesitamos establecer esto en uno. Veamos aquí la cantidad de la curva de
tono, tenemos que ponerla a cero. Se puede ver mucha diferencia cuando
ponemos éste a cero. Casi se parece
al original. Ahora si vas al modo Encendido. Cuando vas al modo Encendido, puedes ver que se ve
mucho mejor que antes. No obstante, todavía necesitamos ajustar algunas cosas porque se puede
ver que no es lo mismo. También puedes dar click
en los atajos, cuatro
viejos y los tres viejos. Si hago clic en los tres viejos, voy al modo Encendido. Viejo cuatro, voy
al modo Iluminado, ahí, puedo hacer click viejo 3.4 muy rápido, y se puede ver la
diferencia entre ellos. Todavía hay alguna diferencia si vuelvo al modo Lit. Y cambiemos algunos
ajustes aquí también. Ahora, aquí arriba, en realidad
aquí abajo, sigamos. Antes de cambiar los
colores aquí abajo, cambiemos la intensidad de
oclusión ambiental a cero Además, cambiemos la cantidad de
desenfoque de movimiento a cero también. Realmente necesito eso. Demos clic en Archivo y guardemos todo. Ahora si voy aquí arriba, tenemos algo
llamado temperatura, sombras
globales y tonos medios
bajo la gradación de color. Ahora estamos listos para
cambiar los colores, tal vez reducir la saturación. Porque como puedes ver aquí, si voy al modo apagado, se ve un poco más
insaturado que el modo Lit Ahora, te he dado los ajustes
correctos para este. Este tiene que ser 1.0 Todo esto nos hemos puesto a cero porque
realmente no los necesitamos. Y la exposición se establece en dos. Pero ahora tienes que
ir por tu cuenta, porque tienes que
fijarlos dependiendo de cómo se vean
tus mosaicos. Recuerden lo global aquí, si acabo de abrir lo global,
en realidad no todo esto. Si abro lo global y
tú abres la saturación, el contraste, la gamma, y también abriste
la ganancia aquí también. Trabajemos con esos y
arreglemos cómo se ve aquí. Empecemos por la saturación. Esto se debe a que miro este
rojo aquí en el modo Encendido, y hago clic en Unlit Puedo ver que es más
fácil en el hielo, que significa que está menos saturado. Si voy al modo Lit y voy a la saturación
y lo llevo aquí, ahora puedes aumentar y
disminuir la saturación. Y puedes ver que
puedes cambiar el look. No obstante, en realidad no
necesitamos disminuirlo tanto. Voy a volver
a uno como antes. Y lo que hay que hacer
es de nuevo mantener pulsada la tecla Alt y clic en 3.4 Puedes cambiar
entre la Encendida
y la Encendida, y podrás ver cómo se
ve si hago clic en Aquí. En el modo Encendido, lo disminuyo un poco así y hago
clic en los tres viejos. Ahora puedes ver
cómo se ve. Yo sólo estoy
mirando a este rojo de aquí. mejor en vez de
tenerlo así, sólo
voy a tenerlo al 95. Bien. Haga clic en el viejo 3.4 cambiar
entre ellos muy rápidamente. Se puede ver eso,
cómo se ve. Creo que la saturación
está bien ahora, pero puedo ver que es más, aquí
es más blanca. Creo que es la
gamma y la ganancia. Tratemos de ir a la gamma aquí y vamos a
aumentarla ligeramente porque se
puede ver la gamma. Si lo aumentas demasiado, vuelvo al modo iluminado
y aumento la gamma. Se puede ver que este es el efecto. Lo que puedes hacer es un truco
que yo uso a veces. Como hago clic viejo 3.4
simplemente sigo haciendo clic en él mientras en realidad ajusto aquí se puede ver si lo
ajusta de una
manera incorrecta, demasiado. Se puede ver muy
lejos el uno del otro. Si lo aumentas demasiado alto, también
está
lejos el uno del otro. Lo que suelo hacer es mantener viejo y presionar 3.4 muy rápido. Sólo trato de
tenerlos lo más cerca
posible el uno del otro. Ahora puedes ver
si hago clic en todos los 3.4 para cambiar entre los Lit y Let son
casi lo mismo. 1.05 es el valor correcto aquí. Ahora para el contraste,
puedo intentar dar click aquí e intentar aumentar ligeramente
el contraste. Voy a aumentarlo otra vez. Al tres así. 1.02 Creo que es la correcta. Ahora para la ganancia,
creo que podemos
darle un poco por la ganancia.
Probemos eso también. Algo así
aquí para las sombras. Ahora bien, si quieres
darle
un poco más de contraste a las sombras o eliminar el contraste, en realidad
puedes hacerlo si
haces clic en las sombras. Si voy al contraste, porque si miro mis sombras, solo
estoy mirando
mis sombras aquí. Creo que también lo es. Contraste en el modo iluminado, puedes ver que es
más ligero en el iluminado. Pero si vas
al modo iluminado, es, podemos disminuir un poco el contraste para las sombras. Si de nuevo hago clic en el viejo 3.4 simplemente
sigo pinchando en ellos
para ver cómo se ve. Esto es demasiado,
tal vez algo así. Apenas 0.97 Otra vez, como
pueden ver por mis valores, realidad no
los
estoy cambiando demasiado. Tal vez 0.020 0.05 y así sucesivamente. Entonces no cambiarlo demasiado, solo un poco, así
puedo tener esa mirada. Ahora bien, si paso del modo apagado al
modo iluminado, se
puede ver que está muy cerca Ahora, puedes pasar más
tiempo del que tengo aquí. Tal vez puedas pasar 15
minutos o 30 minutos tratando de ajustar de un lado a otro
aquí y tener mejores valores. Pero por ahora, todo
se ve bien. Sin embargo, todavía necesitamos ajustar algunos ajustes dentro de
los ajustes del proyecto. Y hagámoslo
en la siguiente lección.
13. 2.09 Ajusta la configuración del proyecto: Lo último que tenemos que
hacerle al medio ambiente en este
momento es que tenemos que
deshabilitar el tasing Ahora como puedes ver aquí, tal vez no sea
realmente demasiado visible, pero hay anti eliasing que difumina un poco las cosas y
no se ve como Esto se vuelve
a hacer porque en tres D T elising es realmente bueno y hace que tu
juego se vea mejor, pero en Pixelot realmente
no lo necesitamos Vamos a la Edición y
vamos a Configuración del Proyecto. Dentro de aquí,
tenemos que bajar y encontrar la pestaña Renderizado. Al hacer clic en Renderizado,
intentemos cambiar algunas configuraciones aquí para el
anti eliacing móvil realmente no
importa en este momento No estamos creando
un juego para móviles, pero es bueno saber
que está ahí. Y siempre puedes hacer clic
aquí y configurarlo en ninguno, porque realmente no
necesitamos anti elycingw Si voy aquí abajo y echo
un vistazo a los ajustes, aquí
todo está bien. Realmente no lo necesito
ahora para la iluminación. Vamos a
configurarlo en ninguno en lugar de lumen. Vamos a ponerla en ninguna. Realmente no necesitamos
reflexión también o dos D. Echemos
un vistazo aquí abajo. Todo se ve bien. Puedes desactivar Nanite
si quieres,
que son los tres modelos D, el nuevo sistema en
no religión cinco, solo
reiniciemos más tarde Por ahora, vamos a
echar un vistazo aquí. Todo se ve genial. Ahora lo más importante está aquí en la
configuración predeterminada ahora
ya estamos deshabilitados o
ooclusión ambiental y así sucesivamente Realmente no necesitamos
preocuparnos por esos. Eso lo hicimos dentro
del volumen post proceso, el desenfoque de movimiento también, pero puedes desactivarlo
también aquí si
deseas florecer y
oclusión ambiental si quieres Pero realmente no
importa aquí en el anti eliasing, este
es el importante Este que quieres establecer non, puedes ver la diferencia. Si le echo un vistazo aquí arriba, ahora puedo configurarlo en non, se
puede ver la diferencia. Se puede ver que
da líneas dentadas. Si lo configuro a este
por ejemplo, o este super
es el predeterminado, puedes ver
que así es como se ve. Puedes configurarlo en ninguno o
puedes configurarlo en uno de esos, pero ninguno es el mejor. Para pixel, se ve
mucho mejor como pixel. Bien, increíble. Ahora se ve bien. Y éste también. Aquí puedes configurarlo a nada. No AA, todo lo demás está bien. Vamos a uno. Y voy a
darle a Reiniciar ahora. Una vez que se haya reiniciado, se puede ver que estamos
dentro de aquí Ahora abre este nivel de mundo
abierto por defecto y
puedes cambiarlo si vas a Editar y Configuración
del proyecto. Y vas a los
mapas y modos aquí. Y puedes cambiar el editor start up map para que sea tu mapa, Dungeon the Editor,
juego, mapa predeterminado También puedes cambiar al
mapa Dungeon. Ahora puedes cerrarlo
y guardarlo todo. La próxima vez que
abras el motor, va a
abrir automáticamente tu mapa de mazmorras Ahora vamos a darle un click sobre
él. Haga doble clic en el mapa para volver a ingresarlo. Ahora todo se
ve bien otra vez. Puedes hacer click en, puedes dar
click en Vamos aquí en este. Y puedes dar click
en la vista correcta. Se puede volver a
la perspectiva. Haga clic en el modo Encendido. Modo iluminado. Aquí hay una ligera diferencia en los bordes, pero creo que está bien por ahora. Casi no se ve ninguna
diferencia. Se ve bien. Así que ahora podemos hacer click en
Play y podemos jugar este juego aquí y tener
la iluminación correcta. Bien, Todo se ve bien. Como puedes ver,
nuevamente en Picsalot, tienes capas en el motor
real porque
es un motor de tres D. Si solo reduzco la
velocidad de la cámara, se ve así. Se ve raro porque la capa frontal está
frente a ésta. Básicamente. Esto es
cuando creó las capas dentro del mapa de
mosaico, estas capas. Esto es lo que ves aquí. Esta es la capa
frontal de decoración. Esta es la capa de decoración, o la capa frontal, y esta es la capa base. Los puedes
ver así. Se ve raro. Pero cuando haces clic en play y no así, pero cuando haces clic
en play, hacemos una cámara real. Se
verá así. Se ve todo dos D porque lo
estamos viendo desde el frente, todo se ve bien. Demos clic en Archivo
y guardemos todo. Empecemos
en la siguiente lección.
14. 3.01 Modo de juego y controlador de jugador: Bien, entonces ahora que
hemos terminado de diseñar
el entorno, sigamos adelante y
programemos el juego. Ahora lo primero
aquí es que veo un mensaje diciendo que nanita está habilitada
pero no se puede renderizar Y esto se debe a que desactivamos nant aquí en la configuración del
proyecto Si buscas nanite, recuerda que lo deshabilitamos aquí, dice
que aún está habilitado Aquí abajo en la con, ves aquí en la
parte inferior escribes nitro y yo voy a entrar y va
a desactivar nanite Y también este mensaje se ha ido. Vamos por aquí en
la carpeta de contenido. Hagamos clic derecho y
hagamos una nueva carpeta. Llamemos a esto planos
dentro de esta carpeta. Ahora vamos a hacer clic derecho, y ahora ya estamos listos
para programar el juego. La programación es
planos en motores reales. Adelante y da clic en
la clase de plano. Hagamos uno. Ahora obtienes estas opciones
que puedes hacer. Ahora bien, puede ser un
poco confuso al principio si no has
usado planos antes, pero solo para recorrerlos muy
rápido, la clase de actor que
podemos hacer aquí es un objeto que se puede colocar
o engendrar en el mundo Básicamente es solo
un elemento estático. Por ejemplo, una mesa, una petaca, cualquier cosa que no se
mueva en el juego, por
ejemplo, esta caja de aquí no
es un objeto en movimiento. Se trata de un actor. Un peón y un personaje son dos clases
donde puedes crearlos. Si necesitas movimiento,
puedes ver que un Paw es un actor que puede ser poseído y recibir entrada de un controlador Digamos por ejemplo
en tu juego, este es el jugador. Y el jugador puede
moverse con esta caja aquí, puedes rodar
con esta caja. Entonces en realidad necesitas
crear un peón y actor. Porque si creas un actor, no
puedes controlarlo
con tu teclado. Si necesitas
controlarlo con tu teclado, si es un jugador,
necesitas hacer un peón No obstante, si
tienes un personaje, algo con dos brazos y dos piernas y
necesitas andar por ahí, necesitas crear
un personaje y
no un peón es por ejemplo, si tu juego es, si eres
como una caja rodando por ahí O si eres como una
pelota rodando por ahí, entonces no tienes
dos brazos, dos piernas. Como personaje,
puedes crear un peón. No obstante, si tienes este
típico carácter humanoide, es un personaje que
necesitas hacer Ahora vamos a crear un controlador de jugador y un modo de
juego en esta lección. Y un Controlador de Jugador
es un Acta que se encarga de controlar
al ser utilizado por el jugador. Ahora puede ser un poco confuso, Este no es tu mando, mando Xbox, o tu mando
Playstation. Puedes pensarlo
como el cerebro
del personaje cuando
engendras en el juego Cada personaje que
engendras como controlador de jugador, no
es solo el personaje
cuando entras en el juego Si el jugador se une al juego, el controlador del jugador se
crea automáticamente para ti
antes de que se
cree el personaje . Muy, muy
importante saber. Por lo general, lo que hacemos en los controladores de
jugador es codificar las
interfaces de usuario, la UI. También hacemos el desove. Por ejemplo, si engendro
un arma en el juego, si engendro una moneda, engendro cualquier cosa en
mi Normalmente lo hago en
el Player Controller. Ahora, algunas personas también hacen movimiento en Player
controller, sin embargo, sugiero que el movimiento
se haga en el personaje, porque en multijugador ahora no
estamos codificando multijugador. Pero en el futuro, si quieres codificar multijugador, siempre
es agradable
acostumbrarte a una cosa. En el modo multijugador, el
movimiento tiene que estar en la clase blueprint Si haces código de movimiento dentro
del controlador negro, en multijugador,
no va a funcionar. Siempre hago movimiento
en personaje porque también funciona un
multiplicador en el futuro. Si quieres hacer algo
con el modo multijugador, este es el controlador negro y el modo de juego se define
el juego que se está jugando, sus reglas, puntuación y
otras facetas del juego Por ejemplo,
digamos que en contraataque tienes un temporizador redondo Y cuántos puntos obtienes cuando matas a un
jugador y cosas así. Las reglas sobre el juego
generalmente se hacen en el modo de juego. Ahora sigamos adelante y hagamos clic en el modo de juego y hagamos uno. Normalmente les doy BP
como prefijo para planos. No obstante, para el modo de juego
suelo escribir el modo de juego GM. Y yo lo llamo el
nombre del juego, que es Dungeon Clicker Vamos a llamarlo licor de mazmorra. Escribamos click de nuevo,
hagamos una nueva clase de blueprint
y hagamos un Player Controller, llamémoslo PC para
Player Controller Volvamos a llamarlo el
nombre del juego, Licor. Ahora puedes tener
múltiples modos de juego. No es porque
puedas tener un modo de juego,
por ejemplo, de nuevo
en Counter Strike. En otros juegos como Halo, tienes un modo de juego donde
tienes tres para todos, todos pueden matarse entre sí. Tienes un modo de juego donde
capturas la bandera, cada equipo captura la
bandera a su base. Diferentes modos de juego. Puedes
tener múltiples modos de juego. No obstante, estamos
haciendo un juego sencillo. Sin embargo, solo necesitamos uno. Por lo general solo lo llamo el
nombre del juego aquí. Sigamos adelante y
guardemos todo. Ahora que tenemos esto terminado, en realidad no necesitamos
hacer nada dentro de ellos. No obstante, necesitamos asignar el modo de juego para ser usado
dentro de Unreal Engine, porque ahora mismo está usando el modo de juego predeterminado que crea cuando
abro el motor Sigamos adelante y haga clic en Editar y abra la configuración
del proyecto. Dentro de aquí,
vamos a Mapas y Modos. En Mapas y modos, puedes ver el
modo de juego predeterminado que se está utilizando. Es el modo de juego predeterminado
dentro de Unreal Engine. Le voy a decir que no, quiero usar el mío propio. Quiero usar este
clicker GM. Vamos a minimizar esto por ahora. En lugar de aquí, déjame
abrir mi modo de juego. Se abrió aquí en mi segundo monitor en el modo de
juego en valores predeterminados de clase, necesitamos cambiar el Player Controller que
también hicimos porque ahora está usando el controlador
Player predeterminado en Unreal Engine Sin embargo, quiero usar
mi personalizado que creé, que es el clicker de PC Dung Sigamos adelante y compilemos. Por cierto, solo
significa que estás comprobando si tu código
tiene alguna casilla o no. Si haces clic en él,
dice que está bien para ir, todo está bien por delante y da clic en Archivo y Guardar
todo. Vamos a cerrar esto. Ahora. Permítanme abrir
la configuración de mi proyecto nuevamente y asegurarme si hago clic en el modo de
juego seleccionado aquí abajo, que mi control de jugador
también esté asignado en la configuración de mi
proyecto. Y suele ser cuando haces
eso en el control del jugador. Bien, vamos a cerrarlo aquí abajo. Lo último que tenemos que hacer es aquí en los Ajustes del Mundo. Por cierto, si no
tienes una pestaña World Settings, sigue
adelante y da clic en, veamos aquí, la
ventana arriba aquí. Y abre la
Configuración del mundo Desde aquí, hagamos clic en la Configuración del mundo y también en la
Configuración del mundo en el modo de juego Anular, haga clic aquí y asigne
su clicker de mazmorra GM, que es el modo de juego personalizado Y también puedes
asegurarte cuando hagas clic
aquí abajo de que tu
controlador de reproductor también esté asignado. Bien, así que sigamos
adelante y ahorremos. Y ahora nuestro modo de juego personalizado está asignado al
mapa o al juego. Realmente no podemos hacer mucho
porque
realmente no hemos hecho ninguna codificación. Entonces no podemos ver si
realmente funciona o no, pero lo vamos a
hacer muy pronto. Ahora hemos terminado de
agregar el modo de juego y el controlador del jugador y estamos listos para agregar la cámara del jugador.
15. 3.02 Adición de la cámara del jugador: Para agregar la cámara del reproductor. Volvamos a hacer clic derecho
dentro de los planos, y vamos a crear una copa de
planos una vez más Ahora para la cámara del jugador, puedes crearla como peón Porque realmente no tenemos
un personaje con dos brazos, dos piernas para caminar, técnicamente
puedes
crearlo como peón No obstante, me gusta crear las cámaras del jugador también
para mis otros juegos como personaje jugador porque viene con un componente de
movimiento de personaje. Ese, se puede controlar
la gravedad de la cámara, la velocidad de movimiento de
la cámara, y así sucesivamente. Ya verás a lo que me refiero, pero esta me da más opciones. Normalmente solo
creo un personaje. Llamemos a este jugador P. Yo lo llamo cámara, pero sólo voy
a llamarlo jugador. Sigamos adelante y lo abramos. Y aquí
solemos estar en planos. Cuando lo abres, tienes el mirador aquí donde
puedes ver al personaje. Si importas, puedes ver aquí a la derecha en
el panel de detalles. Casi parece el panel de
detalles de aquí. Es lo mismo donde haces clic en las cosas y luego
puedes ver diferentes opciones
aquí para la malla. Importa un personaje, podrías verlo
aquí en la vista, igual que tienes un
mirador por aquí Bien, dentro de este reproductor BP, necesitamos crear una cámara. Por cierto, el componente de
movimiento del personaje está aquí. Si haces clic en él, podrás
ver que puedes controlar cosas como la
aceleración del jugador, que en este caso
es la cámara. Se puede controlar la fricción del
suelo, la
velocidad máxima de movimiento de la cámara, y muchas cosas, el control de aire, etc. Me gusta crear un personaje en lugar de
un Paw o la cámara porque tengo este componente de movimiento del
personaje y puedo controlar mi
cámara mucho más. Necesitamos crear una cámara. Vamos a hacer clic en Agregar aquí y los componentes Primero
antes de la cámara. Vamos a crear algo
llamado un resorte. Si creas un resorte aquí, este es el soporte
para la cámara. Ahora dando clic en el brazo de resorte, voy a dar click en D y buscar cámara
y crear una cámara. Tenemos el brazo de resorte,
que es el soporte, y luego tenemos la
cámara por aquí. Vamos a hacer clic en Compilar,
y hagamos clic en Guardar todo.
Déjame minimizar esto. Déjame arrastrar a
este jugador
al mundo así.
Aquí está la cámara. Si lo puedes ver
de fondo, pero está oscuro así que no
podemos ver mucho. Voy a escribir la
ubicación para ello como 000. También rotar mi cámara, puede ver que se
ve de esta manera. Voy a
volver con mi jugador. Voy a pinchar en mi primavera, no a mi cámara sino a mi primavera. Voy a girarlo Cuando
haga clic en la herramienta de rotación. Recuerde que las herramientas aquí arriba
son para la herramienta de movimiento, para la herramienta de rotación, y R en el teclado
para la herramienta de escala. Al hacer clic en para
la herramienta de rotación, voy a girarla de esta manera. Ahora voy a compilar de
nuevo si lo minimizas. Ahora tu cámara está
mirando de la manera correcta. También se puede ver
en el espectador. Al hacer clic en la cámara, ahora se esconde aquí
porque todo está oscuro. Doy click en Lit,
puedes ver que está aquí. Si hago clic en él,
también ves al espectador. Para la cámara de aquí abajo, puedes simplemente mover
la cámara que desees, puedes ver en
el visor aquí. Ahora, antes de que lo alineemos, se
puede ver en la cámara, si hago clic derecho en la cámara
y hago clic en Piloto, lo
que significa entrar en la
cámara y ver qué ve. Se puede ver que las baldosas
están cortando aquí. No se ve dos D, en
realidad está buscando tres D. Hago clic en este botón de
aquí arriba para salir de mi cámara. Volví a abrir el jugador. Esto se debe a que cuando haces
clic en la cámara, realidad
tienes que cambiar el modo de proyección de
perspectiva a autográfica perspectiva es el modo tres D, ortográfica es la vista de dos D. Necesitamos las dos vistas D aquí. Vamos a compilar y
echemos un vistazo. Una vez más,
ya puedes ver que se ve correcto. Si hago clic con el botón derecho en mi cámara
y
hago clic en apilarla, creo
que también puedes hacerlo aquí arriba. puedes hacer clic derecho aquí arriba en el Outliner
y hacer clic en pila It. Ahora puedes ver que se
ve más correcto. Es dos D también se ve bien. Vamos a salir de aquí.
Vamos a abrir el jugador. Lo último que
quiero decirte aquí, ya no
tenemos
mucho que hacer. Pero aquí en la cámara, se
puede cambiar el ancho
ortográfico Y puedes ver lo que
hace si haces clic en tu cámara aquí arriba
en el reproductor BP, y aumentas y disminuyes
el ancho ortográfico Si aumento, aumento,
puedes ver que acercas y alejas. Pixel Ot, se ve más
o más pixelado. Cuanto menor sea la madera
autográfica, tal vez
así es como
quieres que sea tu juego Puedes hacerlo de más alta resolución cuando alejas así. Ahora para mi juego,
solo intenté jugar con él cuando
lo estaba probando y creo que me quedaré con
algo así como 640. Si solo hago clic derecho en mi
cámara y piloto mi cámara, así es como se verá. Puedo llevar a mi jugador aquí y
puedo ajustar la ubicación. Recuerda, podríamos
ajustar la ubicación haciendo clic en los números aquí en la ubicación
para el jugador. Y podemos hacer clic y arrastrar con el ratón para ver
cómo se ve. Puedo hacer algo así. En realidad para la
Y, es sólo cero. Para éste es así. Impresionante. Ahora está censurado En este momento no
es muy importante. Vamos a arreglar el
posicionamiento más tarde. Pero para el jugador, de nuevo, solo para asegurarse de que
todo esté funcionando correctamente para la primavera, voy a desactivar
las pruebas de colisión. Las pruebas de ucision son simplemente cuando un jugador está
detrás de la pared Va a empujar la cámara, así que la cámara no
va a entrar en la pared. Realmente no necesitamos esto
porque puede hacer frente al juego. Ahora mismo, voy
a desactivarlo. Lo segundo es la cápsula. Quiero quitar
todas las colisiones, porque no quiero que
esta cápsula
choque con mis enemigos o personajes dentro
de este mundo Realmente no necesitamos este. Voy a
bajar aquí y
asegurarme de que en la sección de
colisión para
la cápsula genere eventos de
solapamiento off o los
presets de colisión aquí En lugar de peón voy a decir que no hay colisión que se arregle Ahora en la malla misma aquí. Solo me estoy
asegurando de que también en la colisión sea para que el personaje
pueda pisar el no y no colisión también.
Adelante y compilar. Ahora para el brazo de resorte, sí
retiramos la prueba de
colisión. Lo último aquí en el componente de
movimiento del personaje del jugador, hagamos la gravedad
a cero porque
no necesitamos esta cámara para
caerse o movernos. La
aceleración máxima es cero. Veamos si necesitamos
hacer más aquí. No creo que tengamos
que hacer más. Todo se ve bien. La velocidad máxima en realidad
no importa. No vas a andar por ahí. Pero solo puedes ponerla a
cero para que no puedas moverte también si
así lo deseas.
Vamos a compilar, guardar todo. Y eso
fue todo para el jugador. Ahora está configurado. Puedes controlar qué tan lejos está
tu cámara a tu gusto. Entonces, si deseas que la cámara esté mucho más cerca, puedes hacerlo. Por ejemplo, puede
hacer clic en la cámara y establecer la
vista autográfica en 512 Y se puede ver que aquí está
mucho más cerca. No es demasiado importante en estos momentos. Siempre podemos probar el juego siempre que tengamos un
personaje moviéndose.
16. 3.03 Extracción de los sprites enemigos: Ahora sigamos adelante e importemos estos precios para los enemigos. De nuevo, volvamos a la carpeta de materiales de costo
que te he dado. Dentro de aquí,
ve a los personajes. Aquí están todos los enemigos
que tenemos en el juego. Ahora en el futuro,
podemos agregar más enemigos, porque en los juegos clicker
tienes toneladas y toneladas de enemigos Pero estos son realmente
agradables para empezar. Sigamos adelante y hagamos
clic en el primero. Mantenga pulsada Mayús, haga clic en el
último para seleccionarlos todos. Vamos a los Activos. Y aquí voy a escribir, Click y hacer una nueva
carpeta llamada Characters. Dentro de aquí también,
voy a hacer clic derecho a hacer una nueva carpeta una vez más y
llamemos a esta Texturas. Vamos dentro de esta carpeta. Y ahora vamos a dar click y arrastrar esto a la carpeta
Texturas. Y aquí los hemos
importado todos. Todo bien, haciendo clic en el
primero de nuevo, mantenga pulsada la tecla Mayús, haga clic en la
última, haga clic derecho, vaya a Acciones de Sprite Y recuerda aplicar el
papel a la configuración, lo
contrario será una textura borrosa para aplicar a la configuración Cuando haces eso, el arte es arreglar mucho, se
ve genial. Bien, vamos a cerrar
todo aquí abajo. Demos clic en Archivo
y guardemos todo. Ahora que hemos
importado todo, lo que tienes que hacer, puedes ver aquí están todos
en una textura. Si abrí la primera, la Muerte Nocturna, se puede ver
que están en una sola textura. Necesitamos tenerlos
como sprites separados. Vamos a
cerrar esto. Puedo hacer click derecho sobre esta
Muerte Nocturna. Aquí puedo ir. Acciones de Sprite, tienes
algo llamado ya sea crear sprite o puedes
extraer los Crear un sprite es
simplemente, por ejemplo, digamos que tenías
un personaje aquí y no los tenías
todos juntos así Podrías hacer clic con el botón derecho en
las acciones de sprite y crear un sprite. Cuando haces eso,
crea este sprite aquí. Cuando creas un sprite, realmente
puedes usarlo en el juego Puedes hacer clic y
arrastrarlo al mundo. Si sólo lo muevo
aquí al frente, lo
puedo ver así. Ahora mira puedo usarlo en mi juego, por
ejemplo, si tuvieras una
caja o cosas así. Si tienes un objeto singular, puedes hacer clic derecho y
crearlo como un sprite Y luego es
básicamente como hacer
un objeto de tres D, que puedes usar en el mundo
porque esta textura de aquí, no
puedes usarla aquí. Se puede ver que reemplaza
esto y crea algún material para nosotros y cosas así,
todo está desordenado. Voy a dar click en el
control Z para revertirlo. Sólo voy a retrasar
este que creó. No puedes usar texturas
en el juego así. Tienes que
hacer click, convertirlos en un sprite, por ejemplo, si tienes una caja o algo estático
que quieras en el juego Y puedes arrastrarlo hasta aquí y puedes usarlo como sprite No obstante, permítanme eliminar esta, y permítanme también eliminar esta. Ahora están todos juntos. En lugar de crear un sprite,
necesitamos extraerlo. Haga clic derecho, vaya
a las acciones de sprites y extraiga los sprites Y puedes verlas aquí
arriba así. Lo que tenemos que hacer es
aquí arriba en la configuración, tenemos que convertirlo en una grilla. Ahora tenemos que
averiguar en el sil, ancho y alto,
cuál es el tamaño. Por lo general el artista que hace esto te escribe
lo que es. Pero intentemos que sea 32 sobresale como lo es para
la altura 32 aquí Ahora puedes ver que no es apropiado porque cada caja necesita
estar alrededor de este personaje. En lugar de 32,
digamos más 16 píxeles. Lo bueno de
Unreal Engine, en realidad
puedes escribir
más 16 y presionar Enter, y lo va a hacer
automáticamente por ti Bien, 16 píxeles funcionaron porque ahora se puede ver que
todo se ve correcto. Cada sprite
está en su propia caja. Este es el ancho y altura de
celda correctos. Y sigamos adelante
y pulsemos en Extraer. Ahora se puede ver que
extrajo los de aquí, y ahora están en imágenes
singulares. Ahora bien, si hago clic y arrastro
esto al mundo, es un solo personaje que está aquí en lugar
de todo. En realidad tenemos que hacer eso
por cada uno de ellos. Por ejemplo, el hit nocturno, puedes hacer clic derecho y
puedes ir a acciones de sprites,
ir a extraer sprites nuevamente, hacer clic en cuadrícula en su lugar Entonces puedes hacer click aquí. Creo que es lo mismo,
tal vez 48 como antes. Pero si escribes 48, puedes ver que
en realidad no es correcto. Si vuelvo a 32, como la altura, se puede ver que
32 es la correcta aquí. Y tienes que hacer
clic en extraer aquí. Bien, intentemos
con el final. Vamos a hacer clic derecho en la noche ociosa para extraer sprites doom Ir a la cuadrícula. Creo que son
32 otra vez, igual que antes. Ahora adelante y da
clic en Extraer. Te voy a mostrar éste también. Después de eso, sólo voy a hacer cada una de ellas rápidamente.
Se puede ver que lleva tiempo. Tengo que hacerlo por
cada uno. Pero vamos a hacer clic derecho en éste. Ir a Spart, acciones
extraen sprites. Ahora para esta,
vamos a dar click en la cuadrícula. Escribamos 64,
igual que la altura ahí. Es un buen punto de partida
para simplemente escribir el número de la altura y se puede ver que ya está funcionando correctamente. Y extraer todo bien. Haga clic en Extraer
sprites, vaya a la cuadrícula. Se puede ver que va a ser muy bueno en ello porque lo
hace 100 veces. A veces aunque tengas sueño, puedes hacerlo sin siquiera
pensar en lo que estás haciendo Simplemente hacerlo muchas
veces es una buena práctica. Ahora los extraemos. Creo que si solo
vuelvo a la carpeta,
esta, le pego a esta, inactivo,
base inactivo, extraigo los sprites a grid 32, eso funciona, ok. Esto es lo que hay que hacer
por cada uno de ellos. Intenta meterlos en la caja
y extraerlos todos. Bien, lo voy a hacer en
mi tiempo libre y voy a estar de vuelta contigo ahora mismo. Los he extraído todos. Ahora puedes ver que se extraen todos
ellos. A veces es un poco complicado
conocer los tamaños de ellos
cuando los extraes. Pero básicamente, de nuevo, si abres uno de ellos, por
ejemplo
éste, este era el más
complicado si escribes, haces clic y extraes este precio para éste,
puedes verlo aquí. Si vuelves a la cuadrícula 64, derecha, 64 es un buen punto de
partida. Se puede ver que no es correcto
porque esto de aquí está vacío. No necesitamos los vacíos. Si escribes más 16, por lo general son 16 píxeles cada vez que
aumentas o disminuyas. Y éste tampoco es
apropiado. Más 16. Nuevamente, ahora podemos ver que
encaja con todos ellos. Bien, solo sigue adelante y
hazlo por todos ellos. Lo he hecho por todos ellos. Ahora vayamos a la siguiente
lección y creemos libros volteados.
17. 3.04 Crea Flipbooks: Bien, así que ahora que
tenemos listos los sprites, sigamos adelante y
creamos libros flip Y los libros flip son simplemente la versión
animada de esos. Estamos poniendo todos
esos sprites juntos en una pieza animada El personaje se mueve.
Este es un libro volteado. Un flip book es simplemente cuando
necesitas una animación en dos D. Vamos a probarlo
con esta noche Muerte. Primero da click en el primer
sprite y podrás ver, por cierto, las texturas, aquí
tienen una línea roja Y si me acerco, se
puede ver. Tienen una línea roja
aquí las texturas, mientras que los sprites tienen una línea azul
claro aquí o verde azulado Este es el sprite. Se puede ver la
diferencia entre ellos así también. click en el primero,
voy a Old Shift y doy click en el último
sprite en esta sección, voy a hacer click derecho, ir a Crear flip book Déjame llamar a este
B para libro abatible. Vamos a llamarlo,
llamémoslo muerte. Tenemos este flip book, la muerte. Y se puede ver que ya está animada. Duplicé doble clic en él. Esta es la
animación de la muerte para la noche. Un libro flip es
simplemente los sprites
reunidos en una animación Ya ves, solo puedo
detenerlo aquí abajo. Esta es la animación y
estos son todos los sprites que seleccionamos y creamos un
flip book para. Bien. También puedes ver si
lo vuelvo a jugar, puedes controlar la velocidad de la animación aquí en los
fotogramas por segundo, puedo, por ejemplo,
ponerla en 50 muy rápido. Si acabo de decir los fotogramas
por segundo de vuelta a 15, este es el valor por defecto, así
es como se ve. Ahora realmente hay una regla
para lo que debería ser esto. A veces el pixilatista te escribe lo
que se supone que sea aquí Pero solo a veces
solo estoy jugando, viendo lo rápido que se reproduce la
animación, y luego hago esto
en mi juego para mí. Probé diez en
cuadros por segundo, y creo que esto es lo
que quiero que sea la velocidad. Ahora, no hay una regla. Puedes ir con 12,
puedes ir con 15, lo que creas que es
bueno para tu juego. Voy a ir con diez para mí. Voy a cerrarlo aquí abajo. Y ahora tenemos este flip book. Ahora podemos hacer clic y arrastrar
esto al personaje, y seleccionar Mover Aquí, y ahora tenemos el libro
volteo aquí. La razón, nuevamente, hicimos esta carpeta Texturas es
porque todo esto realmente
no necesitamos verlo más tarde cuando creamos todos los
libros volteados aquí para los personajes. No necesitamos todo esto
dentro de la carpeta Texturas. Nuevamente, no se puede eliminar
porque esto es usar
datos de las texturas. Entonces realmente no puedes eliminarlos. Sólo los estoy poniendo en una carpeta Texturas para no
tener que volver a mirarlos. Pero entremos aquí.
Hagámoslo por todos ellos. Para el hit, haz clic
en el primero, mantén presionado el turno, haz clic
en el último, haz clic
derecho, voltea el libro. Llámalo otra vez. Ábrelo, pero podrás hacerlo más tarde. Al igual que puedes cambiar los
fotogramas por segundo después. No voy a
hacer eso por ahora. Adelante en el siguiente, clic
derecho, voltear libro. Llámalo inactivo. Vaya al siguiente
aquí, haga clic derecho. Llámalo o solo voy a
llamarlo o en lugar de base, o ir al siguiente aquí, click
derecho, voltear libro. Llámalo B.
Sólo voy a hacer algunas de ellas que veas el flujo de trabajo. Y luego lo voy a volver a hacer
en mi propio tiempo. Haga clic derecho en este.
Voltear libro, llámalo. O inactivo. Bajemos otra vez
el siguiente aquí. Sólo voy a hacer
esto como el último. Clic derecho, voltear libro. Llámalo B o pícaro. Esto es un pícaro, así. Puedes ver que están
todos animados aquí. Bien. Voy a
hacerlo en mi propio tiempo. Sólo voy a
crear flip books y volveré a estar contigo. Ahora, he creado flip books para todos ellos como
puedes ver aquí. Y voy a dar click en
Archivo y guardarlos todos. Ahora hagamos clic
en el primero, Mantenga Mayús, y haga clic en el último
libro volteo dentro de aquí. Y los voy a trasladar
a los personajes. Aquí tenemos todos
los flip books. Ahora déjame ajustar los
fotogramas por segundo. Ahora en lugar de
hacerlo uno por uno, lo que lleva mucho tiempo, puedes hacer clic en el
primero y puedes mantener presionado Shift. Da clic en el último
para seleccionarlos todos. Haga clic con el botón derecho y vaya a Acciones de
Activos y
seleccione esta. Editar Selección en
Matriz de Propiedades, selecciónela. Esto suele ser siempre que quieras editar una configuración
para cada uno de ellos. Siempre es agradable escribir, hacer clic y usar la matriz de
propiedades para cambiar la misma
configuración para todas ellas. Dentro de aquí en el sprite, puedo cambiar los fotogramas por
segundo y hacerlo diez Entra y
lo hace por todos ellos. Siga adelante y haga clic en
Guardar todo, ciérrelo. Y se puede ver ahora
que en realidad son los diez en cuadros por segundo. Esto aplica no sólo para voltear
libros, sino para todo. Por ejemplo,
textura normal donde digamos que
quería cambiar el brillo
para todas las texturas, podrías seleccionar todas
las texturas, por
ejemplo ésta. Si tengo el control, selecciono la siguiente textura, esta textura y esta
textura puedo escribir. Haga clic en Ir a Acciones de Activos, Editar Selección a través de la
matriz de propiedades aquí en la configuración, por ejemplo, los ajustes. Podría editar el brillo
para todos ellos a la vez. Siempre es agradable saber que
esta opción está ahí. Bien, aquí están todos los
flip books que creamos. Todos ellos se ven geniales. Si olvidaste uno de
ellos, no hay problema. Siempre podemos volver y crearlo como un flip book más tarde, pero creo que ahora
los tengo todos. Todo se ve genial. Adelante, guarda todo, y pasemos
a la siguiente lección.
18. 3.05 Clase de padres contra niños: Ahora que hemos
creado los flip books, sigamos adelante y creamos
las clases de planos Vamos a la carpeta de planos. Vamos a hacer clic derecho
aquí. Y hagamos una nueva carpeta llamada enemigos. Primero, vamos a
entrar en esta carpeta. Haga clic derecho, y ahora podemos
crear una nueva clase de blueprint. Sigamos adelante y
creémoslo aquí. Ahora bien, en lugar de crear este
personaje para el enemigo, este es un personaje de tres D. Lo que tenemos que hacer es hacer un carácter de dos D es hacer
clic en esta pequeña flecha con todas las clases Aquí realmente
puedes ver más clases que puedes
crear con blueprint up Aquí están las clases normales que casi
creas todo el tiempo. Y casi nunca bajas
aquí a menos que haya
algunas cosas específicas. Por ejemplo, cuando haces un
juego de guardar y cargar para tu juego, en realidad también está aquí abajo. Aquí abajo, podemos
buscar papel, que son los dos D
en el motor Unreal Podemos ver a este
llamado personaje de papá. Este es un carácter de tres D, y este, el
carácter de papel, es un carácter de dos D. También puedes ver que tenemos otras
cosas que podemos crear, como flip books que
acabamos de crear. Puedes crear
mapas de mosaico, sprites, etc., pero queremos
crear un personaje Ahora vamos a hacer clic en él y seguir
adelante y dar clic en Seleccionar. Ahora para esta, la voy
a llamar base BP Enemy. La razón por la
que lo llamo Base enemiga es porque ahora esta es
una clase padre. Te voy a explicar aquí
en esta lección qué es
una clase para padres y
qué es una clase infantil. Vamos, por ahora, haz clic derecho
aquí y puedes ver aquí arriba, se llama Crear clase de impresión
infantil. Sigamos adelante y creemos eso. Por ahora llamémoslo BP caballero. Básicamente solo lo estoy llamando
los personajes que tengo. Si voy a mi
carpeta de personajes, tenemos la noche. Vamos a crear el
siguiente también. O voy a explicar lo que es
un niño plano. Haga clic derecho en la base enemiga, Crear niño, clase de plano Llamemos a éste P Orco. Bien, sigamos adelante
y guardemos todo. Ahora tengo este de aquí. La base enemiga, si sostienes
el mouse durante la noche, puedes ver que la clase padre es la base enemiga BP. Lo
mismo con el Or. La clase padre
es la base BP enemiga, o base enemiga aquí. Ya podemos abrir
la base enemiga. Digamos que dentro de
esta clase de blueprint, quiero dar click en el componente de movimiento de mi
personaje Entonces tenemos este
componente porque es un personaje aquí dentro. Digamos que quería cambiar lo alto que puede saltar mi personaje. Puedes ver en el panel de
detalles, tienes cosas que puedes
cambiar sobre el movimiento, la gravedad, la
velocidad máxima, y así sucesivamente. Digamos la
altura del salto, digamos mi personaje, yo quería saltar mucho más alto. Si yo, por ejemplo, da clic aquí y
escribo 800 en su lugar. Ahora puedo saltar más alto
si hago clic en Compilar. Ahora bien, si
minimizo esto y voy a mis hijos clases de planos, estos dos son hijos
de la base enemiga, porque hicimos clic derecho y los
creamos ¿Qué significa esto? Ahora
si voy a la noche ahora y le echo un vistazo aquí y hago clic en el componente de
movimiento del personaje. Si bajo a la velocidad de
salto que acabo de cambiar en
la base enemiga, se
puede ver que aquí también es 800. Ahora como predeterminado, si voy al O y hago clic en el
componente de movimiento de personajes y voy hacia abajo, puedo ver que también está configurado
en 800 en el Awesome. Interesante. Cada vez que cambio una configuración
en la base enemiga, que es la clase de
plano padre, Esta configuración que
cambio aquí se aplica a todos los hijos
que creo para ello Y este es un método muy rápido para trabajar y también el
mejor para trabajar, porque uso mucho esto. Imagina que tienes Quincena y tienes muchos
skins en Quincenas Digamos también aquí
en este clicker, tienes 100 enemigos Creas a 100 de
estos niños aquí. En lugar de ir en
cada uno de estos
niños y cambiar, digamos que querías cambiar la escala de gravedad, 1.2 En cambio, en
lugar de ir en
cada niño y cambiar el valor a 1.2 simplemente
puedes cambiar el valor dentro de
la clase padre y automáticamente se aplicará a todos los hijos por
ello que hagas. Esta es una forma rápida de trabajar
si hago clic en mi base enemiga, y simplemente hago clic
en esta flecha para restablecerla a la predeterminada a 420, y compilo y
guardo todo. Ahora si voy a mi noche, se
puede ver que también está configurado en
420, lo mismo con el Orco Esta es una forma óptima de trabajar porque te puedes imaginar
si tienes 100 enemigos, es mucho trabajo hacer clic en cada uno de estos
cientos y cambio de valor. Simplemente puedes cambiarlo una vez
dentro de la base enemiga. Esto es para las clases de padres
e hijos. Vamos a crear el resto de ellos. Tenemos el y
tenemos la noche. Vamos a crear el Chamán. Haz clic derecho en el enemigo Crear clase de plano
infantil. Llamemos a éste BP, Roku. Volvamos a hacer clic derecho en la base
enemiga. Crear una clase de plano infantil. Llámalo BP o Chamán. Volvamos otra vez.
Tenemos que crearlos todos. Tenemos al Guerrero y
tenemos al Guerrero Roque P. Ahora solo los estoy creando mucho más rápido que antes
porque es lo mismo. Lo estamos haciendo una y otra vez. La mag Esqueleto y
la base del esqueleto, simplemente llamándola BP Skeleton. Así. Esqueleto
y el Esqueleto mag. Esqueleto mag. Veamos lo que nos falta. Tenemos al Skeleton Rogue
y al Skeleton Warrior. P Esqueleto Rogue, BP
Esqueleto Guerrero. Solo asegúrate de
que estás
haciendo clic derecho en la base enemiga
y creándolos. Para asegurarte siempre puedes
sostener el mouse sobre él y que la clase
sea la
base enemiga la correcta. Haga clic derecho aquí, haga el
último llamado asistente BP. Sólo para comprobar si me he
perdido algo. El mago es el
último y eso es todo. Sé que tengo 11 personajes. Simplemente haga clic aquí, mantenga pulsada la Mayús,
haga clic en la última. Puedes ver que tienes 11
seleccionados y eso es correcto. Tengo 11 personajes aquí. Bien, hagamos clic en
Archivo y Guardar todo. Ahora los hemos creado todos. Y esto se ve bien, así que estamos listos para continuar
en la siguiente lección.
19. 3.06 Finalización de la configuración de la clase de enemigo: Acabemos con el enemigo. Ahora vamos a pasar la noche. Tenemos que abrirlos uno por uno. Abramos
primero la noche, dentro de aquí. Si eres nuevo en las cláusulas
blueprint, básicamente lo que
tienes son componentes Tienes diferentes componentes. Por ejemplo, el sprite. Vayamos al
mirador por ahora. Aquí en la viewport, igual que la viewport
aquí en el juego En la vista de
la cláusula blueprint, se pueden
ver las cosas visualmente Por ejemplo, el sprite, no
hemos aplicado nada. Y esto es lo que vamos a hacer.
Ahora, en realidad hagámoslo. Para que puedas ver pinchando
en este sprite, puedes ver que
necesita un libro volteo Es una animación porque es un personaje que creamos aquí. Se necesita un personaje animado
haciendo clic en el libro flip book. Vamos, esta es la noche. Tenemos que seleccionar
la noche ociosa. Sigamos adelante y seleccionémoslo. Puedes seleccionarlo
así o bien puedes
hacer clic en el sprite Puedes hacer clic y arrastrar
aquí en los personajes, puedes hacer clic y arrastrar esto y soltarlo encima de
aquí. Eso también funciona. Ahora puedes ver visualmente, puedes moverte, igual que en la
ventana gráfica normalmente Ya puedes ver que
tenemos este personaje. Si haces doble clic sobre él, el framer por segundo No lo
cambié por éste. Creo que olvidé cambiarlo. Déjame seleccionarlos todos. Creo que lo cambié antes. De todas formas, selecciónalas todas. Si tienes
lo mismo, haz clic derecho, ve a Acciones de activos. Se selección en Matriz de propiedad. Voy a ir a Sprite
y cambiar la velocidad de fotogramas por segundo para que sea de diez
fotogramas por segundo Salgamos y vamos a cerrarlo. En lugar de ir en
cada uno de ellos y cambiar los fotogramas
por segundo a diez, solo
voy a hacer eso
seleccionándolos todos. Haga clic derecho a la matriz de propiedades
y hágalo de esta manera aquí. Podrías cambiar los fotogramas
brillantes por segundo. Un rápido, no lo sé. Creo que lo hice antes. A lo mejor mi
cresta de motor, no estoy seguro. Pero ahora tenemos eso. Volvamos a la copa de planos Vamos a abrirlo otra vez.
Voy a planos. Los enemigos se abren la noche en la
que estuvimos trabajando. Vamos a las viewports. Aquí, puedes ver mi noche. Todo se ve
mucho mejor. ¿Bien? En la vista, se pueden
ver las cosas visualmente Y dentro del gráfico de eventos
es donde se agrega el código, por ejemplo, en
movimiento y así sucesivamente. Por ahora, no nos enfoquemos aquí, vayamos a la viewport
dentro de aquí Tenemos que hacerlo por
cada uno de ellos. Tenemos que asignar el flip book. Vamos al click arriba aquí. Abrir editor de planos completo. Esta vista aparece porque
aún no has trabajado en este
plano. Vamos a abrirlo, hacer clic en
el sprite, asignar el Or. Si solo buscas Orco, por ejemplo, y puedes
seleccionar este o inactivo Si vas a la viewport, puedes ver que se
ve correcta Aquí está, Bien, increíble. Tienes que hacerlo por
cada uno de ellos. Sólo te voy a
enseñar éste y luego lo voy a
hacer por mi cuenta. El Pícaro Orco, da clic en Sprite o ve al Pícaro
y selecciona el Solo asegúrate de seleccionar el ídolo para
cada uno de ellos. Sólo voy a hacerlo
por el resto de ellos. Bien. Esta fue la última. En cada una de ellas, le
he asignado
al personaje
así y ya se
ve como un juego. Impresionante. A pesar de que aún no hemos
hecho mucho, solo
voy a
hacer click y compilar en cada una de ellas. Es una buena práctica. No cambiaría mucho ahora mismo
hacer clic y compilar. Pero siempre es bueno
recordar así así. Y por cierto,
es bueno saber también, puedes dar click en estos tres
puntos y guardar y compilar, y puedes hacer click en
éste, Sin éxito Sólo lo que esto hace es que cada
vez que hago clic en Compilar, automáticamente
se guarda
aquí en vez de, digamos que he cambiado un
valor aquí así. En lugar de compilar y luego guardar, solo
puedes compilar Se puede ver la estrella,
significa que no está guardada. Si haces clic en compilar, se guarda automáticamente también. Esto es muy agradable. Normalmente hago esto configurando
esto a fracasado solamente. También puedes guardar
todo si lo deseas. No es realmente necesario en este
momento. Bien, aquí estamos. Hagamos otra cosa ahora. Esta cápsula de aquí es la
colisión para este personaje. Realmente no necesitamos
colisiones porque los personajes simplemente están parados en
el entorno. Lo que podemos hacer es
cerrarlo todo. Abramos la
base enemiga para esta cápsula. Sólo para que no sea así de grande. En realidad es saber
que es así de grande y el personaje
es así de pequeño. Por lo general se ajusta al personaje. En lugar de hacer clic en este componente de cápsula y
cambiar el valor aquí en la altura de
la cápsula y el radio de la cápsula para que se ajuste al
personaje así. En lugar de hacer esto por
cada personaje, recuerda que solo voy a hacer clic en esta flecha para restablecerla. Por defecto, recuerda que
tenemos la base enemiga, que es la clase padre. Ir a la vista. Sólo voy a dar click aquí
e intentar configurarlo a 12 por 12
así y compilar. Y ahora puedes
ver cómo se
ve en la noche porque ahora automáticamente
lo cambia por cada uno de ellos. Tienen toda esta
configuración aplicada. Déjame echarle un vistazo y
así es como se ve. Este que estamos usando para cuando haces clic con el ratón
y dañas al enemigo. Voy a hacerlo
un poco más grande para que
podamos golpear al enemigo mucho más fácil. A lo mejor en vez de 12 por 12, hagámoslo 16 por 16. Vamos a probar esto.
Siempre podemos hacerlo más grande si el hit box es demasiado
pequeño, 16 por 16. Se ve bien para el componente de la
cápsula. Voy a hacer click en él. De hecho voy
a bajar aquí en la configuración de Colisión
y voy
a decir generar eventos de superposición. No, no aquí para la colisión, necesitamos agregar algo de
colisión más adelante. Pero por ahora vamos a hacer clic
aquí y decir que no hay colisión, y podemos hacerlo
personalizado más adelante. Ve a compilar y
guardar todo. Ahora cada una de
estas clases de planos, tienen la colisión
establecida en non también Para el sprite, solo
asegúrate de que no tenemos ninguna colisión en la base enemiga De nuevo, recuerda a los
sprites de base enemiga en la colisión. Voy a poner n aquí, Sin colisión y todo
se ve genial. También en el componente de
movimiento del personaje, asegúrate de que la gravedad sea
cero para que no nos caigamos. Esa aceleración máxima es cero. Podemos hacer que la velocidad máxima de
caminata sea cero. Todo se ve bien. Creo que en realidad no
necesitamos cambiar mucho. Vamos a compilar aquí.
Vamos a guardar todo. Y esto fue para los enemigos. Siempre puedes arrastrar uno de ellos. Por ejemplo, el esqueleto. Se puede escribir en
la Y para ser cero. Lo traemos al
frente, y aquí está. Así es
como se ve si haces clic en, recuerda es la vista del juego. Así que puedes hacer click en para ocultar los íconos y podrás
ver cómo se ve. Puedes hacer clic en el botón
derecho del jugador y
pilotar la cámara. Puede hacer clic en F 11 aquí
para maximizar la vista. Recuerda 11 es si hago clic aquí, es el modo inmersivo 11, maximizaremos la ventana gráfica Si deseas cambiar la
posición de la cámara, siempre
puedes hacer click
aquí y cambiar la ubicación de la
cámara para que quede centrada. Puedo ver el punto de pivote
aquí para la cámara. Puedes cambiarlo para que
esté en el personaje. Por ejemplo, puedes
hacer clic en 11 para maximizar. Incluso puedo hacerlo
más abajo así. 11 aquí está mi personaje animado y todo
se ve genial. Quiero, sin embargo, dar clic en mi personaje
o en la cámara de mi jugador. En la cámara, sólo
voy a escribir 640 aquí. En cambio, sólo voy
a alejar un poco. Creo que está un poco
demasiado acercado. Esto fue demasiado
ampliado, creo. Déjame en realidad solo tratar de hacer clic
derecho y apilarlo. Y da click en 11. Y así es como se ve, se ve mucho mejor que antes. Y estoy contento con los resultados. Déjame dar click en este botón para volver a salir de la cámara. Voy a dar click aquí.
Elimine esto por ahora. Sí, todo
se ve bien. Ya tenemos a los enemigos establecidos en clases de planos. Ahora sigamos adelante
y guardemos todo. Pasemos al siguiente.
20. 3.07 Aplicación de la cámara del jugador por defecto: Lo que tenemos que hacer ahora antes continuar es asegurarnos
de que la cámara del jugador esté mirando el juego
cuando jugamos el juego. Porque puedes ver
cuando hago clic en jugar, mira el juego desde donde estoy ahora mismo
en la ventana gráfica Y no es realmente usar nuestra
cámara lo que configuramos aquí. Sigamos adelante y hagamos eso. Da click en este reproductor BP y sigue
adelante y bórrelo, porque lo que tienes que
hacer ahora es dar click arriba aquí. En su lugar, vaya a Básico y seleccione este
llamado Componente de
Inicio de Jugador . Ahora bien, si
lo arrastre aquí abajo al frente, se
puede ver que tiene una flecha. Tengo que rotarlo aquí. Pulsar sobre para la herramienta de
rotación y girarla para que la
flecha apunte al mapa. El inicio de los jugadores va a permitir que el jugador
genere aquí donde lo puse. Ahora lo que necesitas hacer es simplemente asegurarte dentro
del modo de juego,
si vas al modo de juego y guardas todo dentro del modo de juego en
los valores predeterminados de
clase
asegúrate de que la clase P predeterminada, cambias del punto
predeterminado porque
queremos usar el jugador BP para
engendrar con como nuestro La
clase de puntos por defecto es BP player y compilar y guardar
todo si quieres. También puede asegurarse
haciendo clic aquí
en Configuración del proyecto,
Editar configuración del proyecto, y yendo a los mapas
y modos aquí, asegúrese de que la
cláusula de puntos predeterminada también sea BP player. Debe ser automáticamente
cuando se aplica
al modo de juego así como
dentro de la configuración del mundo. Nuevamente, si no tienes
la configuración del mundo abierta, puedes hacer clic en Ventana arriba aquí, abrir la configuración del mundo, pero dentro de aquí
en el modo de juego, puedes dar click aquí abajo en esta flecha y podrás ver que el jugador BP es
la cláusula por defecto. Nuevamente, todo esto debería aplicarse automáticamente cuando
lo cambies dentro de aquí, no te
preocupes demasiado por ello. Pero siempre es
agradable saber que aquí tiene
que ser correcto y
también tiene que ser correcto
en la configuración del proyecto. Ahora si hago clic en Play, va a usar
al jugador BP como predeterminado en clase para
engendrar en el mundo Si hago clic en 11, así es como se ve. Lo que puedes hacer es que
siempre puedes hacer clic en los
inicios de los jugadores y puedes cambiar la X, Y, y Z. puedo decir
que realmente no está cambiando aquí porque creo que es porque estoy jugando ahí Si lo acabo de mover hacia abajo
y hago clic en Reproducir, puedes ver que
cambia la posición. Siempre se puede tratar de
centrarlo aquí, lo que sea. Porque el enemigo va
a engendrar quizá de este lado. Y voy a moverlo
un poco más hacia un lado. Vamos a hacer clic en Reproducir. En realidad
no es demasiado importante. Creo que esto está bien por ahora. También lo vamos a arreglar más tarde, pero esto es bueno para mí. Demos clic en Archivo
y guardemos todo. Y ahora cada vez
que hacemos clic en Play, estamos usando este spawner
para generar la cámara Y jugamos desde este punto de vista. Adelante, guarda todo, y pasemos
al siguiente.
21. 4.01 Crea el punto de aparición del enemigo: Lo que podemos hacer ahora es que podemos empezar a sumar el punto de desove para el enemigo porque ahora es el
momento de que el enemigo
genere en el mundo Para ello, vamos a crear
un punto de desove. La forma en que podemos crear
un punto de desove. Ahora podrías pensar que podrías agregar otro
inicio de jugador e intentar que este jugador comience la
ubicación para engendrar al enemigo Pero esto es sólo para
el jugador y se va a confundir
cuando haga clic en play. Ahora en realidad está
usando este, y cuando
vuelvo a hacer clic en reproducir está usando este. Sigue cambiando entre
esos y se confunde. Eliminemos este segundo ahora para los
puntos de generación en su lugar, hagamos clic en los planos Y déjame hacer clic derecho
y hacer una nueva carpeta. Vamos, llamémoslo
puntos de generación. Vamos a abrirla. Hagamos clic derecho y creemos una nueva clase de blueprint
como punto de generación. Simplemente hagamos un muy
sencillo en este llamado actor base o simplemente
actor y haga clic en él. Llamemos a este punto de spa
BP base. Nuevamente, suelo hacer clases de
blueprint
porque me gusta crear clases de blueprint para
niños
que podamos usar más adelante Si necesitamos cambiar
valor específico para todos ellos,
podemos hacerlo dentro de la
principal aquí los padres. Pero tal vez no necesitemos crear más de un
punto de España, no estoy seguro. Pero siempre es agradable crear
una base, haz clic derecho aquí. Este también es el caso cuando
desarrollas un juego más grande. No estás seguro de si necesitas
más de un punto de España. Pero siempre es agradable crear uno padre porque podrías arrepentirte más tarde si no creas uno y tienes que
volverlos a hacer. Hagamos clic derecho aquí y
hagamos una clase de plano infantil. Vamos a llamarlo EP
Enemy spa Point. Ahora puedo hacer clic y arrastrar
esto al mundo. Pongamos la Y a cero. Es aquí en el frente. Puedes engendrar al enemigo
donde quieras. Por ejemplo, puedes
engendrar al enemigo aquí. Lo que no sea demasiado
importante en este momento, si hago clic en Jugar, el
enemigo va a engendrar aquí Bien, ahora hemos
creado el punto de generación. Vamos a guardar todo por ahora. Vamos a hacer clic en este punto de generación
enemigo. Asegúrate de que no necesitamos
cambiar ninguna configuración. Realmente no
tenemos mucho. ver aquí en los componentes, solo
tenemos el ícono que no
tenemos que podemos hacer dentro de aquí porque no
hemos agregado nada. No necesitamos hacerlo.
Sólo estoy usando a este actor. Encuentra la ubicación
y rotación en el mundo para que
podamos engendrar al enemigo Bien, eso fue todo
por el punto de engendro. Y sigamos
en la siguiente.
22. 4.02 Haz que aparezca el actor de clase: El punto de todo esto ahora es que necesitamos engendrar al enemigo ¿Y cómo engendramos
las cosas en el mundo? En Unreal Engine, hagámoslo dentro
del Player Controller Entonces, lo que suelo hacer en el Player Controller es que
engendro cosas en el mundo Si es personaje, necesito
engendrar si es un arma, necesito desovar si es una
moneda de oro, necesito Todo se hace dentro
del control del jugador. Vamos a abrirla y
vayamos al gráfico de eventos. Porque quiero programar ahora. Por cierto, puedes mantener presionado el
clic derecho y navegar por aquí. Permítanme seleccionar a los dos. Pulsa Eliminar en mi teclado. Y empecemos por aquí. Cuando empiezas a
hacer programación, básicamente
necesitas pensar,
¿qué tengo que hacer? Bien, tengo que descomponerlo. Bien, tengo que
engendrar a un enemigo aquí. Esto es lo que quiero.
¿Qué tengo que hacer? Necesito usar la función principal que se usa para generar cosas Hago clic derecho. Si no
sabes cómo se llama, siempre
puedes por ello, por
ejemplo, desovar Puedes intentar echarle
un vistazo y ver cuál se ajusta mejor al tuyo. No son todos estos casting, las funciones se detuvieron aquí, puedes ver que se llama, estas son las funciones que puedes usar. Si no sabes
cómo se llama, solo busca la palabra. Por ejemplo, necesito engendrar algo. Solo
buscando desove En realidad este
actor spawn de clase, voy a darle click aquí Esta es la función que
va a engendrar cosas para nosotros. Ahora para poder
ejecutar código dentro del motor
vulnerable,
necesitas un evento. Sin un evento, no puedes
ejecutar código si escribes click y bajas aquí
y buscas eventos. Si lo puedo encontrar aquí. Despachadores de eventos,
no está aquí arriba. Si subo puedo
en realidad este, es un evento en el evento publicitario. Se puede ver que estos son los
íconos de los eventos. Y tienes muchos eventos que puedes usar para iniciar tu código. Por ejemplo, comenzar a jugar
es el más sencillo. Si haces clic en él, puedes ver que los eventos están marcados con rojo, las funciones están marcadas con azul. El rojo de aquí, Beginplay simplemente
está diciendo que este
es un evento simple ¿Qué debería pasar cuando
empiece a jugar el juego? Si haces clic aquí
y lo conectas. Ahora bien, si haces clic en Reproducir, va a ejecutar
esta función aquí. Sin un evento, no se puede
ejecutar la codificación en un motor real. Necesitamos usar este
actor spawn en lugar de usar un evento normal Hagamos clic derecho y
hagamos un evento personalizado. Vamos a hacer un evento personalizado. La diferencia es que con el evento personalizado es que
solo puedes darle un nombre personalizado. Yo sólo lo voy a llamar spawn M. Esto es
lo que queremos hacer Voy a conectarlo
aquí, y aquí vamos. Para esta función spawn, necesitamos definir
qué necesitamos desovar Por ejemplo, necesitamos
engendrar al pícaro, necesitamos engendrar al
guerrero, y así sucesivamente Ahora realmente
depende de qué nivel estés, porque en Clicker
heroes por ejemplo, realmente depende de mi en
qué nivel te encuentres En el nivel uno tal vez quieras
engendrar al guerrero y el nivel dos tal vez quieras
engendrar al Chamán Ok y así sucesivamente Así que realmente no podemos especificar
cuál queremos
generar en lugar de simplemente especificar aquí lo que queremos engendrar depende del nivel Voy a dar click y
arrastrar este pin a la función aquí y
podremos decidir más adelante. En lugar de llamarlo clase, voy a llamarlo enemigo
que queremos engendrar aquí Esta es la variable que agregamos. Lo realmente genial, este
spawn se transforma también. Podemos arrastrarlo hasta aquí. Pero en lugar de
crear una variable, puede hacer
clic en el evento aquí y hacer clic en el más
y crear la variable. Por ejemplo, puedo dar click aquí sobre el tipo de variable y puedo seleccionar transform,
igual que esta. Y puedo conectarlos juntos. Puedo hacerlo así, o si acabo de borrar este de nuevo, puedo simplemente hacer clic y
arrastrar como lo hicimos antes, soltarlo en el evento, y lo crea para
mí automáticamente. Método muy chulo para hacerlo ya que voy a engendrar al enemigo Ahora para la transformación de desove, realmente
depende de dónde esté
este punto de desove Sólo voy a ponerlos a ambos
en el evento. Cuando utilicemos este evento más adelante, podemos especificar dónde está el punto de
desove y también
podemos especificar qué
enemigo queremos desovar Pero por ahora
realmente no podemos decidir aquí. Para el desove,
voy a hacer clic aquí y decir intenta ajustar la ubicación, pero siempre desove
para asegurarme de que mi enemigo va a
desovar aquí por aquí, siempre
es bueno tener una variable de qué
enemigo has Voy a hacer clic derecho en éste y
promoverlo a una variable. Voy a llamar a
este spawn. Enemigo. Bien, lo que simplemente estamos haciendo es que estamos
generando un enemigo, y luego estamos almacenando esta
información en una variable, que podremos usar más adelante Porque este es
muy agradable de usar si necesitamos hacer algo
con este enemigo engendrado, Tenemos estos datos
dentro de una variable Bien. Esta es la función
simple, el actor spawn de clase Puedes ver aquí si
llamo a este evento más tarde porque no
puedes ejecutar este código. Entonces, si hago clic en play, no
esperes que se ejecute el código, pues en Unreal Engine, hay que
especificar en el motor cuándo
quieres ejecutar este evento Por ejemplo, puedo hacer click
derecho aquí y
puedo buscar a mi enemigo spawn Evento, engendrar enemigo. Y se puede ver aquí
y dice función de llamada. Así puedo hacer clic en él y puedo
llamar a mi código engendrar enemigo. Puedo llamarlo aquí
siempre que lo llame, entonces
puedo ejecutar este código. Si solo escribo el comienzo, Juega solo para mostrarte que comienzas, juego es el evento más simple.
Puedo conectarlo aquí. Cada vez que empiezo a
jugar el juego, va a llamar a este evento, que luego va a
ejecutar este código aquí. Así es como sucede.
Digamos por ejemplo, quiero engendrar al mago Por ahora, déjame tomar este, en lugar de escribir un valor, déjame tomarlo y decir que
voy a hacer una transformación solo
de forma manual. No lo vamos a
hacer así, pero sólo voy a
mostrarte, por ejemplo, vamos a copiar la ubicación
de este punto de desove Voy a decir 170 por
cero por -120 Aquí en la ubicación 1700 -120
voy a compilar Ahora cuando hago clic en jugar, puedes ver que mi enemigo ha engendrado en esta
determinada ubicación Es el mago el
que ha generado todas
estas funciones o
así como llamamos eventos Tienes que tener un evento. Ejecutas este código,
le dices al motor,
ejecutas mis eventos enemigos engendrados Y va a
ejecutar tus eventos con las cosas especificadas que
has especificado aquí, quiero engendrar al asistente, por
ejemplo, en esta ubicación Va a enchufar esta
información aquí, a aquí. Y va a engendrar al enemigo y
almacenarlo en una variable Ahora vamos a eliminar esto.
No lo necesitamos. Yo sólo iba a mostrártelo. Vamos a compilar y
guardar todo. Ahora pasemos al modo juego. Siempre podemos engendrarlo desde
aquí, desde el inicio de la obra. Pero solo para hacer un código un
poco más limpio, engendremos al enemigo
dentro del modo de juego Ahora que tenemos este código
donde engendramos al enemigo, vamos a ejecutar el código
dentro del modo de juego Debido a que el modo de juego es
decidir las reglas del juego, es más limpio
hacerlo dentro de aquí. Pero en realidad no
importa en un solo jugador. Si engenzas al enemigo
desde aquí o
engenzas al enemigo desde aquí, realmente
no importa Pero solo para hacer un código más limpio, hagámoslo en el modo juego. Lo voy a hacer
en el inicio Play. Sólo voy a
seleccionar esta y eliminarla dentro de aquí. Arrastremos y
busquemos al enemigo engendrado. Aquí puedes ver
cuando haces esto, no
puedes ver nada. Esto se debe a que ahora este modo de
juego no se da cuenta lo que has creado dentro de esta otra clase de planos Recuerda, estas son dos clases de planos
diferentes. Ahora en realidad necesitas entrar en algo llamado comunicación de
planos Necesita comunicarse con
otra clase de blueprint, porque este modo de juego
necesita usarlo desde el controlador de
juego Necesitamos usar algo llamado casting para comunicarnos
con este otro plano Y
eso lo vamos a hacer en la siguiente lección.
23. 4.03 Comunicación de planos - Casting: Ahora nos metemos en la comunicación
de planos. Y ahora necesitamos
comunicarnos con el controlador del jugador dentro
del modo de juego para decirle al controlador
del jugador, o aquí en el modo de juego, que use y llame a
este engendro enemigo Para ello, vamos aquí abajo, haz clic
derecho y di ahora lo que necesitas pensar es ¿con qué necesitas
comunicarte? Necesito comunicarme con
el controlador del reproductor. Busquemos el controlador
del reproductor. Necesitamos obtener esta función llamada get player controller. Estamos obteniendo este controlador de capa
predeterminado de Unreal Engine Ahora tenemos que decir
aquí que necesitamos
usar este
controlador específico que hicimos. No necesitamos usar este controlador de reproductor
predeterminado. Lo que tenemos que hacer es justo a
partir de aquí y decir elenco dos. Esto es lo que es el casting. Le estás diciendo al
motor que
quieres usar este
controlador personalizado específicamente tienes que escribir
el nombre del mismo como a PC Dungeon Clicker Adelante y conéctalo. Ahora lo que estamos haciendo aquí es que estamos tomando el controlador de reproductor
predeterminado, estamos lanzando a este clicker de mazmorras de
PC Así que básicamente estamos diciendo que
queremos usar cosas dentro de nuestro propio controlador de reproductor personalizado en lugar de este de aquí. Ahora podemos llamar a lo que
creamos dentro de aquí,
este enemigo engendrado Entonces por ejemplo, ahora puedo arrastrar de aquí y decir engendrar enemigo Ahora puedo usarlo, recuerda que no puedes
simplemente escribir click y decir engendrar enemigo
porque no va a mostrar Sólo va a mostrar si
arrastras desde aquí y dices engendrar enemigo
porque está dentro de aquí Y ahora realmente puedes usarlo. Ahora te estás comunicando
con este plano. Pero el problema con esto
con el casting es que
creas referencias duras
en Unreal Engine Cuando creas un juego y
creas un juego grande, puedes imaginar cuánto estás usando casting
porque
te estás comunicando con muchos planos a la vez Tienes muchos de
estos. Ahora bien, esto es un problema porque
crea referencias duras. Y lo que son las referencias duras, es que necesitas cargar
esas referencias cada vez que inicies el
juego. A veces ves
si abres un juego antiguo
y se está cargando como 15 segundos antes de que te
muestre el menú principal. Esto se debe a
que está cargando todas
las referencias duras antes de que pueda comenzar.
Esto es realmente malo. No estoy diciendo que no
debas usar casting en ningún lado, sino úsalo como con facilidad,
no lo uses en todas partes. Úsalo donde sea que lo encuentres. Bueno para usarlo va a llegar ahí. Con experiencia,
sabrás cuándo quieres
usar el casting. Y por qué no tratar de evitar el
casting tanto como sea posible. Así que permítanme simplemente eliminar
este casting ahora, o en realidad simplemente dejar que
esté aquí. Déjame solo Alt y desconectaré esto. Aquí. Déjame
moverlo hacia abajo por ahora. Ahora, en lugar de usar casting, usemos algo llamado interfaces de
blueprint Pasemos a
la siguiente lección y veamos qué son
las interfaces de planos
24. 4.04 Comunicación con planos - Interfaces: Bien, entremos en las interfaces de
blueprint. Ahora bien, este tema es
difícil para muchos principiantes, pero voy a tratar de explicar como de
costumbre lo mejor que pueda
para explicarte esto. Para evitar altas referencias
con la fundición, usemos interfaces de blueprint Primero, vamos a hacer clic derecho aquí, Hacer una nueva carpeta
llamada interfaces. Mantengámonos organizados
dentro de aquí. Vamos a hacer clic derecho ahora. Dentro del blueprint, se ve algo llamado interfaz de
blueprint Sigamos adelante y creémoslo. Normalmente lo llamo como un principio gente lo llama BPI para interfaz blueprint.
Hagámoslo en realidad. Vamos a llamarlo BPI, interfaz de
blueprint. Llamémosle a éste. El nombre de éste es a
lo que intentas hacer referencia, a lo que sea que estés
tratando de comunicarte. En este caso, estoy tratando de usar una función del controlador de mi
reproductor. Voy a llamar a este
controlador PI . Esto
es a lo que quiero referirme. Vamos a abrirla. Dentro de una interfaz de blueprint, puedes ver que tienes una ventana gráfica Realmente no se puede hacer nada. Dice solo lectura, aquí no se puede arrastrar ni nada. Lo único que puedes hacer es crear funciones
aquí a un lado. Vamos a hacer clic en la
primera función aquí. Déjame dar click sobre
dos para cambiarle el nombre. Déjame llamar a este, Obtener referencia de control de juego. Obtener referencia de control de jugador. Esto es lo que estoy tratando de hacer. Estoy tratando de obtener
la referencia para el controlador
del reproductor para que
pueda usar lo que sea que haya en él. Al igual que lo que
hicimos con el casting, puedo usar esta función dentro de ella aquí. Volvamos a la interfaz. Obtenga la
referencia del controlador del reproductor dentro de aquí. Quiero hacer una variable
de salida aquí. Ahora el tipo de variable es lo que esté
tratando de hacer referencia. Estoy tratando de hacer referencia
a mi controlador de reproductor. Necesito
buscarlo aquí abajo, Buscar controlador de PC, lo
llamamos PC en realidad,
net Player controller. Nosotros llamamos PC Dung Clicker. Vamos a darle un click sobre él.
Cambiemos el nombre de esto a Play Controller
así como así. Vamos a compilar y ya estamos
todos hechos dentro de aquí. Lo único que
creamos es esta función de
referencia del controlador
get player. Y agregamos una variable a la salida aquí llamada
player controller. Vamos a usar esto para definir este
controlador de reproductor aquí. Ahora, ahora que hemos creado
la interfaz del blueprint, vamos ahora al controlador Player y
dentro de la configuración de clase, necesitamos agregar esta
interfaz por aquí Vamos a hacer clic en
la configuración de la clase, busquemos el BPI y agreguemos el controlador
Player Ahora observe cuando agregue el controlador
Player aquí en la interfaz que en realidad obtiene una barra aquí
llamada interfaces. Y puedes ver esta
función de referencia de get
player controller que acabas de crear, la lista, haz doble click sobre ella. Y aquí está aquí,
puedes editarlo. Lo que hay que hacer
dentro de aquí es simplemente arrastrar y decir auto hazlo aquí. Ahora tenemos una autorreferencia. Lo que
significa una autorreferencia, básicamente, es que estamos definiendo esta variable de control
del jugador. Porque hago clic en
Alt y doy clic aquí para desconectarlo. Si no
hicimos esto, conoce qué es esta variable,
está vacía, no tiene ninguna información, pero realmente no sabe que es
este controlador de reproductor en el
que estamos ahora mismo. Esto es lo que significa la
autorreferencia. Si enchufamos esto, le
hemos dado un valor
a esta variable. Básicamente le estamos diciendo a
esta variable que el controlador del jugador del que
estamos
hablando es autosignificado. Sea cual sea el plano en el
que nos encontremos ahora mismo, se
trata de una autorreferencia Ahora sigamos para que
no se vuelva confuso. Y voy a explicar todo el
proceso cuando terminemos. Ahora que hemos hecho
esto, vamos a cerrarlo. Vamos a abrir o el modo de juego. Ahora, al igual que antes, digamos que obtenga el controlador del reproductor y obtenga el controlador de
reproductor predeterminado. Ahora en lugar de fundir, ahora
podemos arrastrar y decir referencia
del controlador. Ahora puedes ver que esto viene
de la interfaz del blueprint. También es una función de
interfaz de blueprint. Cuando veas este mensaje
al final, hagamos clic en él. Esto también es lo que significa
este icono. Significa que proviene de
una interfaz de blueprint. Sigamos adelante y conectémoslo. Ahora a partir de aquí,
vamos a arrastrar y decir engendrar enemigo, igual que antes Y ahora podemos llamar a
lo que sea que esté dentro de él. Ahora ya ves cuando voy al controlador
del reproductor ahora. Y si agrego una nueva
variable llamada, por ejemplo, enemigo salvamos. Pila. Entonces ahora dentro
del modo de juego, puedo dirigir desde aquí
y decir matar enemigo. Y ahora se puede ver, puedo ver esta variable que acabo de crear. Sea lo que sea que creo
dentro de aquí, puedo comunicarme ahora con el controlador del reproductor y
usar todo desde él. Bien, déjame explicarte todo
el proceso antes de
que termine este video. Si ya lo has
entendido, puedes ir a la siguiente lección. Yo sólo voy a
borrar esta. Entonces sólo voy a
explicar todo el proceso. Entonces es fácil de entender. Para empezar, lo que hicimos es crear esta
interfaz de blueprint haciendo clic derecho Y en el blueprint creamos
la interfaz de blueprint. Ahora dentro de esta interfaz, acabamos de crear una función llamada get player
controller reference. Porque queremos obtener la referencia de los controladores
del reproductor. lo que sea que necesites
hacer referencia, necesitas crear una variable
y establecer el tipo de variable. Aquí está lo que sea a lo que esté
tratando de hacer referencia. Estamos tratando de hacer referencia a este controlador de jugador
llamado PC dungeon Clicker Es por ello que por aquí
en el tipo de variable, configuré en PC dungeon clicker Básicamente solo
búscalo aquí, PC dungeon Clicker, y lo
encuentras así Bien, sólo dale un nombre. Lo acabo de llamar
Player Controller. Y recuerda compilar. Si no compilas, no
aparecerá por aquí. Así que recuerda compilar,
guardar todo. Ahora necesitas agregar esta interfaz de
blueprint en el controlador del reproductor, porque esto es a lo
que estás tratando hacer
referencia aquí Entramos en la configuración de la nube, agregamos la interfaz de
blueprint Al hacer esto, la función aparecerá aquí a la izquierda. Abres esta
función dentro de aquí. Básicamente hicimos
una autorreferencia porque si desconectas esto y compilas e intentas en el
modo juego hacer esto aquí, si haces clic en play, no
estoy seguro si me
va a dar un
error en este momento. Lo hará porque
estamos corriendo esto en la jugada de inicio y me
va a dar una época. Dirá acceso no. Al intentar leer la propiedad, obtenga la referencia del controlador del jugador dentro del enemigo engendrado Si hago clic en él aquí,
da clic en esta. Déjame
minimizarlo para mostrarte si
me vuelco por aquí y hago
clic en este enemigo engendrado La era ya está aquí. Dice Access. Tratando de leer la propiedad, obtener la referencia del controlador del jugador. Dice Access non, es
decir, no tengo ninguna información de
lo que intentas darme. Estoy tratando de darle este controlador
Player
como referencia. Pero no dice ninguno. Significa que aquí no hay
información alguna. Y no puedo hacer nada con esto es porque
en el control del jugador, en las interfaces del blueprint, no
conectamos este yo Porque si está vacío, el motor no sabe
realmente qué es
este mando de reproducción. Tenemos que decírselo. El controlador de jugador del que estoy
hablando soy yo aquí. El controlador del reproductor.
Esta clase de planos ya
estoy en estos momentos Ahora que
lo hemos definido en el modo juego, ahora
podemos llamar a esta interfaz de
blueprint Pero primero tenemos que obtener el
controlador de reproductor predeterminado de esto, este get play
controller reference. Pero desde la interfaz de blueprint desde aquí ahora podemos
acceder a todo desde ella. Porque recuerda en
el mando de juego hicimos esta
autorreferencia aquí. Sabe de qué
es el mando de
juego del que estamos hablando. Bien, sé que es un poco
confuso para los principiantes, pero confía en mí, concepto
muy, muy simple. Si solo practicas
con él 23 veces, trata de re, mira el
final del video. A lo mejor solo intenta
entenderlo. Vamos a hacer esto al
menos cinco veces
en este curso, por lo que también
verás otros ejemplos, no solo el controlador de juego, sino también veremos otros
ejemplos. También voy a dejar que lo
hagas primero antes de que yo lo haga, así puedes conseguir algo de
práctica aquí también. Pero por ahora ya terminamos. Esto lo hemos conectado. Sin embargo, puedes ver aquí necesitamos
la ubicación de desove Tenemos que engendrar al enemigo
en este lugar de aquí. En lugar de hacer
un valor estático, como arrastrar y decir transformar y hacer un valor
estático por ejemplo, podemos simplemente escribir un valor aquí Queremos saber dónde está
este punto de desove. Tenemos que engendrar a este enemigo. Dependiendo de dónde esté
el punto de desove, esto es lo que vamos
a hacer en la siguiente lección
25. 4.05 Consigue los valores de punto de aparición: Aquí he vuelto a abrir
el proyecto y ahora
vuelve a decirme que el nenita está habilitado
pero no puede renderizar porque el proyecto tiene a
Nani deshabilitado en una I. Y recuerdo que desactivamos Nanite en la
configuración del proyecto ahora en lugar de escribir anite aquí en la consola 2047 porque ya Cada vez que
vas a cerrar el proyecto y
abrirlo de nuevo, va a mostrar
este mensaje. En cambio, lo que
quiero que hagas es que vayas
a tu carpeta de proyectos y puedas encontrar en documentos. Y entrando en los Proyectos
Irreales, aquí
es donde se guardan tus proyectos de Unreal
Engine Entonces entrando en el
Dungeon Clicker, quiero que abras la configuración y abras esta
llamada Default Engine I. Dentro de aquí, lo
que quiero que encuentres es quiero que encuentres uno aquí, Proyecto habilitado es igual a
falso aquí abajo. Voy a escribir
mi código personalizado aquí en lugar del
comando de la consola. Vamos a escribirlo aquí. Nt es igual a cero. Esto es lo que quiero que
escribas, R es igual a cero. Vamos a guardarlo. Por cierto, estoy usando el Bloc de notas plus plus Puedes usar tu editor de texto
normal. Realmente importa lo que uses solo escribiendo R n es igual a
cero. Vamos a cerrarlo. Cerremos también este
proyecto. Déjame intentar de nuevo
para ejecutar mi proyecto y ver si el mensaje se
ha ido. Y debería haberse ido. No debería estar
ahí. Ahí vamos. El mensaje ya no va a aparecer. Bien, increíble. En lugar de aquí, lo que
queremos hacer ahora es querer obtener el valor
del punto de generación Porque recuerden donde
lo dejamos en el modo, hicimos la interfaz blueprint Llamamos a esta función
enemiga de engendro o evento más bien llamamos este evento está dentro del controlador
del jugador Éste. Por cierto, déjame aumentar de nuevo mi escala de UI porque cada
vez que cierro el motor, en realidad
tengo que
aumentarlo aquí a 1.25 para que puedas ver mejor. Espero que no se me olvide. Vamos a abrir de nuevo. Aquí, y aquí se ve al enemigo engendrado Este es el evento que
llamamos desde el modo de juego. Ahora lo que tenemos
que hacer
es decirle dónde queremos engendrar
a este enemigo Esta es la transformación de engendro.
¿Cómo hacemos esto? Tenemos que llegar a donde está
esto en el mundo. Ahora hay una función
que necesitas usar y se llama actor de clase. Actor de clase es
una función que consigue algo que ya está
engendrado en el mundo Por ejemplo, está este spawpoint
enemigo que podemos conseguir. Si abres este
get actor de clase, si haces clic aquí y
buscas spawn, entonces puedes ver que puedes
conseguir BP enemigo spawpoint O puede obtener la base BP
spawpoint y así sucesivamente. Para que puedas obtener
estos planos Si obtienes un plano que
no se genera, por ejemplo, digamos que llamo BP noche, esta la noche
que creamos Digamos que yo digo que consiga actor de la noche de clase y yo juego el juego. Te va a dar un error. Esto se debe a que la noche
es estanque en el nivel. Estas son todas las cosas
que tenemos en nuestro nivel. Los jugadores inician el volumen
posterior al proceso, el mapa de mosaicos y
el punto espinoso enemigo. Lo que podemos hacer es
buscar punto de spa enemigo. Este punto de spa enemigo. Estamos consiguiendo a este actor. ¿Qué podemos hacer con éste? De hecho, vamos a meterlo
dentro de la jugada de inicio. Antes de que hagamos todo esto aquí, déjame arrastrar de esta manera
y voy a colocar este aquí abajo así
y voy a conectarlo. Lo que queremos hacer aquí es
que hagamos un clic derecho, promocionemos esto a una variable. Vamos a llamarlo punto de engendro enemigo. Ahora lo tenemos almacenado en una variable, y
vamos a conectarlo. Ahora podemos usar esta
variable aquí. Tomemos esta variable, arrástrala aquí
y hagamos clic en Obtener. O puedes mantener el control
y arrastrarlo y soltarlo. Lo conseguirá automáticamente. También puedes mantener pulsada la opción Alt, mantener pulsada la opción alt y arrastrar. Y establecerá esta variable en lugar de simplemente
arrastrar y hacer clic en obtener. Y establezca mantener pulsado
control y arrastre, o mantenga presionado alt y arrastre. Ahora tenemos este punto de giro
enemigo. Y digamos ahora otra vez, si no sabes cómo se llama
la función, solo busca la palabra que
quiero para obtener la transformación. O obtienes la
ubicación de esta variable, de este actor, obtienes ubicación de
actor. Puedes usar esto,
puedes dirigir desde aquí, puedes ver que
realmente no puedes conectarlos. Pero va a convertir esto para ti en motor real
va a convertir esto por ti. Ahora no es del todo
correcto así. Se puede dirigir desde
aquí y decir transformar. Y cuando haces transformación, rompes esta transformación. Porque si no sabes
lo que es una transformación, esto es lo que es una transformación. En realidad se puede ver
aquí en el panel de detalles. Cuando haces clic en algo, ves la ubicación, rotación y escala de un elemento. Esta es la transformación. La transformación se puede desglosar en la ubicación,
rotación y escala. Este color naranja
es la transformación. Puedes descomponerlo así. Y puedes conectar la ubicación de
Acta aquí. Y va a funcionar bien. Sin embargo, solo para
hacerlo más corto,
en realidad puedes eliminar esto. Y puedes arrastrar aquí y
buscar transformar, y también puedes obtener la transformación de
Acta. Ahora a veces hay
que tener cuidado
porque está obteniendo tanto la ubicación, la rotación, como la escala, y está afectando al
enemigo con estos valores. Si haces clic en este objeto, está obteniendo la ubicación que está bien. Yo quiero engendrar aquí También está recibiendo la rotación que es 000, lo cual está bien. Imagínese si este acto
tuviera esta rotación, digamos que tuvo esta rotación
aleatoria. Esto se va a
aplicar a tu personaje. Ten cuidado cuando uses
get actor transform. A veces tienes
un conjunto de rotación como este para este activo que no
quieres que se
aplique para tu personaje. En este caso, debe
obtener una ubicación por sí mismo. Puedes usar la rotación por
sí mismo si no quieres la rotación
desde aquí y decir make transform y puedes
usar la ubicación en su lugar. Y entonces solo puedes dejar
la rotación para que sea 000. Pero en nuestro caso la escala
es una que está bien. La escala de personajes también es una. La rotación es de
000, lo cual está bien. Y esta es la
ubicación que
queremos usar el get act para
transformar está perfectamente bien, en este caso aquí.
Ahora lo conseguimos. Vamos a compilar y
vamos a darle un enemer, por ejemplo, el Orco A ver si el Orco
engendra en realidad, eso es por aquí, la jugada del Fc Se puede ver que Orco en realidad
está desove. Impresionante. Está funcionando. Ahora podemos desovar aquí. Por ejemplo, escojamos
la revista esqueleto. Si hago clic en play, creo que en realidad en vez
de hacer clic en Reproducir y siempre minimizando
así para ver si funciona, me gusta jugar aquí. Veamos jugando como
una nueva ventana de editor, aparece para mí y
apareció en mi segundo monitor Pero básicamente esto está aquí, este es el compañero esqueleto, y está funcionando bien. Bien, el desove está funcionando. Ahora bien, qué hay
que definir, qué enemigo
queremos engendrar Ahora bien, este es un poco más complejo
porque como dije antes, cada nivel en el juego
clicker tiene su propio nivel uno tiene, por ejemplo, este tipo aquí, el nivel
dos tiene a este tipo. Tenemos que definir qué
nivel tiene qué enemigo. En realidad no podemos simplemente especificar
un enemigo específico aquí. Para ello, tenemos que
aprender un par de cosas. Estructuras, datos,
tablas, bibliotecas. Pero va a ser muy divertido y también
se puede aplicar
a tus futuros juegos. Mantente enfocado en
el próximo par de lecciones. Cosas muy, muy importantes que vienen. Pasemos al siguiente.
26. 4.06 Introducción a las estructuras: Bien, bienvenido.
Y ahora vamos a tener una
introducción a las estructuras. Ahora bien, si ya sabes
lo que es una estructura, puedes pasar a la siguiente lección. Y si no sabes
lo que es una estructura, empecemos aquí. Pasemos a los enemigos. Ahora para los enemigos, vayamos a la base enemiga. Recuerda, en la base enemiga, si creo algo, si creo una variable
y digo salud enemiga, por
ejemplo, el
tipo de variable que establecemos es un flotador. Porque un float es
un valor numérico con una
posición decimal si compilo, puedes verlo
aquí a la derecha. Cuando hago clic en la
variable salud enemiga. Y puedo fijarlo
a, por ejemplo, 25.6 sea lo que sea esto,
la salud del enemigo Ahora también puedo hacer uno nuevo. Por ejemplo
llamémoslo tipo enemigo. El tipo de enemigo
que tenemos que lidiar con éste. Podemos simplemente
ponerle un nombre, lo que sea. Podemos tener muchas variables. Podemos tener la
salud del enemigo, el tipo enemigo, el nombre del enemigo, la animación ociosa del
enemigo,
la animación de muerte del enemigo. Se puede ver que aquí abajo podemos tener
muchas variables para el enemigo que
define a este enemigo. Sin embargo, para mantenerlo más
limpio, utilizamos estructuras. En lugar de llenar
todo esto con variables, repasemos y tratemos de
usar estructuras. Déjame borrar esta. Y
borra esta también. Compila, déjame minimizar esto. Pasemos a la carpeta de
planos. Haga clic derecho y
haga una nueva carpeta. Llamemos a éste Estructuras. Vamos por aquí, clic derecho, Ir al plano y ya ves
éste llamado estructura Adelante y creado,
voy a llamarlo ST o estructura. Vamos a llamarlo información enemiga. Esta estructura contiene datos sobre este enemigo.
Vamos a abrirlo. Bien, aquí estamos
dentro de una estructura. Lo único que hacemos es simplemente crear variables dentro de aquí. Aquí en la información del enemigo, podemos especificar el nombre del enemigo, podemos especificar la
salud del enemigo, podemos especificar a
qué nivel genera, y así sucesivamente Podemos hacer muchas
variables que definen a este enemigo aquí. En lugar de tener todas
las variables aquí abajo, en realidad
podemos
tenerlas aquí en su lugar. Y es mucho mejor
usar así, ahora
está más organizado. Esto en realidad es justo lo que es una variable o lo que es una
estructura y
puedes ver los valores predeterminados o las variables
que has creado. Los puedes ver por aquí. Muy sencillo. Esta es toda la estructura de datos es mantener algunas variables
que se pueden utilizar. En este caso estamos definiendo los datos del enemigo,
la información del enemigo. Pasemos a
la siguiente lección y llenemos la información del enemigo.
27. 4.07 Información de nivel e información de enemigo: Bien, así que para
la información enemiga, definamos algunas variables que usaremos para los enemigos. El primero es el
nombre del enemigo. Para éste lo voy
a poner en una cuerda. Ahora bien, si no
conoces la diferencia entre una cadena y un texto, si seleccionas una cadena y haces clic en Guardar y vas
a los valores predeterminados, puedes ver que una cadena es
básicamente una línea de texto. Para que podamos escribir el
nombre del enemigo. Pero un texto también es una línea de texto donde
se puede escribir el nombre del enemigo. Entonces, ¿cuál
es la diferencia? La diferencia es que un texto es localizable y también puedes ver que cuando mantienes
el mouse sobre
él, dice una cadena de
texto localizable Localización significa que
puedes traducir esto a diferentes idiomas si
quieres que tu juego esté en alemán o quieres que
tu juego sea en chino,
japonés, en ruso, lo que sea. Puedes traducir
tu juego si tienes tu diálogo o el nombre de
tu personaje hecho con una variable de texto. Ahora bien, si el nombre del personaje está hecho con una variable de cadena, no
se puede traducir. A lo mejor dirías, ¿por qué no solo
usamos texto como para todo ya que podemos traducirlo y
todo va a estar bien Esto se debe a que usa más
memoria que una cadena. Usamos cadena si
realmente no necesitas localizar
lo que sea que estés haciendo No necesito traducir
el nombre del personaje. Sólo lo guardaré como una cuerda. Tampoco quiero traducir
mi juego. Si quieres traducirlo,
por ejemplo, si el nombre de tu
personaje es Esqueleto. Skeleton se puede traducir
a muchos idiomas. Si quieres traducir eso, tienes que seleccionar texto en su lugar. Solo tenlo en cuenta. Lo que sea que estés haciendo como texto, ¿quieres traducirlo a otro idioma
o quieres mantenerlo en el mismo idioma en el
que estás codificando este juego? Yo sólo voy a escoger cadena. No quiero
traducir nada. Lo que queremos
añadir también es la clase. La clase enemiga es la base P M. Así que adelante y busca PPN M base y selecciona
la referencia de clase Ahora bien, si realmente no sabes
qué es una referencia de clase,
es si vas y abres el modo de
juego, una vez más, esto es de lo que hemos engendrado es una referencia de clase de
actor Puedes ver eso si pasas el
mouse sobre él. Entonces esta es la referencia de clase, necesitamos eso para poder definir la
referencia de clase enemiga y poder enchufar esta
información aquí. Lo siguiente que necesitamos
es el tipo enemigo. ¿Con qué tipo de enemigo
estamos tratando? ¿Es un
enemigo normal? ¿Es un jefe? Podemos agregar un
mecánico de autobuses al juego. En lugar de simplemente tener a
todos como enemigos normales, también
podemos tener un enemigo de autobús. Hagamos un tipo enemigo. Ahora para el tipo enemigo, necesito usar algo
llamado enumerador, que no sabemos
qué es ahora mismo Dejémoslo
así por ahora, y te puedo enseñar en la
siguiente lección. Vamos a continuar. Por ahora, hagamos salud
al enemigo. Y éste es simplemente un flotador. Y un flotador de nuevo es un
número con una posición decimal. Volvamos a hacer clic en el signo más. Y queremos la animación ociosa. Animación ociosa para
este personaje. Esto es simplemente un libro plegable. Recuerda, un libro volteo es una versión animada de
este personaje aquí, eligiendo el libro de papel. Hagamos uno nuevo. Nuevamente,
queremos la animación de éxito. De nuevo es un libro volteado. Agreguemos uno nuevo. También queremos la animación de la muerte. Este es un libro volteado. Bien, estos son todos los datos
que necesitamos para el enemigo. Y en realidad estamos
terminados aquí. Ahora antes de que
terminemos, hagamos también la otra
estructura llamada la información de nivel. Si voy a la estructura y
voy a hacer clic derecho y hago una nueva estructura en el
plano en una nueva estructura Llamemos a esto Información de Nivel. Bien, vamos a abrir
esta información de nivel. Ahora lo que tenía
que hacer en el nivel info, tenemos
que definir básicamente qué enemigo genera
en qué nivel Básico aquí necesitamos el nivel
que es solo un número. Es un entero, ahora no
es un flotador, no
es un número
con una posición decimal. Debido a que el
nivel es el nivel uno, el
nivel dos , el nivel tres, en realidad no
necesitamos un decimal aquí. En su lugar, puedes usar
un número entero que es un número sin un
decimal, como puedes ver aquí. Usando un entero como nivel
y luego hacer uno nuevo. Y necesitamos el nombre del enemigo. El nombre enemigo
vuelve a ser una cadena. A qué nivel o
qué enemigo engendra en qué nivel, tenemos que escribir el nivel Por ejemplo, el nivel uno es
el nivel dos es el orcam, nivel tres es el
guerrero, y así sucesivamente Tenemos que definirlo más adelante. Ahora tenemos la
estructura para ello. Tenemos la estructura
para el nivel info. Tenemos la estructura
para la información enemiga. Ahora en la siguiente lección,
aprendamos algo sobre enumeración para que podamos terminar aquí
este tipo de enemigo
28. 4.08 Crea el tipo de enemigo Enum: Bien, así que echemos
un vistazo a las enumeraciones. Porque aquí en la estructura. Entonces, si vuelvo a las estructuras
y abro la información enemiga, hicimos esta
llamada del tipo Enemigo. Tenemos que definir qué es y necesitamos crear
una enumeración. Ahora podríamos simplemente hacer clic aquí para el tipo enemigo y hacer una cuerda. Ahora dentro de aquí, podemos
definir si este enemigo es un enemigo normal o si este
enemigo es un enemigo en el juego. Quiero tener enemigos que sean normales y enemigos
que sean jefes. ¿Bien? En lugar de hacer una
cadena y escribirla aquí, mejor crear una enumeración.
Veamos qué es. Vamos a Blueprints. Haga clic derecho, haga una nueva
carpeta, llámala Oms. Vamos a abrirla aquí arriba. Hagamos clic derecho para
ir a Planos. Y tienes esta llamada enumeración.
Adelante y da click en él. Vamos a llamarlo
tipo enemigo. Vamos a abrirla. O Enumeración, muy simple, es solo una lista de todo
lo que quieras hacer Puede ser una lista de abarrotes, por
ejemplo, tomates, por
ejemplo, tomates, cola, ketch up, lo Puede ser una lista de cualquier cosa
agregando un elemento de lista y
puedes escribir lo que sea
dentro de aquí. También puede ser una lista de armas que estás haciendo un tirador en
primera persona. Puede ser AK 47, puede ser un 41, puede ser un Deagle
y lo que quieras hacer una enumeración es
simplemente una lista de ítems En este caso, quiero
hacer una lista
del enemigo o
tipo enemigo para nuestros enemigos. Tenemos enemigos normales Si vuelvo a
hacer clic aquí y
tenemos enemigos jefes, también
puedes crear otros tipos si
tienes un juego más grande, si ya tienes tu
idea para tu juego. Por ejemplo, puedes tener como enemigos
legendarios,
bucles, legendarios. También puedes tener
enemigos épicos y así sucesivamente. que puedas tener más
enemigos, pero para mí, solo
estoy teniendo enemigos
normales y enemigos jefes a los que podemos salvar. Ahora vamos a cerrar esta lista. Ahora aquí puedo
buscarlo en el tipo. Si le hago clic para
el tipo enemigo, busco el tipo enemigo, esta es mi enumeración y
puedo seguir adelante y hacer clic en él y guardar. Ahora tenemos
este tipo de enemigo, y si haces clic en
los valores predeterminados, puedes ver aquí es
mejor que una cadena porque ahora tienes una lista entre la que
puedes seleccionar, lo cual es muy genial. Es mucho mejor que escribir la cosa todo el tiempo. Ahora podemos seleccionarlo de la lista si es jefe
o si es normal. Bien, realmente no
necesitamos definir nada
dentro de aquí, porque por cada enemigo, todos
tendrán su
propio conjunto de información. Para todos estos, no
necesitamos
enfocarnos en
los valores predeterminados por ahora. Adelante y guarda todo. Y eso fue todo para
las enumeraciones. Pasemos a
la siguiente lección.
29. 4.09 Introducción a las tablas de datos: Bien, entonces
antes de continuar, quiero
presentarles las tablas de datos. Ahora que hemos creado nuestras estructuras, también necesitamos
crear tablas de datos. Si voy a la carpeta de
planos, hago clic derecho en hacer una nueva carpeta, y llamo a esta tabla de datos Hago clic aquí, clic derecho. Ahora las tablas de datos
no están en los planos. En realidad está aquí abajo en la miscelánea y
lo puedes encontrar por aquí, tabla de datos. Das clic en él y
seleccionas de qué estructura
estás hablando. Yo solo quiero hacer
uno para mi información enemiga, también
necesitamos hacer
uno para la información de nivel. Pero vamos a hacer uno
para la información del enemigo. Por ahora, haga clic en.
Bien, llamémoslo, por ejemplo, DT mi tabla de datos de
información. Mi info. Y vamos a abrirla. Bien, entonces, ¿qué es una tabla de datos? Una tabla de datos es la que realmente define a
cada enemigo. Por ejemplo, la animación inactiva, la animación de golpe, así sucesivamente. Entonces creamos una estructura, pero cada enemigo tiene sus propios valores de estas
variables en la tabla de datos. Puedo dar click en D
aquí en la fila. Se puede ver que esta es
la nueva fila aquí. E incluso puedes cambiar el nombre de la fila, por ejemplo, el nombre de la fila,
puedes simplemente llamarlo uno o lo que quieras. Por ejemplo, para el
primer personaje, si voy a personajes activos, el primero es la noche. Lo que puedo hacer, por
ejemplo, es que puedo escribir seleccionar la clase
de la noche aquí. Y puedo seleccionar qué tipo
de enemigo es la noche. Es un enemigo normal. ¿Cuánto tiene? Digamos que tiene 100 de salud. Ahora tengo que seleccionar la Imación
Edlin para ello. Tengo que seleccionar la animación
Hid para ello, y también tengo que seleccionar
la animación de muerte para ello. Ahora tengo toda
esta información y puedo volver a hacer clic en
el plus. Para el siguiente quiero,
por ejemplo, definir mi Or. Puedo escribir este
tipo se llama Orco. Es la clase BP Or. Por ejemplo, un jefe, tiene 500 de salud y estas son todas las animaciones
para ello y así sucesivamente. Entonces cada enemigo tiene sus propios valores y
puedes usarlos ahora para
hacerlo mucho más rápido. En lugar de
hacerlo en el motor, podemos hacerlo dentro
de Google Sheets. Dentro de una hoja de Google, podemos hacerlo mucho más rápido. Y también las personas que no son desarrolladores de
juegos
también pueden trabajar allí, por ejemplo, los diseñadores de juegos. Pasemos a la
siguiente lección y echemos
un vistazo a cómo podemos
hacerlo en Google Sheets.
30. 4.10 Tablas de datos de información de nivel e información de enemigo: Bien, sigamos adelante y abramos Google
dentro de Google, justo dentro de tu unidad. Y lo puedes encontrar
por aquí en drive. Simplemente entra en tu disco, haz clic
derecho en cualquier lugar, haz
nuevos pliegues o lo que sea. Pero crea
aquí un Google Sheets y crea uno. Sólo voy a llamar a esta
mesa encendida o lo que sea. Puedes llamarlo como
quieras. Bien, aquí me gusta dar click en Control para seleccionar todo. Simplemente arrastra las columnas aquí abajo la forma en que tengo más espacio
para trabajar y controlar a. seleccionar todo y
convertirlo en otra fuente en la que
pueda dar click aquí, línea
horizontal, media,
esta y esta. Simplemente me gusta
comenzar con esto y seleccionar la parte superior
y hacer clic en Negrita. Ahora estoy listo para
usar mi documento. Ahora todo esto es opcional. Realmente no necesitas
hacer todo esto. Lo que tengo que hacer aquí primero
es que necesito escribir una identificación. Necesitamos una identificación porque
en Unreal engine, hay
que tener una identificación Realmente no se puede, este
es el ID, el nombre Ron, Realmente no se puede usar esta hoja de Google.
Si no tienes una identificación. Esto es necesario. Necesitamos escribir todas las variables
para nuestra estructura. Si vuelvo y
abro la información de mi enemigo, esto es lo que necesito escribir. Necesito escribir el nombre, tipo
enemigo. Volvamos aquí. Tipo enemigo, hay que
escribirlo específicamente así. No se puede escribir de otra manera. Hay que
escribirlo específicamente como como
lo escribió. Dentro de aquí. Inactiva, le pegó. Esto es mal salud ociosa
y la última es la muerte. Bien. Ahora tenemos esto. Ahora podemos definir la
información aquí abajo. El primero que tengo, solo
pensé esto en mi mente. El primero que quiero
escribir aquí es el Or. El segundo es el pícaro. Ahora, puedes tener a estos enemigos en cualquier secuencia que desees. No tienes que tener
la secuencia como yo, pero yo quiero
tenerlos así o Sam, tenemos al Mago. Entonces tenemos el Esqueleto. Entonces tenemos al Esqueleto, Roe, Guerrero
Esqueleto
así, y Skeleton Mag. Entonces tenemos el
Roe y la Noche. Tenemos 11 personajes
están todos aquí. No es necesario tenerlo
en esta misma secuencia. Pero solo pensé en mi mente que
esto sería una secuencia, tal vez para la identificación. Yo solo copio pegar esto aquí así porque
no realmente importante. El ID es simplemente que
necesita estar ahí para que funcione. Tenemos que simplemente
copiar y pegar cualquiera que sea el nombre para la clase. Tenemos que definir
cuál es la clase. Ahora, ¿cómo conseguimos esta clase base
enemiga? Porque tenemos que hacerlo,
haces clic en eso. Nuevamente, tenemos que
definir esta clase aquí. Lo que puedes hacer es usar esta
tabla de datos de información enemiga dentro de aquí. Simplemente crea una nueva fila aquí. Y lo que puedes hacer
es hacer click, el primero es el Orco Para mi puedo seleccionar al Orco, puedo escribir, dar click aquí y
escribir copia. O haz clic en Copiar. Ahora puedo abrir
mi tabla de datos y hacer clic en el control V en mi
teclado para pegar. Y aquí lo tenemos. Sólo voy a hacerlo un poco más grande para que veas así. Entonces ahora lo tenemos
dentro de aquí. Ahora lo que puedes hacer es el
siguiente es el Or Roe. Puedo seleccionar el Roe de nuevo, clic
derecho copiar o
lo que puedes hacer es
atajo es mantener presionado el turno y click
derecho esto lo copiará. Entonces puedo pegarlo
aquí, así como así. O lo que puedes hacer es que también
puedes simplemente copiar este. Pégalo aquí abajo
y cambia esto. O a o Chamán para éste también recuerda
cambiar aquí o Chamán, puedes hacerlo de ambas maneras Ahora, es mucho más rápido para mí solo seleccionar Aria, por ejemplo, mantener pulsada la Mayús y hacer clic con el botón derecho para copiar el control V para pegar aquí. Y hazlo también por el mago,
así y así sucesivamente. Yo sólo lo voy a
hacer por esos. Puedes hacer todo esto
tú mismo como práctica. Ahora para el tipo enemigo, o
tenemos enemigos normales
o de autobús. Este es normal y sólo
voy a copiar y pegar esto aquí. Y creo que el mago, podemos hacer un jefe así. Pueden seleccionar cuáles son los enemigos
normales y los
enemigos jefes les dan la salud. Para la salud, me
gustaría simplemente hacer una fórmula escribiendo,
por ejemplo, igual. Empecemos con
100 para éste. En realidad, solo escribe
100 para éste. No necesitamos una fórmula
para la primera, pero para la segunda equivale a esta, puedes dar click aquí. Multiplicado por 1.2 Se
va a
calcular esto automáticamente. Y puedo hacer clic en
esto y arrastrarlo hacia abajo
hasta el final. Puedo seleccionarlo aquí
arriba y hacer clic en este botón para eliminar
los decimales. Así como esto,
también puedes aumentar la salud. Puedes multiplicarlo
por 1.5 por ejemplo, puedes arrastrar
aquí abajo tenemos mucha más
salud, así como esto. Por ejemplo, para la
animación igual que antes, para la máquina Adline, puede seleccionar la máquina de
contorno aquí O en realidad
hagámoslo aquí abajo,
para el Adline A ver, el
primero fue el, si cierro esto y
encuentro el uno, puedes hacer click derecho y
copiar la referencia. Esta copia de referencia,
vuelvo atrás y hago clic en el control
V y lo pego aquí. Para estos,
tal vez puedas
hacerlos un poco más grandes así. Aquí está. Ahora para la animación de
hit otra vez, puedo hacer clic derecho en mi
hit y copiar referencia. Puedo pegarlo aquí
para la muerte, puedo hacer clic derecho
copiar referencia. Entonces puedo pegarlo aquí. Ahora te
lo voy a mostrar también aquí. Y voy a hacer todo
esto por mi cuenta. Aquí, Rogue, puedo
hacer clic en copiar referencias. Haga clic derecho en el, Hit
one, péguelo aquí. Y haz clic derecho en el Pícaro. Copia la referencia y
pégala en la final. Así es como agregas
todo esto y otra vez, o la clase pasa a la tabla de datos y
copia la clase. O básicamente puedes simplemente cambiar esta parte
aquí por el nombre
del personaje y
puedes definir si es un enemigo normal o jefe. Bien, así que aquí he
terminado mi tabla de datos. Toda la información
está aquí, aquí abajo. Sólo me gusta darle un nombre. Vamos a llamarlo DT me info. Hagamos también una nueva tabla de
datos. Doy click en el más
aquí abajo en las hojas, y hago una nueva tabla de datos. En realidad, vamos a
eliminar éste. Déjame simplemente
duplicarlo para que no tenga que formatearlo de nuevo
con la fuente y así sucesivamente. Haga clic derecho, este
duplicado y vamos a una información de nivel DT. Para ello, voy
a borrar todo, controlar un hit delete. Para este necesitamos el ID, también
necesitamos el nivel. Recuerda,
siempre puedes volver a tu estructura y
abrir la información de nivel. Necesitamos el nivel
y el nombre del enemigo. Lo abrimos aquí arriba, Necesitamos
el nivel y el nombre enemigo. Yo sólo voy a
hacerlo más pequeño aquí, no necesito todo este espacio. Y haciéndola más pequeña de esta
manera también para la identificación. Ahora sólo voy a copiar y
pegar los niveles aquí. Nivel 1234, tenemos 11 enemigos. Sólo voy a hacer click y
arrastrar esto hacia abajo hasta las 11. Sólo voy a
copiar y pegar esto aquí para el nombre del enemigo. Básicamente podemos ir
a la información del enemigo, copiar todo esto y
podemos pegarlo aquí también. Tenemos que encontrar en el nivel uno el lapso en el nivel
dos, el engendro de rollo Cuando la E aparece,
tenemos que encontrar
la salud de los pícaros, el tipo de enemigo busto, la animación de Ale y
toda esta información Aquí estamos usando esto para elegir qué enemigo
engendrar en un nivel Cuando el enemigo genera, tenemos la información sobre este enemigo
que podemos usar Adelante y solo el autoguardado no
puede realmente guardar aquí. Sigamos adelante y
haga clic en Descargar. Y ve y
descárgalo como archivo CSV, descarga información enemiga y ve
a la información de nivel también. Haga clic en el archivo,
descárguelo como archivo CSV. Ahora cuando abres tu carpeta de descargas,
aquí están. Voy a cambiarles el nombre, solo
se llama T Level Info y también renombrar este
T Enemy Info Antes de hacer esto, solo
asegúrate dentro del motor, si vuelvo y
cierro todo esto,
asegúrate en las tablas de datos que tengas la información del enemigo y esté vacía. Voy a borrar
esta. Haga clic en Guardar. También necesito hacer uno para
el nivel info. Haga clic derecho. Vaya a la tabla de datos misceláneos, seleccione la información de nivel, haga clic en OK y
llámalo Nivel T Info. Yo los tengo, y lo
que tienes que hacer es hacer clic y arrastrar ambos
hacia aquí y soltarlos, y debería
importarlos con éxito. Ahora bien, si has hecho una época en uno de los
nombres, por ejemplo, si has hecho una era en el nombre del enemigo
aquí, por ejemplo, digamos que escribiste nombre
enemigo sin una E.
Te dirá que hay una
era en tu tabla de datos. Y no te preocupes,
básicamente puedes corregirlo aquí, descargarlo de nuevo, y simplemente hacer clic y
arrastrarlo hacia aquí. Ahora, cuando abres la tabla de datos de información del
enemigo, tienes toda la información sobre cada personaje, cuánta salud tienen, el tipo de enemigo y todas
sus animaciones aquí también.
31. 4.11 Introducción a las bibliotecas: Bien, ahora hemos
terminado las tablas de datos. Y sigamos adelante y
echemos un vistazo a las bibliotecas. Este es el paso final antes de que terminemos todo
y engendremos al enemigo Así que echemos un vistazo ahora
y hagamos una nueva carpeta. Llamemos a esto bibliotecas. Si puedo deletrear bibliotecas
otra vez así así, vamos a entrar en esta carpeta ahora. Hagamos clic derecho
y vayamos a Blueprint. Y ves esta llamada biblioteca de funciones
de blueprint
y macro biblioteca de blueprint Ahora estamos trabajando
con funciones. Vamos a crear una biblioteca de funciones de
blueprint. Y lo voy a llamar
biblioteca de funciones BP, porque normalmente solo
tengo una en mi juego. Así que sólo voy a
llamarlo biblioteca de funciones. Ahora, ábrelo dentro
de esta biblioteca. Se puede ver que es básicamente, como su nombre lo dice,
es una biblioteca de funciones. Así puedes crear muchas
funciones dentro de aquí. Lo bueno de
una biblioteca de funciones son las funciones
que creas aquí. Se puede utilizar globalmente
en todos los planos. Vamos a crear uno por diversión. Por ejemplo, vamos
a llamar, por ejemplo, obtener la función de prueba de salud. No lo vamos a usar,
pero si hago clic en Compilar. Ahora bien, si minimizo esto y
abro otro plano, por ejemplo,
abramos el modo de juego Dentro de aquí, puedo escribir, dar clic y decir Get Health. Aquí puedes ver que es
de mi biblioteca de funciones. No tenemos que hacer
interfaces de blueprint y lo que sea. Podemos simplemente escribir, dar
clic en Obtener salud, podemos usar esta función. Ahora, podrías estar tentado a crear todas tus
funciones dentro de aquí Porque a lo mejor estás pensando, ¿por qué incluso estoy creando interfaces de
blueprint
y llamándolas ¿Por qué no los
creo simplemente dentro de una biblioteca de funciones? Esto se debe a que el juego
se volverá más lento. Como he investigado,
tu juego se
volverá más lento si tu
biblioteca de funciones es demasiado grande. Úsalo cuando tenga sentido. No solo agregues funciones aquí, porque si esto es demasiado grande, tu juego también va
a ser un poco más lento. Solo úsalo
cuando tenga sentido. Lo que suelo hacer,
lo uso siempre que hago tablas de datos porque
necesito usar esto en, en muchos blueprints A lo mejor puedas pensar
en ello así. Cuando tienes una función
que necesitas
usar en casi todos
los planos Por ejemplo, obtener
la información de los enemigos aquí. Entonces es mejor
crearlo dentro de
una biblioteca de funciones para que puedas acceder
fácilmente a ella en
cada blueprint Normalmente lo uso cada vez que creo estructuras
y tablas de datos, y necesito obtener
esa información, creo dentro
de bibliotecas de funciones. Sigamos adelante y eliminemos esto. Vamos a compilar y
guardar todo. Y ahora estamos listos para
pasar a la siguiente lección.
32. 4.12 Crea las funciones de la biblioteca: Sigamos adelante y creamos
las bibliotecas de funciones. Vamos a hacer clic en Anuncio y crear
una función dentro de aquí. El primero que vamos a crear es para el info enemigo. Para este voy a decir en realidad antes de que me olvide de nuevo, permítanme simplemente dar click
aquí arriba en las herramientas depurar que es reflector,
hazlo Lodgust Podemos ver mejor así
así dentro de aquí. Como lo voy a llamar
, voy a
llamarlo obtener información enemiga. Y voy a hacer
una nueva también, nueva función llamada get level
info. Necesitamos a estos dos. Empecemos por el primero. Lo que tenemos que hacer es hacer
clic derecho y decir obtener una mesa. Ves éste de aquí abajo. Obtener fila de tabla de datos. Esta es la función
que estamos tratando de usar. Estamos tratando de obtener una fila de tabla de datos de un nombre aquí para que
podamos usar la información. Sigamos adelante y
creémoslo y será
mucho mejor de entender una vez que terminemos. Ahora veamos tabla de datos, estamos hablando de ésta, en este caso es
la info enemiga. Seleccionemos la
información de NM para este nombre de fila. Ahora antes de conectarlo a aquí, por lo general
me gusta hacer click derecho y decir, en realidad vamos a
agregar una cadena primero aquí. Agregar una entrada y una cadena.
Adelante, hazlo. Aquí necesitamos una entrada
del nombre enemigo. Porque si vuelves
a tu tabla de datos, esta, estos son
los nombres enemigos. Necesitamos una entrada
de un nombre enemigo. De ese nombre, va a extraer esta información,
esta fila aquí. Volvamos de aquí. Lo que me gusta hacer
antes de enchufarlo es que me gusta usar la
función replace . Con una función
replace, lo que eso hace es
aquí en el from, vas a escribir
un espacio así. Aquí tienes un pequeño espacio, como puedes ver en los dos. No haces nada. Tienes un espacio aquí arriba
y aquí no tienes nada. Lo que eso hace es toma este nombre aquí
si tienes un espacio, porque como puedes
ver en el nombre de la fila, no
puedes tener un espacio. Nal Engine no
aceptará que tengas un espacio en el nombre de la fila.
Y esto es lo que es. Este es el nombre de la fila. Tienes que
extraer información si le das un nombre de enemigo y
el nombre enemigo tiene un espacio después,
te voy a mostrar cómo hacerlo más adelante. Si tiene un espacio, no
va a leer, va a doler. Lo que me gusta hacer
es el nombre del enemigo, me gustaría quitar el espacio
antes de hacer nada. Entonces solo puedo arrastrar
esto a aquí y
convertirá esta cadena
en una variable de nombre. Podemos conectar esto,
entonces podemos arrastrar aquí y decir return
porque necesitamos un nodo de retorno para esta función. Para el nodo de retorno,
generará estos datos de información enemiga. Llamemos a esto
información enemiga, y vamos a compilar. Y ahora ya terminamos
con éste. Así es como se ve.
Obtenemos el nombre del enemigo, luego extraemos esta información. Por ejemplo, digamos que el nombre
enemigo es Esqueleto Rogue, va a quitar el espacio, así que en realidad se puede
leer desde aquí Entonces va a obtener toda
esta información para ti y la va a enchufar
aquí para que puedas usarla. Hagámoslo también para la información de
nivel. Ahora para el nivel info, puedes hacerlo
tú mismo si deseas tener alguna práctica más. Hagámoslo juntos si
necesitas más práctica. Bien, aquí, vamos a hacer clic derecho, obtener una fila de tabla solo
para la información del nivel. Si vuelves a la
información de nivel, la información de nivel son números. Necesitamos un número
en lugar de una cadena. Por aquí voy a decir más. Y tomemos un entero aquí. Para el entero,
digamos un nivel. Sigamos adelante y conectémoslo. Ahora para este, realmente
no necesitamos hacer reemplazando todo esto
porque es solo un número. Y podemos simplemente arrastrar
esto al nombre. Ahora, no
lo convierte automáticamente para nosotros, esto es porque solo
convierte la cadena. Hagamos dos cuerdas y sigamos
adelante y seleccionemos esto. Y luego sigue adelante y arrástralo y lo
convertirá para ti,
nuevamente, haz un nodo de retorno. Antes de que hagamos algo, se
puede ver que es gris. Esto se debe a que aquí no hemos
seleccionado nada. Seleccionemos la información de nivel, y vamos a conectarla aquí. Y llamémoslo información de nivel. Vamos a compilar y
guardar todo. Ahora bien, si tratamos de
utilizarlos en el modo de juego, por ejemplo,
eliminemos obtener salud. Esta era una vieja para la información enemiga que podemos
escribir obtener información enemiga. Y aquí lo puedes ver. Ahora tenemos esta
función que
podemos usar y tenemos
la información enemiga. Básicamente puedes arrastrar
desde aquí y decir break. Estás rompiendo esta
estructura en múltiples pines, que puedes ver aquí. Estas son todas las variables que
creaste dentro de
tu estructura aquí. Estas son todas las
variables que creaste ahora, ahora puedes ser utilizada por ti. Se puede tener el
nombre del enemigo, la clase, el tipo enemigo, la salud del
enemigo, y así sucesivamente. Aquí básicamente estás
obteniendo información, no
necesitas estos pines de
ejecución. Como puede ver, algunas
de las funciones son verdes. No son azules. Son verdes. Esto se debe a que básicamente están
obteniendo información. Éste está consiguiendo la transformación de
los actores. Si solo da clic aquí, podrá ver el Acta más cercana. Realmente no es establecer
ninguna información, es solo obtener
información para ti. Cuando obtienes información, no
necesitas estos pines de
ejecución. Volvamos a la biblioteca de
funciones. Hagamos clic en la información del enemigo, pongamos ésta en pura. Vamos a hacer clic también en la información del
nivel, establecerla en pura. Ahora volvamos,
y aquí puedes ver ahora lo convertimos en
una función verde. Básicamente solo estamos
obteniendo información. Estamos obteniendo la información del enemigo y necesita el nombre del enemigo. Entonces cuando enchufamos el nombre del
enemigo, por ejemplo, mago
esqueleto, como pueden ver, escribo un espacio aquí. Sólo puedo escribirlo normalmente, Mago
Esqueleto dentro de aquí. Se va a quitar el espacio automáticamente ya que
hemos agregado un reemplazo. Si solo lo escribes así sin un espacio, realmente no
importa. No encuentra ningún espacio. Simplemente va a continuar. Es una preferencia,
pero me gustaría
escribir los nombres completamente
así normalmente. Entonces puedes escribir desde aquí, escribir break, y ahora tienes
esta información de enemigos. Así es como lo usas. Lo mismo con
el nivel info. Si dices obtener información de nivel, es que conectas un
nivel, por ejemplo, nivel tres,
rompes esta información. Y ahora sabes desde el nivel tres sabes qué
enemigo va a engendrar Porque en tu
tabla de datos en el nivel tres, le has dicho que el
subastador debe desovar Ahora ya sabes que el
subastador debería desovar. Y básicamente puedes
conectarlo aquí, ahora puedes ver cómo
puedes conectarlos juntos. Pero por ahora, eliminemos esto. Vamos a compilar y
continuemos con la siguiente lección.
33. 4.13 Añade los nombres de los enemigos: Bien, ahora necesitamos
agregar los nombres enemigos,
porque necesitamos esos nombres para extraer información de
la tabla de datos de información enemiga dentro de las bibliotecas
que acabamos de hacer aquí. Pero tenemos que enchufar
los nombres de los enemigos, necesitamos agregar los
nombres para cada enemigo. La forma en que hacemos esto
es si volvemos a los enemigos y aquí
en la base enemiga. Vamos a abrir eso. Abre el
editor de planos completo dentro de aquí. Vamos a crear una variable
llamada name por ejemplo, o puedes llamarla
nombre enemigo. Eso está bien. Voy a hacer que sea una
cuerda. Adelante y compila. Y recuerda, cuando
creas una variable dentro
de la base enemiga, todos
estos son hijos
de la base enemiga. Cuando creas una
variable dentro de aquí, también se
crearán para todas ellas. Abramos el primero. Abra el editor de
planos completo y dentro de los valores predeterminados de la
clase Veamos aquí los valores predeterminados de clase. Si nos desplazamos hacia abajo, puedes ver la
variable de nombre que creamos. Ahora puedes darle un nombre a este
personaje. Por ejemplo,
llamemos a esto una noche. Ahora abramos el siguiente. Es el Orco. En lugar de abrir el editor de
planos completo, en realidad también
puedes hacerlo
aquí abajo mostrándote
el panel de detalles Este es el Orco, el
siguiente es el Pícaro, el siguiente es el Chamán, y luego tenemos Entonces tenemos el hechizo pícaro. Correcto. Ahora bien, si lo
deletreas de manera incorrecta, no va a
poder extraer la información
de la tabla de datos. A veces cuando algo no
está funcionando, no
es extraer información. Solo asegúrate de haber
escrito este nombre correctamente. Debido a que este nombre
tiene que coincidir con lo que escribiste aquí, va a extraer esta
información de aquí. Ahora, de nuevo, como te
dije antes, podemos hacer un espacio porque tenemos esto reemplazado, no importa si
haces un espacio, te
va a quitar
el espacio. Es por ello que agregué
el reemplazo aquí. Se trata de un mago esqueleto. Vuelvo a los enemigos y abro el siguiente
, Esqueleto Rogue Entonces tenemos el
esqueleto así. Entonces tenemos al mago. Ahora los tenemos todos y
salimos y pulsamos en Compilar
en cada uno de ellos. Entonces ya terminaste aquí. Ahora todos tienen nombres. Como funciona ahora
es que va a tomar el nombre del enemigo. Por ejemplo, a este tipo de
aquí se le llama guerrero. Esto un guerrero,
va a tomar el
nombre aquí, un guerrero. Y va a tomar
esta información y después sabe qué información tiene
el guerrero. Es por ello que agregamos el nombre. Vamos a
usarlo. Cerremos todo y
pasemos a la siguiente lección.
34. 4.14 Desove del enemigo: Ahora sigamos adelante
y engendremos al enemigo. Volvamos al modo de juego. Aquí es donde lo
dejamos la última vez. Recuerden que conseguimos la transformación del
actor para el punto de engendro Básicamente sabemos dónde
engendrar al enemigo. Ahora sigamos adelante y le digamos qué enemigo
engendrar a qué nivel Ahora tenemos esta información
porque creamos las bibliotecas de
funciones
ahora dentro de aquí, hagamos clic derecho y
digamos que realmente necesitamos el nivel actual y
no tenemos eso como variable. Voy a crearlo en el modo juego porque
tiene más sentido. Recuerda, el modo de juego controla las reglas sobre el juego. Sabe cuál es el nivel
actual. Hagamos una nueva variable. Es un entero porque
es sólo un número. Vamos a llamarlo nivel actual. Vamos a compilar porque necesitamos
ver el valor predeterminado. Vamos a compilar para
el valor predeterminado. Empezamos en el nivel uno. Voy a cambiar
esto al nivel uno. Vamos a meter esto aquí. Bien. Con lo que
queremos trabajar es
con obtener información enemiga porque aquí
necesitamos a la clase enemiga. Y enchufar T y decir romper. Ahora para la clase
podemos enchufarlo aquí. Si no quieres ver
todos estos otros pines, puedes hacer clic en él y
decir ocultar pines desconectados Ahora para el nombre del enemigo, recuerda que tenemos
la otra función llamada get level info. A partir de aquí, se puede
ver qué enemigo debe desovar a qué nivel A partir de aquí otra
vez se puede decir descanso. Ahora puedes usar este nombre enemigo. Tenemos que darle
el nivel actual. Ahora todo está bien. Podemos hacer clic aquí,
Ocultar pines no conectados, y luego arrastrar esto hacia abajo. Puedes seleccionarlos todos
y presionar Q en tu teclado para
enderezarlos así Bien, vamos a poner esto aquí abajo. Y pon esto aquí arriba.
Ahora va a funcionar. Como puede ver, tenemos
el nivel actual, estamos obteniendo la
información para el nivel uno. Va a ir dentro de
la tabla de datos, nivel info, va a mirar al nivel uno
y luego sabe que es el Orco que va a
sacar y el nombre del enemigo Y esto va a ser
enchufado a la información enemiga que luego extrae información
de la información enemiga O ahora tenemos toda
la información sobre el Orco incluyendo
lo último en desovar Porque recuerden en la hoja de
Google le dijimos la clase que necesita para
desovar con ella es BP Orc Va a engendrar
el plano BP Orc. Y aquí estamos
engendrando al enemigo. Ahora bien, si hago doble clic en
esto, me va a llevar
al Player Controller donde hicimos este evento. Va a desovar al Orco, y también va a desovar el
O en el punto de desove que Sigamos adelante y compilemos
y guardemos todo. Vamos a hacer clic en Reproducir.
Y ahora se puede ver que es el O, podemos probar esto. Si hago clic en el nivel actual, cambié el nivel actual a, por ejemplo, el nivel tres. En el nivel tres,
debería engendrar al chamán. Si compila y hago
click arriba y juego, ya
ves que es el Chamán el
que está desove Esto está funcionando correctamente. Ahora para que sea un poco más limpio, lo que podemos hacer es tomar
todo esto y puedo clic
derecho y
colapsar a una función. Yo sólo voy a
hacer una función de esto solo para
hacerlo más limpio. Llamemos a este enemigo
para engendrar o nivel actual. Vamos a convertirlo en una
función pura porque recuerda que
solo estamos obteniendo información
a la función pura. Vamos a renombrar, vamos a hacer
doble clic en aquí. Voy a mover
esto hacia abajo así. Ahora para el
primero es el enemigo. Entonces estamos consiguiendo
qué enemigo engendrar. El segundo aquí es la transformación de spawn, así
como ésta Vamos a compilar y
guardar todo. Ahora aquí afuera, está
mucho más limpio y no tenemos
esta línea por aquí. Todo se ve bien. Bien, así es como
engendras enemigos. Vamos a hacer clic en el nivel
actual y
configurarlo de nuevo a un valor predeterminado. Entonces ahora está funcionando. Y pasemos a la siguiente lección.
35. 5.01 Diseño de la interfaz de usuario de nombres de enemigo: Ahora que los enemigos están
desove correctamente en el mapa, sigamos adelante y
trabajemos con la interfaz Aún no tenemos una carpeta. Si voy a la carpeta de contenido y hago clic derecho y
hago una nueva carpeta, llamemos a esta interfaz de usuario
dentro de esta carpeta. Hagamos clic derecho y vayamos a Interfaz de
usuario y creemos
un plano Widget Ahora aquí, sólo tienes que seguir adelante y
seleccionar usuario Widget aquí arriba. Llamemos a este nombre enemigo. En esta lección, solo
vamos a hacer del nombre enemigo una interfaz de usuario muy simple. Aquí está. Dentro de un plano amplio, tienes la ventana gráfica en la
que puedes hacer clic, hacer clic
derecho sobre el mouse, clic
derecho sobre el mouse, simplemente mantén presionado el clic derecho
y escribir alrededor, casi igual que Y aquí puedes
ver lo que has agregado a tus elementos de UI. Aquí están todos los
elementos que puedes agregar. También nuevamente, tienes un
panel de detalles al igual que aquí afuera, donde haces clic en las cosas,
por ejemplo el texto, y mostrará
detalles sobre la cosa dentro de un blueprint de widget Tienes el diseñador
donde diseñas la interfaz de usuario. Y tienes la gráfica donde
programas las cosas en la interfaz de usuario. Por ejemplo, ¿qué sucede
cuando presionas el botón? Si vuelvo ahora al
diseñador por ahora, solo
diseñemos el texto. Es solo el nombre del enemigo, así que es solo un texto. Pero antes de diseñar,
tenemos que agregar un lienzo. Antes de hacer algo en UI, en Unreal Engine, tienes que
agregar un panel de canvas Haga clic aquí, trapelo y suéltelo encima de aquí Ahora tienes este lienzo. Ahora podemos agregarle cosas. Por ejemplo, en este caso, sólo
vamos a necesitar un texto si solo
buscas texto. O también puedes simplemente bajar
aquí, lo puedes encontrar aquí. Estos son los elementos más
comunes aquí. También puedes simplemente dar click
alrededor, ver qué hay. Si quieres, solo para practicar, siempre
puedes hacer clic y
arrastrar esto aquí. Se puede ver lo que hace. Se puede tratar de jugar con
algunos escenarios, no hace daño. Cuando hayas terminado de entrenar, simplemente
puedes hacer clic aquí y presionar Eliminar en tu teclado
y lo eliminará. Tenemos el panel de lienzo, agreguemos algo de
texto encima de él. Puedes
agregarlo encima aquí o puedes
agregarlo por aquí. Eso es lo mismo.
Por lo general prefiero simplemente arrastrarlo y soltarlo aquí abajo
en su lugar, pero realmente no
importa por ahora. Para este texto, realmente no
necesitamos todo este espacio. Lo que voy a hacer es que
voy a dar click en Llenar Pantalla. Y entonces
deseó que sólo se va a
llenar alrededor de este texto. Ahora puedes ver que
está descentrado. Se puede ver esto es porque
tenemos algo llamado
el Punto de Ancla anclado a esta esquina Y lo que eso significa,
el Punto de Ancla, lo que es, es digamos que esta es tu ventana de juego,
estás jugando al juego. Ahora cuando reescales
la ventana del juego, el texto no se va
a quedar aquí abajo Era su intención que el texto se
quedara aquí abajo. Al cambiar la escala de la ventana, el texto va a moverse
hacia este punto de anclaje Si tu intención de que el texto quede
aquí abajo en tu pantalla, entonces lo estás haciendo mal
porque simplemente se moverá lentamente en esta dirección
cuando cambies el tamaño de la pantalla Muy importante establecer los puntos
de anclaje correctamente. Ahora para este punto de anclaje, solo
quería
centrarlo en el texto. Voy a golpear al centro en mi pantalla.
Esta es tu pantalla. Voy a centrarlo a
mi pantalla y voy a escribir 00 en la posición
de la x e y
Ahora cuando escribes 00,
el punto de anclaje se encaja a
la esquina superior izquierda. Ahora cuando escribes 00, el punto de anclaje se encaja a
la esquina superior izquierda Para arreglar esto, puedes
jugar con la alineación. Aquí puedes ver 0.5 es el medio y uno
es el otro lado. Por lo general es 0-1
en la alineación. Lo mismo para el Y. 0.5 está en el medio y uno
está en el otro lado, 0.5 y 0.5 Eso lo
agregará al sensor. Ahora puedes ver mi texto, y así es
como me gusta tenerlo. Bien, haz clic en Compilar
y guarda todo. Ahora sigamos adelante
y estilizemos esto. Pero antes de que hagamos esto, cuando
diseñas UI dentro
del motor Neural, tienes que asegurarte de que
tu se vea bien en laptops, Se ve bien en monitores Noble, monitores 24 pulgadas, monitores de
27 pulgadas. También necesita, por ejemplo, quedar bien en mi monitor de cuatro K. Si no lo diseñas bien en mi monitor de cuatro K,
podría verse así. Y voy a pasar un mal
rato jugando a tu juego. ¿Cómo nos aseguramos de
que la interfaz de usuario se mantenga buena en todas las pantallas?
La forma en que haces esto es haciendo clic aquí arriba en
el tamaño de la pantalla. Normalmente diseño mis juegos para
un portátil genérico de 14 pulgadas. Adelante y haz clic en
esto, y así es como se verá. Ahora solo presta atención
al zoom hacia arriba aquí que no estás
acercado, más ocho Si me alejo, ahora puedes
ver que también es menos diez. Si solo haces zoom hasta que sean 11, entonces así es como
se ve realmente en una computadora portátil. ¿Cómo se ve
en mi monitor cuatro? Bueno, si haces clic aquí abajo
en este botón de configuración, entonces podrás ver
cuánto escala. este momento,
lo estamos diseñando para una laptop de 14 pulgadas, pero en mi pantalla, en un monitor de cuatro K, escalará la
interfaz de usuario 3.8 veces. Se va a escalar
3.8 veces. Ahora es demasiado. Vamos a escalar esto a la baja. Y te puedo mostrar si hago clic aquí
arriba en la escala ocho, puedes hacer click en ella y luego
puedes reducirla aquí. Normalmente me parece
bueno en mi monitor de cuatro K. Si lo configuro a 2.5
escalará muy bien en todas las pantallas. No va a quedar
mal en mi pantalla, porque para una laptop o
para mi monitor de cuatro K, escalará 1.6 veces y quedará
bien en mi pantalla. Esto es lo que encontré
quedará bien. Por lo general, tres es demasiado grande. Desde mi monitor de cuatro K, EU es demasiado grande. 2.5 es realmente bueno. Bien, entonces ahora es escalas
correctamente en todas las pantallas. Sigamos adelante y
compilemos y guardemos. Ahora vamos a hacer clic
en el texto aquí. Y vamos a
estilizarlo un poco, ¿verdad? La forma en que lo
estilizamos es que tenemos que seleccionar un fondo. Ya puedes ver
que no tenemos fondos, tenemos el
fondo normal y tenemos que descargar un fondo
personalizado para estilizar esto Entonces sigamos adelante por ahora en la siguiente lección y
estilizemos este texto Podemos descargar un fondo personalizado
y agregarlo al motor real.
36. 5.02 Adición de una fuente personalizada: Todo bien. Entonces, si vas a Google y
buscas fondos de Google, ves este sitio web llamado Funds.google.com
Y dentro de aquí, puedes descargar el fondo
que quieras Ahora, también puedes simplemente
buscar fondos e incluso
puedes descargar fondos
gratis. También hay un sitio web llamado
El Fondo, El Fondo. Este también es bueno. Tiene muchos fondos de los que
puedes descargar. También hay pagos. Ahora me encantan los fondos de Google, tienen muchos estilos geniales. De aquí, encontré
uno llamado Playpen. Busca Playpen, y este
es el que quiero usar. Ahora puedes elegir
el fondo que quieras, no tiene que ser lo
mismo que yo. Y siempre puedes
probar el fondo. Si escribes algo
aquí, por ejemplo, podemos decir,
Mago Esqueleto para nuestro juego. Y puedes escalarlo para
ver cómo se ve si
fuera así y
es audaz y así sucesivamente. Entonces me gusta este fondo. Voy a presionar Descargar, y
lo voy a abrir aquí, aquí está. Ahora para este fondo,
tengo que extraerlo. Sólo voy a tomar esta carpeta estática y
extraerla a mi carpeta de descargas. Y voy a ir en
mi carpeta Descargas, voy a hacer doble clic sobre ella. Éste, éste que aquí
extraí ,
tengo todos los fondos. Ahora no voy a
necesitar el delgado. Por lo general son
demasiado delgadas dentro del motor
vulnerable
para los juegos que me gustan,
vamos a tener tal vez el
regular también. Medio semi negrita, extra audaz, audaz. Eso es. Si vuelvo a mi motor, minimizo esto aquí, y también minimizo esto. Ahora aquí, vamos a
minimizar esto. Vamos a abrir mi carpeta. Ahora, puedo importar todo
esto en la carpeta UI. Quiero que hagas una nueva carpeta y voy a llamarla fondos. Si puedo deletrear dentro
de esta carpeta de fondos, voy a hacer clic y arrastrar
todo esto a aquí. Recuerda, primero tienes que
extraer los fondos. Antes de hacer esto como nosotros, ¿ te
gustaría crear
un nuevo activo de fondo? Sólo voy a decir que se aplican a todos los DS. Y aquí lo tenemos. Muy fácil importar fondos. Adelante y guarda todo. Ahora si vuelves al nombre del
enemigo, damos click en él. Ahora podemos elegir este fondo
personalizado para ello. Ahora para éste,
creo que voy a usar este que se llama Extra
Bolt Como este de aquí. Esto me queda bien. Aquí. Para la justificación, voy a centrarlo. También voy a hacer click en
realidad este texto aquí. Voy a decir
tamaño al contenido. Simplemente va a
dimensionar por grande que sea este texto. No tengo que preocuparme por
el tamaño en la X e Y. S. Tienes
que probarla en tu juego. Pero creo que para mi
voy a ir con 28 Y el tamaño frontal, también
podemos darle un color. Si haces clic aquí arriba en
el color y la opacidad es un color. Sólo
voy a darle un color ligeramente rojo,
algo así. Y pegando bien, voy
a darle un esquema. Si hago clic aquí en el
esquema, puedo escribir uno. Por ejemplo, se puede ver que
hay un esquema en el texto. Creo que voy a ir
con dos porque
casi no lo puedes ver cuando
te alejan dos También voy a
cambiar el color para que solo copie el color
del primero. En realidad lo que
puedes hacer,
también puedes mantener presionado shift y
click derecho para copiar shift y
click izquierdo para pegarlo aquí. Sólo voy a hacerlo Daca y creo que esto es bueno para mí. Ahora, un
efecto muy cool que puedes hacer en motor
oral está aquí
en el offset de sombra. Si copias el mismo
color, entonces yo copio esto, da click hacia abajo en el
color de sombra y también puedo pegarlo aquí en el color de sombra,
aquí en el offset. Voy a escribir
cero en la X. Vamos a escribir algo
así como tres en la Y. Puedes ver un efecto muy chulo, tienes el texto y
luego tienes como un
fondo marrón fresco detrás de él. Siempre podemos probarlo en juego
para ver cómo se ve. A veces en realidad
espero con
diseñarlo hasta que lo tenga en juego para que puedas ver
cómo se ve en juego. Pero por ahora, creo que
esto es realmente bueno. Sólo para asegurarse de que el texto no está bloqueando
nada en el juego. Hay que bajar y en
la visibilidad hay que establecer, no golpear comprobable. Lo que esto significa es
que si intentas hacer clic con el
mouse sobre algo detrás del texto,
va a funcionar. Si lo tienes configurado como visible, entonces el texto bloqueará los clics del
mouse, y si hay algo detrás del texto,
no puedes hacer clic en él. Ahora, evitamos
el bloqueo aquí. Sigue adelante y haz clic en
Archivo y guarda Todo. Y aquí está el nombre del enemigo. Ahora estamos listos para
agregarlo en la siguiente lección.
37. 5.03 Añade la interfaz de usuario de nombres de enemigo: Ahora para agregar el nombre del enemigo. Vamos a los planos. Y abramos a los enemigos. Y tenemos que agregarlo
en la base enemiga. Recuerden, la base enemiga es la madre de todos
estos planos hijos Vamos a una base enemiga. Y si lo agregamos aquí, se
agregará a todos ellos. Va a hacer clic en Agregar
en los Componentes. Y si buscas
widget, aquí está. Adelante y agrega el
widget a este enemigo. Podemos simplemente llamarlo nombre enemigo. A lo mejor en realidad
voy a llamarlo widgets de nombre
enemigo. Entonces ya sabemos. Y sigamos adelante
y guardemos todo. Ahora para este widget enemigo, ve a la ventana gráfica Y ahora también tenemos que simplemente empujarlo un poco hacia abajo
para que quede por debajo del enemigo. El nombre está por debajo del enemigo. Ahora para el widget enemigo
en el panel de detalles, voy a configurarlo en pantalla. El texto puede ser mundo o pantalla. De hecho voy a
mostrarte un ejemplo aquí, Sophie, simplemente haz clic en la clase de widget y selecciona nuestro
widget que acabamos de hacer, ese será el
nombre del enemigo. Aquí está. Adelante y compila. De hecho voy a
mostrarte lo que parece. Sólo para que veas, si saco el Roe, escribo cero en la Y. Aquí está el nombre del enemigo. Se puede ver si estoy
mirando al enemigo así, No
podemos ver el texto
porque se muestra así. Lo que sucede cuando haces clic
en la pantalla es que solo tienes que mostrar este texto hacia
la pantalla, así como esto. Si hago clic en reproducir ahora se puede ver que se muestra
hacia la pantalla. Esto ahora se ve
bien. Vamos a abrirla. Volvamos a hacer clic en él. Sólo voy a golpear
Dibujar un Tamaño Deseado. Y ahora estamos listos
con éste. Vamos a hacer clic en Compilar. Y puedes empujarla hacia abajo
aún más así. Siempre puedes simplemente hacer clic en
Reproducir y ver qué es. Ahora pienso por el nombre del enemigo, voy a
empujarlo a tal vez como -22 Sólo un poco más. Aquí está. ve bien. Déjame borrar éste para que no tengamos
dos enemigos desove Ahora bien, este es el nombre enemigo
que hemos mostrado, y todo se ve genial.
38. 5.04 Programación de la interfaz de usuario de información del enemigo: Bien, en lugar de solo
tener el nombre del enemigo, decidí agregar también el nivel
enemigo. Se verá un poco más fresco. Volvamos a abrir al enemigo
, dentro de aquí. Vamos a ir a la UI, abrir el nombre del enemigo. Solo voy a
cambiarle el nombre a información enemiga. Ahora dentro de aquí,
si haces clic en él, realidad no necesitamos
hacer nada dentro de aquí porque vamos
a programar el texto. Aquí no necesitamos
cambiar nada. Pero ahora vayamos
a la base enemiga. En lugar de nombre enemigo amplio. Sólo voy a
renombrarlo Info Widget. Y esto es porque
tenemos el nombre y el nivel visualizados. Decidido. Bien, en
realidad no necesitamos hacer mucho aquí. Pero lo que tenemos que
hacer ahora para programarlo, es que tenemos que ir a la gráfica. Ahora eliminemos todos
estos eventos. Hagamos clic derecho
para hacer un evento personalizado. Llamemos a esta actualización de información
enemiga I para esta. Ahora cuando haces
algo en código, tienes que pensar qué es
lo que intentas hacer. Estoy tratando de actualizar este
texto. Este texto aquí. Al hacer clic en él, tengo que
configurarlo a su variable de lo contrario no
puedo verlo como una variable aquí y no
puedo hacer nada con ella. Entonces solo voy a llamar a este un texto información enemiga
y configurarlo en es variable. Y luego va a graficar. Ahora lo puedo ver, arrástralo. Lo que estamos tratando de hacer
es establecer el texto, establecer texto. Y puede seleccionar esta
función llamada set text. Así es como estableces un texto aquí. Ahora bien, esto es
lo que intentas hacer. Estamos tratando de que este texto
sea el nombre del enemigo. Ahora obviamente aquí no tenemos
el nombre del enemigo. Recuerden que tenemos el
nombre del enemigo. Dentro de la
función de biblioteca que
creamos, también necesitamos el nivel del enemigo. Ahora en cuanto al nivel, tenemos esto dentro
del modo de juego. Si vas a Blueprint para
abrir el modo de juego, recuerda aquí también tenemos el nivel
actual La mejor práctica para hacer esto es actualizar el nombre del enemigo
cada vez que se genera el enemigo. Estoy pensando aquí
en la base enemiga, cada vez que el enemigo genere este comienzo el juego
va a jugar Es agradable agregar este
código dentro de aquí. Tenemos que hacer, en lugar de
escribir el texto aquí. Ahora necesitamos dos entradas. En esta función,
necesitamos el nombre del enemigo, y esto es una cadena. Hagámoslo un poco más grande para que
podamos ver que este es
el nombre del enemigo. Llamemos a este nombre enemigo. Entonces necesitamos el nivel del enemigo mirando aquí, seleccionando entero. Y este es el nivel enemigo, igual que el
nombre de este enemigo y el nivel del enemigo. Ahora para enchufar esto aquí, como pueden ver, solo
tenemos un bloque de texto. Para agregar dos valores dinámicos
en un bloque de texto, hay
que usar algo
llamado texto de formato. Esto te permitirá
agregar a múltiples entradas, o múltiples entradas
al texto si
arrastras aquí y dices formato de
texto como este. Ahora como usas esto es
comienzas con un corchete cur. Lo primero es que
necesitamos el nombre enemigo. Digamos nombre del enemigo. Esto no tiene que ser preciso. Puedes escribir lo que
quieras aquí. Cerremos los corchetes. Cuando haces eso y golpeas Enter, puedes ver que
tienes un punto de entrada aquí con el que puedes
conectarlo así. Ahora también necesitamos
el nivel del enemigo, cómo queremos mostrarlo. Por ejemplo, sólo
para visualizarlo, digamos por ejemplo, Orco, tenemos una coma y dice nivel uno o nivel 12,
algo así Aquí tenemos que
formatearlo también. Así aquí
tenemos el nombre del enemigo. Entonces tenemos A. Por aquí
voy a derecha y a nivel. Entonces tenemos el nivel. Voy a
volver a abrir
el rizo y decir nivel enemigo. Y ciérrala de nuevo así. Ahora puedo agregar esta entrada ahora se va a
mostrar directamente para mí. Bien, esta la podemos
agregar ahora a la base enemiga. Si compila y
vuelvo a la base enemiga, solo
eliminemos
todo esto por ahora. Y cómo hacemos esto es
tomemos el widget de información del enemigo. Primero hay que escribir widget, seleccionar este llamado
get user widget object. Ahora aquí suelo
costar, digamos, cuesta dos. Normalmente no uso un
blueprint de widget para la interfaz de usuario porque creo que es demasiado crear
un blueprint
de widget para cada interfaz de usuario, solo
necesitas costar a la interfaz de usuario
que está dentro de un enemigo Por ejemplo, la interfaz de usuario del menú principal, no
vas a
costar dos sin embargo. El menú que está sangría
dentro de aquí como componente le va a costar para
obtener puente de usuario más allá de dos Y lo llamamos Enemigo info. Adelante, selecciónelo aquí, y vamos a seguir adelante
y conectarlo. Bien, entonces aquí lo tenemos. Ahora podemos llamar a la
actualización enemigo info, actualizar Enemy info Ui. Ahora tenemos que enchufar
el nombre del enemigo. Y recuerda que ya
tenemos eso aquí. Recuerda que hacemos clic en
cada enemigo y establecemos el
nombre del enemigo, todos ellos aquí. Y aquí es cuando lo usamos. Ahora vamos a golpear esto, enchufarlo, este es
el nombre del enemigo. Ahora para el nivel de enemigos, tenemos este como
el nivel actual dentro del modo de juego. No recuerdo en
las interfaces
hicimos una interfaz para el modo
juego, no lo hicimos. Entonces, sigamos adelante y creamos
la interfaz del blueprint. Echemos un vistazo aquí, vaya a Blueprint y seleccione la interfaz de
Blueprint Llamemos a éste BPI. Ahora, sólo
lo voy a llamar modo juego porque solo
tenemos uno en el juego.
Vamos a abrirla. Ahora, dentro de aquí,
vamos a llamarlo obtener referencia
del modo de juego porque esto es lo que
estamos tratando de hacer. Para las salidas, hay que
seleccionar en el tipo de variable, qué estás tratando de
hacer referencia. Ahora estoy tratando de hacer
referencia a mi modo de juego. Voy a buscar
al GM Dungeon Clicker. Así es como lo llamé,
este es mi modo de juego. Y voy a seleccionar Referencia de
objeto aquí. Sólo voy a
llamarlo modo de juego. Adelante y compile, Save All. Y ahora estamos acabados
dentro de aquí. Vamos a
cerrar esto. Ahora tenemos que agregar esta
interfaz de blueprint al modo de juego Si vuelvo a los planos, abre mi modo de juego
dentro de aquí Vamos a la configuración de la cláusula en las interfaces implementadas. Agreguemos la
interfaz de blueprint, modo de juego. Al hacer esto, aparece esta
función. Vamos a hacer doble clic en él, rack desde aquí y decir yo mismo. Ahora estamos definiendo
esta variable. Le estamos diciendo que esta variable de modo de
juego es self. Es decir, sea cual sea el
plano en el que estemos ahora mismo, diciéndole al motor que
esta variable de modo de juego es GM, Dung clicker Bien, ahora estamos terminados.
Vamos a cerrarlo. Abrimos una vez más al
enemigo. Y continuemos con el trabajo. En lugar de hacer esto primero, déjame moverlo todo aquí. Desconectémoslo
manteniendo presionado Alt y haciendo clic, hagamos clic derecho y
digamos Obtener modo de juego. Ahora para este modo de juego, estamos obteniendo el modo de juego
general, el modo de juego predeterminado
y Unreal Engine En lugar de decirle costo a GM, en lugar de hacer
esto, ahora podemos decirlo, referencia de modo juego. Y podemos usar la función de
interfaz blueprint. Y lo sabes
porque dice mensaje al final. Sabes que viene de
una interfaz de blueprint. Cerremos el sonido. Vamos a salir y conectarlo ahora. Ahora con esto,
podemos hacer clic derecho y promoverlo a nuestra variable
y llamarlo modo de juego. No tenemos que
volver a hacer todo esto . Es mucho más limpio. Ahora, solo podemos usar
la variable de modo de juego. Vamos a conectarlo,
golpeemos todo juntos. Sigamos adelante y
usémoslo. Entonces ahora podemos usar el nivel actual. Si vuelves al modo de juego, si no te acuerdas, tenemos esta variable llamada nivel
actual. Esto es lo que estamos tratando de
usar el modo break game aquí. Buscar el nivel actual y seguir adelante y
obtener el nivel actual. Y ahora puedes conectarlo y todo debería
funcionar perfectamente. Lo que está sucediendo en este
momento es que estamos recibiendo la actualización de la interfaz de usuario de información enemiga. Estamos enchufando
esta información, el nombre del enemigo
y el nivel del enemigo Va a llevar
esto a la interfaz de usuario aquí. Voy a la gráfica. Al ir
a enchufar esto aquí, debería mostrarlo correctamente. Si hago clic en Play, ahora
dice Orco nivel uno.
Eso es correcto. Ahora si vuelvo
al modo de juego y
cambié el nivel actual
a algo así como cinco, por ejemplo, y
hago clic en Jugar, dice Mago nivel cinco. Todo está funcionando perfectamente, bien. Todo está funcionando. Sigamos adelante y ahorremos.
Y sigamos adelante.
39. 5.05 Aplicación de daño al enemigo: Ahora sigamos adelante y
apliquemos daño al enemigo. Ahora bien, si hacemos clic en Play, lo que quiero hacer es cada vez que
hago clic en este Orco, quiero aplicar daño. Y por cierto, recuerda
ir en el modo de juego y
volver a establecer el nivel actual en uno por defecto, porque lo
configuramos en cinco la última vez que lo volvimos a poner en uno. Ahora lo que quiero hacer primero es que veas que nuestro
ratón desaparece. Cada vez que hago clic en el
juego, mi ratón desaparece. Entonces vayamos al controlador del
reproductor. Y dentro de aquí en
los valores predeterminados de clase, vamos a hacer clic en mostrar mouse Ursa Vamos a compilar esto.
Abramos la base enemiga. Antes de hacer nada, vamos a ir de hecho al reflector de widget de
depuración de combustible, hazlo 1.25 Así que
puedes ver aquí adentro aquí, lo que quiero que hagas es
para el componente cápsula, este es el con el que vamos a interactuar cada vez que
hagamos clic en él. Lo que queremos hacer es
bajar en el componente
cápsula. Y aquí ves algunos
eventos que puedes usar. Lo que quiero que uses es
este llamado click, porque vamos a
hacer click al enemigo desclicado Adelante y selecciona eso. Y aquí lo que quiero que hagas, también arrastras y digas imprimir cadena. La cadena de impresión es muy poderosa. Esto simplemente imprime una
cadena en la pantalla, imprime un mensaje en la pantalla. Por ejemplo, se puede decir trabajado. Y para lo que uso esto
es para depurar mi código, quiero ver si mi evento realmente
está funcionando. Nuevamente, esto es súper poderoso. Así es como depuro mi código. Si tengo un error, por ejemplo, digamos que algo no estaba
funcionando aquí en alguna parte, tomaría esto y
lo pegaría aquí arriba, por ejemplo. Yo lo pondría aquí al lado de
esto, o entre estos dos. Si se imprime, esto
significa que esta parte está funcionando, entonces yo imprimiría aquí y vería si esta parte
está funcionando y así sucesivamente. Sigue imprimiendo mensajes en la pantalla y así es como
depuras de manera efectiva. Aquí abajo en el click,
veamos si eso funciona. Si hago clic en reproducir y
hago clic en el Orco, nada es realmente
imprimir a la pantalla Esto quiere decir que
este evento
realmente no está funcionando.
Algo anda mal. Esto se debe a que en el componente
cápsula, verifiquemos los
ajustes de colisión aquí abajo. Lo pusimos a ninguna colisión. Por supuesto, no
va a funcionar cada vez que haga clic en él porque este
tipo no tiene colisión. Cuando la colisión preestablece
en lugar de ninguna colisión, hagamos clic en ella y digamos personalizada para la
colisión habilitada Voy a configurarlo para
consultar sólo ahora física. Siempre que un personaje camina por el suelo
y hay física, no cae por
el suelo y así sucesivamente. Realmente no
necesitamos consulta de física. Por ejemplo, tu
mouse está interactuando con la consulta enemiga en. No necesitamos física. En cuanto a los
canales de respuesta, ignora todo. No queremos interactuar con otros objetos estáticos del mundo, peones y vehículos y así sucesivamente Lo único con lo que queremos
intacto es la visibilidad. La visibilidad es tu mouse, este con el
que queremos interactuar. Ahora si haces clic en jugar, nosotros damos click aquí, Ves que
no pasa nada. Aún así algo anda mal. Ahora volvamos a abrir el mando de
reproducción. Y aquí puedes ver
activar eventos click. Tienes que tomar eso también. Compile, haga clic en reproducir, y ahora puede hacer clic en él. Ahora ves que nuestro mensaje
está imprimiendo al. Ahora está funcionando de nuevo. Puedes probar la caja de impacto, dependiendo de qué tan grande sea
tu esfera de colisión, nuestra cápsula es. Se puede ver cuando haga clic
aquí, también está funcionando. Creo que este es un cuadro de aciertos justo, pero si quieres
arreglar tu hit box, siempre
puedes ir
a la base enemiga, hacer clic en el componente cápsula, y puedes aumentar y disminuir la media altura
y el radio de la misma,
dependiendo de lo grande que
quieras que sea el círculo. Lo que queremos
hacer es aplicar daños. Vamos aquí y digamos Aplicar Daños. Hay una función para que
esto continúe y seleccione Daño Aplicado
por el acto dañado. Para dañarnos a nosotros mismos, queremos
dañar esta base enemiga, sea cual sea el enemigo que
estemos presionando. ¿Cuál queremos que sea
el daño? Solo podemos agregar un daño estático que podremos actualizar
más adelante en la tienda. Por el daño, en realidad
quiero agregarlo al jugador. Eso tiene más sentido. Si voy a planos, voy a jugador aquí Agreguemos una nueva variable
llamada daño. Cambiemos esto
en una compilación flotante. Vamos
a establecerlo en 15 por defecto, podemos cambiarlo más tarde. Compilar. Si vuelvo
a la base enemiga, ahora necesitamos una referencia
al jugador. Vea aquí, si
tenemos una interfaz, no
tenemos una interfaz de
blueprint Si quieres
volver a
desafiarte a ti mismo con las interfaces de
blueprint, sigue
adelante y crea
una para el jugador Pero ahora hagámoslo juntos. Hagamos clic derecho, vamos a
blueprint, interfaz de blueprint. Llámalo capa PPI. Vamos a abrirla aquí. Digamos obtener referencia de capa. Ahora aquí abajo, a lo que sea a lo que
estemos haciendo referencia, estamos tratando de hacer referencia al jugador de
BP.
Busquemos eso. Adelante y selecciónelo. Vamos a llamarlo Jugador. Ahora vamos a compilar. Recuerda compilar ahora volvamos al
reproductor y agreguemos esta interfaz de blueprint dentro de la nube Ajustes aquí abajo, busquemos BPI, Agrega el
reproductor, compilar aquí abajo Abrámoslo y
hagamos una autorreferencia. Al igual que antes, definimos que este tipo de variable
es este reproductor. Ahora lo hemos hecho,
volvamos aquí a la base enemiga. Hagámoslo después del modo de juego. Si solo golpeo aquí, déjame hacer clic derecho y
decir obtener personaje de jugador. Adelante y selecciona entonces vamos a golpear desde aquí y
decir obtener referencia de juego. Seleccione esto,
continúe y conéctese. Hagamos clic derecho y promocionemos
esto y lo llamemos Jugador. Sólo voy a
llamarlo Play Upon. Conectémonos aquí. Solo arrastra esto. Ahora tenemos esta
referencia lista y podemos seguir adelante y usar
la variable s fuera de ella. Sigamos adelante y usemos el daño
del cursor aquí abajo. Vamos a subir la jugada, busquemos el daño del cursor, selecciónelo y sigamos adelante y conéctelo aquí. Así como esto. Ahora, no necesitamos hacer
nada con esos para ver si esto está funcionando y lo
vamos a estar usando más tarde. Pero lo que puedes hacer es
escribir click, y buscar cualquier daño. La vamos a usar más tarde. Puedes imprimir una
cadena desde aquí. Simplemente puedes imprimir la cantidad de daño que estamos causando. Vamos, vamos a hacer clic.
Y cuando hago clic, se
puede ver que estoy aplicando 15 daños y todo
está funcionando como se esperaba. Sigamos adelante y solo
eliminemos esto por ahora. De hecho, eliminemos esto. Podemos hacerlo en
otra lección. Vamos a compilar, guardemos
todo y sigamos adelante.
40. 5.06 Cálculo de la salud: Ahora trabajemos con
el evento de cualquier daño. Si tienes el botón derecho, haz clic
aquí en la base Enemigo, buscas cualquier daño.
Vamos a usar esa. Esto se usa para cuando
alguna vez aplicas daño, vas aquí y luego
calculas el daño, y luego aplicas
cualquier daño que hayas hecho. Hagámoslo. Hagamos una nueva variable. Necesitamos uno llamado salud
actual. Ahora para este, vamos a
cambiarlo en un flotador. Vamos a compilar. Ahora para
esta salud actual, necesitamos tener salud. Porque realmente no podemos
empezar con cero. El enemigo no tiene cero, así que tenemos que colocarlo en alguna parte. Recuerda antes en
las tablas de datos que hicimos en la información del enemigo, agregamos salud a los enemigos. Sigamos adelante y
usemos eso y
configurarlo por defecto
cada vez que engendran La mejor manera de
hacerlo es aquí en
la jugada Begin cada vez que
el enemigo genere. Tomemos esta
salud actual y fijémosla. Mantienes pulsada la Alt y arrastras para configurarla. Vamos a establecerlo a lo que fuera en la tabla de datos.
Vamos a hacer clic derecho. Recuerda que hicimos una función de
biblioteca llamada get Enemy info. Ahora necesita el
nombre del enemigo. Y eso lo tenemos. Recuerda que estamos dentro de la base
enemiga y aquí
tenemos el nombre. Vamos a arrastrarlo y enchufarlo. Golpeemos desde
aquí y digamos break. Cuando rompemos, podemos ver todas
las variables para esta función de información
enemiga. Ahora vamos a ponerla
a la salud aquí. Empezamos con lo que sea
la salud que hayamos escrito aquí. Volvamos a la base enemiga. Da clic aquí, Oculta los
pines desconectados para que se vea más limpio Y vamos a conectarlo. Ahora esto está funcionando aquí abajo. Ahora tenemos la
salud actual establecida correctamente. Siempre que hagamos daño, quiero que tomes
la salud actual, digamos que la
salud actual es de 100. Para el primero aquí, vamos a decir 100 menos. Si solo escribes
menos o restas, restando el
daño que hemos hecho, diría 100
-15 Eso es igual a
lo que sea igual a
lo que sea Tenemos que volver a tomar esto
y volver a meterlo aquí. Se actualiza ahora
decimos 100 -15 es 85. 85 va a estar aquí. Ahora, sólo para asegurarnos de que no
vamos por debajo de cero. Porque te puedes imaginar
si sigo haciendo daño y llega a cero y vuelvo a hacer daño,
va a decir cero, -15 es decir -15 En vez
de ir a menos salud, usamos algo llamado pinza. Si arrastras de
esto y dices abrazadera, selecciona esta
llamada pinza flotante, porque estamos trabajando
con flotadores. Flotador de abrazadera. Lo que es la abrazadera, es básicamente
sujetar el valor, así que nunca puede ir
por debajo de cero y nunca podrá rebasar
algún valor que agregue aquí. Sólo voy a agregarle
esta salud actual porque en
realidad no estamos curando al jugador. Voy a sujetarlo
entre lo que sea que sea
ahora mismo y no podemos
ir bajo cero. Voy a
enchufarlo así. Sigamos adelante y
conectémoslo aquí. Ahora que en realidad está terminado, ahora
puedes hacer doble clic sobre
esto, hacer que se vea mejor. Adelante, haz esto.
Solo usemos una cadena de impresión de nuevo y veamos si
lo estamos haciendo correctamente. Si compilo, da clic en
play y hago daño. Entonces ahora son 85,
y luego son 70, 505-402-0510, y Y se puede ver
cada vez que hago clic, no puede estar por debajo de cero. Entonces ahora lo estamos
calculando correctamente.
41. 5.07 Diseña la barra de salud: Para diseñar la barra de salud, pasemos a la
carpeta UI. Vamos a escribir. Haga clic ahora, vayamos a la interfaz de
usuario y creemos
un plano widgit Nuevamente, un usuario widgit. Llamemos a esta barra
de salud WB. Vamos dentro de aquí. De nuevo, justo lo que dije antes, tamaño
de la pantalla. Vamos a hacer clic aquí. Configúrelo en un portátil genérico
que diseñamos para todas las pantallas. Vamos a crear este panel de lienzo. Recuerda, siempre
tenemos que añadir un lienzo. Ahora para la barra de salud, incluí algo para ti. Aún no lo importamos. Entonces vamos a los materiales de
costo aquí en los materiales de costo, quiero que vuelvas
a la interfaz de usuario. Podrías tener mucho más
UI de lo que tengo ahora. Esto se debe a que solo
sigo sumando a ella cada vez que sigo
desarrollando este curso. Tomemos ahora
éste y éste. Eso es lo que necesitamos hasta ahora. Aquí, déjame hacer clic derecho, hacer una nueva carpeta, llamarlo
imágenes. Vamos a abrirlo. Ahora vamos a abrir los materiales de
costo una
vez más vamos a
arrastrarlos a esta carpeta. Y ahora están subidos. Ahora bien, esto es mucho las selecciones, así que no quiero que esté borrosa Recuerda, solo podrías
seleccionar ambos. Haga clic derecho y vaya a Acciones
puntuales y aplique
papel a la configuración. Ahora
ya no está borrosa, se ve bien. Volvamos a la barra de Salud. Y dentro de aquí,
busquemos por ahora. Quiero que el texto esté en la parte superior, y luego quiero que la
Barra de Salud esté debajo de él. Necesitamos una caja vertical para esto. Tome una caja vertical en él. Dentro de la
caja vertical, necesito algo de texto. De hecho voy a copiar
el texto que hicimos aquí. Creo que se ve bien. Y sólo podemos
cambiar el color. Haga clic en el
control de texto C para copiar aquí. Da click en el control de cuadro
vertical V. Ahora para la barra de salud, es justo si
buscas barra de progreso
y esto es lo que es. Arrástralo a la caja vertical. Ahora para la caja vertical, vamos a redimensionarla para que podamos ver
realmente qué está pasando Ahora en lugar de que
llene toda la pantalla, queremos igual que
esta información enemiga, solo
queremos que
sea de cualquier tamaño que sea. Porque aquí solo lo vamos
a usar en el juego. No lo necesitamos para volver a llenar todo
el asunto. Haga clic en Pantalla de Relleno. Aquí arriba a lo deseado en pantalla. En lugar de que el
punto de anclaje esté aquí arriba, cambiémoslo a la
mitad de la pantalla. Cambiemos la alineación
de la caja vertical a 0.5 por 0.5 y la posición
a cero por cero. Ahora está en el medio aquí. Bien, se ve bien. Ahora para esta barra de progreso,
voy a dar click sobre ella. Y para el estilo,
cambiemos la imagen de fondo. La imagen de fondo
es esta barra de progreso. La imagen de relleno y la imagen de
marquesina, ambas
son este
proyecto de ley que tenemos, éste y éste Y hagamos clic en Compilar. Y podemos ver que no se ve muy bien cuando lo miramos. Y esto es porque aquí, creo que es la marquesina Siempre me olvido aquí en la
marquesina tamaño de imagen en la Y. Podemos cambiarlo.
Y ahora se puede ver que en realidad está cambiando. Podemos cambiar el
tamaño que queramos. Para éste, creo que
sólo voy a hacer 45. También puedes escalarlo aquí
en la X e y en la X. También
puedes escalarlo. Ahora no podemos
ver realmente una diferencia porque esta
caja vertical la está bloqueando. Porque podemos escalarlo aquí. Pero voy a escalarlo aquí en el tamaño al contenido.
Voy a hacer click en esto. Voy a escalar
la caja vertical, dependiendo de qué tan
grande sea el contenido. Ahora para esta barra, voy a reducir el tamaño a
algo así como 250. Siempre podemos
hacerlo más grande más adelante, pero ahora se ve bien. Ahora veamos si este
relleno está funcionando. Bajemos y
veas este porcentaje. Puede hacer clic y arrastrar para
rellenarlo en el porcentaje. Pero se puede ver que el
color no es correcto. Está aquí abajo en
el color de relleno. En lugar de ser azul,
sólo voy a
fijarlo para que sea blanco. Y siga adelante y
haga clic. Bien. Ahora ves que se ve bien. Bien, ahora hemos diseñado esto. Cambiemos el color
del nombre aquí arriba
o no el nombre, es básicamente la cantidad de salud por la
cantidad de salud. Vamos a cambiarlo a
tal vez un color más rojo. He elegido este color aquí. Creo que se ve bien. Ahora vamos a copiar esto. Básicamente solo mantén presionado shift, click
derecho, shift,
click izquierdo en este y este. En lugar de ser de este color, solo
hagámoslo Daka Creo que este color se
ve bien como el contorno. Déjame copiar
esto. Entra aquí y pégalo en el color lineal
hexadecimal. Haga clic. Bien, creo que este
color es bonito para la salud. Ahora ya terminamos con esto, puedes darle un poco de espacio. Se puede ver que está demasiado cerca,
tal vez al bar de salud. Puedes dar click
aquí arriba, puedes ir
al relleno aquí arriba
hasta la parte inferior. Podemos darle un relleno de seis. Está un poco alejada de la barra de salud, ahora
se ve bien. De nuevo, voy a dar click en la barra de salud y en el texto, y cambiar la visibilidad
a no comprobable. Entonces no podemos interactuar
con él, con el ratón. No bloquean al
ratón en el juego. Voy a golpear. Bien.
Ahora esto está terminado, así que sigamos adelante y
pasemos a la siguiente lección.
42. 5.08 Añade la barra saludable: Para agregar la barra de salud. Vamos a Planos
y abramos al enemigo. Una vez más, vayamos
al mirador. Vamos a hacer clic en,
simplemente haga clic aquí arriba. Ir a Componentes. Busca de nuevo Widget, igual que lo que
hicimos con el nombre. Es el mismo concepto. Puedes intentar hacerlo
tú mismo para practicar. Sigamos adelante y hagamos
clic en Widgets. Aquí solo podemos decir barra de salud. Ahora haga clic en, sólo
voy a decir widget de salud. Quizás widgets de salud. Porque si sigues codificando
el juego y se convierte en
un juego muy grande, siempre
es agradable tener nombres
muy descriptivos así que no
es demasiado confuso. Haga clic en el widget de salud por par. Cambiemos el
espacio a la pantalla. Siempre muestra
la interfaz de usuario a la pantalla. Cambiemos la cláusula
a tick de barra de salud. Este llamado Dibujar
un Tamaño Deseado. Bien, hagamos clic en Reproducir y veamos cómo se
ve. Y aquí está. Vamos a golpearlo
bajo el nombre. Da click en él, Wrike. Golpearlo un poco
aquí. Haga clic en reproducir. Y vamos a
golpearlo aún más abajo. Haga clic en reproducir.
Esto tal vez sea demasiado. En lugar de -40
digamos menos 37. Haga clic en reproducir. Creo que
se ve bien. Quizás menos 36, ahora
es demasiado TOC. Haga clic en reproducir. Esto se
ve mucho mejor. A lo mejor esto es a lo
que podamos ir. Como puede ver, todavía necesitamos
actualizar la barra de salud, tanto el texto como
la barra de salud aquí. Hagámoslo en
la siguiente lección.
43. 5.09 Actualización de la barra de salud: Bien, para actualizar
la barra de salud, primero
vayamos a la interfaz de usuario. Y abramos
la barra de salud. Dentro de aquí, vamos a
hacer clic en el texto primero. Para este, en lugar
de enviar mensajes de texto a información enemiga, se llama salud de texto. El segundo aquí,
la barra de progreso, voy a
llamarla barra de progreso. Vamos a llamarlo también
hazlo variable para que podamos. Pasemos ahora a la gráfica. Eliminemos todo
esto. Escribamos click y hagamos un
nuevo evento personalizado. Llamemos a esta actualización. Ahora para éste, lo que
estamos tratando de hacer, de nuevo, siempre que programemos, solo piensa en qué está
tratando de hacer ahora mismo? Estoy tratando de actualizar
esta barra de salud. Bien. ¿Cómo actualizamos
esta barra de salud? La forma en que lo actualizamos es que estás tratando de
cambiar este porcentaje, estás tratando de cambiar esto. Siempre hay un
buen stock para solo analizar lo que intentas
hacer para este porcentaje. Vamos a la gráfica y
tomemos esta barra de progreso. Si no sabes cómo
se llama, solo trata de buscar por ciento. Ya puedes ver aquí, puedes usar esto en función de porcentaje
establecido. Sigamos adelante y
conectemos este porcentaje establecido. Tienes que echarle un vistazo aquí. El porcentaje no es 0-100 0-1 En realidad tenemos que
hacer alguna división aquí Porque aquí en
la salud de actualización, éste va a ser llamado dentro de la base enemiga cuando sea. Recuerda aquí
calculamos la salud después de hacer daño
que hicimos eso. Desde aquí podemos llamar a
esta actualización UI de salud. Aquí podemos tener un enchufe
a la salud actual. Voy a dar click aquí, Hacer una nueva variable, solo regular aquí,
para que podamos ver, hacerla un flotador,
Llámala salud actual. Ahora bien, ¿cómo dividimos esto si no eres
demasiado fuerte en matemáticas? Por ejemplo, digamos que la
salud es 100 dividida por, así podemos hacer este
signo o dividir a la derecha. Vamos a dividir esto por un número que es
el máximo de salud. Porque por ejemplo, se
puede decir,
digamos que le hago daño a este enemigo y el
enemigo tiene 100 de salud. El daño en este momento
para el cursor es 15, dice 100 -15 es 85. Entonces se puede decir 85/100 y
obtendrá el porcentaje. Si no eres demasiado
fuerte en matemáticas, siempre
puedes llevar
aquí tu navegador. Se puede decir, digamos que
tenemos 85/100 Enter. Y luego se puede ver que
en realidad se muestra correctamente. ¿Bien? Entonces así es como
queremos hacerlo porque el máximo es de
100, que es uno. Este porcentaje va 0-1
Digamos que la salud actual dividida por la salud máxima actual
dividida por la salud máxima. Este es el porcentaje, Ahora va a ser correcto. Vamos a compilar ahora. Pasemos a la base de NM
e intentemos usar esta. Recuerda, tienes que hacer costos ahora porque estás
dentro de la barra de salud Este es el mismo concepto
que lo que hicimos con el nombre. Hagámoslo. Por supuesto, puedes seguir adelante y crear una interfaz de
blueprint para ello. No es mala idea. Puedes hacerlo, está bien. Pero pienso algo que sólo
voy a
costar a una vez, como si solo voy
a usar esta función en todo mi juego,
tal vez dos de ellos. No quiero crear una interfaz de blueprint para
cada interfaz de usuario que creo Sigamos adelante y
eliminemos este nodo de impresión. Lo que podemos hacer ahora, vamos a hacer un nuevo evento personalizado aquí. Hagamos un evento personalizado
llamado update health. Y este va a
llamar a la actualización de la interfaz de usuario de salud. Arrastremos este widget. Vamos a conseguirnos
objeto widget igual que antes. Digamos que costó dos
y lo llamamos salud Costo a la salud Conectado. Aquí queremos llamar a la
actualización actualización de arrastre de salud. Sigo adelante y
conecto todo. Ahora necesitamos
enchufes a la salud actual,
actual y a la salud, la salud actual
que ya tenemos aquí. Sigamos adelante y conectémoslo. Porque lo pusimos
aquí para que podamos hacer eso para la salud máxima, necesitamos la
salud máxima del enemigo. ¿Cómo hacemos esto? Recuerda,
hicimos una información enemiga aquí, es básicamente esta. Básicamente puedes simplemente
copiar este control C, ir aquí abajo, controlar V, o puedes reescribirlo si
quieres algo de práctica Intenta escribir esto de nuevo
y mira cómo lo hiciste. Sigamos adelante y conectémoslo aquí. Ahora estamos
actualizando la salud. Recuerda, tenemos que llevar a cabo
este evento antes de que funcione. Sólo voy a ejecutar
esta actualización de salud cada vez que haga daño. Por aquí podemos llamar a actualización de
salud y llamarlo aquí. Ahora lo que estamos haciendo
es que estamos haciendo daño con el ratón,
estamos aplicando daño. Y el daño que
aplicamos, lo estamos calculando y actualizando la
salud actual para el enemigo. Entonces estamos actualizando el I aquí. En realidad, aquí, actualizar la salud. A lo mejor podamos tener este aquí abajo
solo para
que tenga más sentido
Programación sabia, voy a sacar
esto de aquí. Voy a hacer
un insumo aquí abajo, un flotador llamado la salud
actual. Voy a enchufarlo así
en su lugar. Podemos enchufar por aquí. Creo que tiene más sentido. Podemos hacerlo en ambos sentidos, pero a veces cuando programas, puedes hacer las cosas de varias maneras. Pero algunas formas son mejores
prácticas que otras. Creo que este es un poco mejor porque estamos actualizando la
salud actual por aquí. Bien, actualizar la salud
se está actualizando aquí, y luego estamos actualizando la interfaz de usuario que actualiza
la barra de salud. Al principio van a ser 100, pero si hacemos clic en Reproducir, puedes ver que sigue siendo cero
en la salud. Esto se debe a que
sólo se va a actualizar. Ahora cada vez que haces
clic en el enemigo, como ves aquí, si
no haces clic en el
enemigo, sigue siendo cero. Esto se debe a que tenemos que ejecutar este código cada vez que
engendramos al enemigo Aquí arriba, cuando actualizamos la interfaz de usuario enemiga y actualizamos
la salud actual, también
quiero decir
actualizar la salud. Y haz esto en vez
de hacerlo aquí, recuerda que ya
lo pusimos dentro de este evento. Podemos eliminar esto
y podemos simplemente enchufarlo aquí en
su lugar y conectarlo. Vamos a compilar y hacer clic en play. Y ahora ves que está configurado a lleno cada vez que el enemigo genere. Siempre que haga clic
va a bajar. Ahora está funcionando ahora
solo necesitamos lo final, y eso es actualizar el texto. Eso es mucho más fácil
de hacer para este texto. Vamos a arrastrarlo y arrastrarlo
aquí y decir el texto establecido. Vamos a establecer texto aquí. Ahora para el texto
necesitamos fijarlo a cualquiera que sea la salud
actual. Arrástralo hasta aquí. Y vuelve a arrastrar esto hacia abajo. Haga doble clic en él,
haga que se vea mejor. Compila y haz clic en reproducir. Ahora ve la salud es de 100. Si hacemos clic,
va a bajar. Ahora podemos volver a intentarlo
en otra cosa. Si vamos a los planos, abre el modo de juego,
el nivel actual a algo así como el nivel tres Siempre que haga clic en el enemigo, va a actualizar
la salud correctamente. Nuevamente, ahora todo
está funcionando, y volvamos a establecer el
nivel actual en uno, compilar, guardar todo,
y sigamos adelante.
44. 5.10 Flipbook de Hit de enemigos: Ahora que el daño está funcionando, cuando hacemos clic en el enemigo, el enemigo se daña. Para hacerlo un poco
mejor, juguemos el efecto de golpe cuando el
enemigo haya sido golpeado. Eso se verá mucho mejor. Recuerda dentro
de la tabla de datos que ya hicimos en
la info enemiga, ya
agregamos aquí los libros de flip de
animación hit. Vamos a usar esos. Vamos a cerrar esto.
Volvamos a los enemigos. Abre la base enemiga. Dentro de la base enemiga. Bajemos aquí y
hagamos un nuevo evento personalizado. Llamemos a esto un efecto de golpe. Hagámoslo aquí. Simplemente
queremos jugar al flip book. El enemigo volvió a golpear flip book, igual que antes de que podamos
tomar el flip book. Básicamente es este sprite de aquí. Toma el sprite arrastrando de los sprites y
podrás escribir Puedes intentar leer. Qué
puedes hacer con todo esto. El que queremos usar es este
libro volteo de un set porque
queremos ponerlo en el flip book, ya
tenemos el flip book
dentro de la info enemiga. En realidad sólo voy a copiar esto aquí arriba. Pégala abajo y aquí vamos a esconder los pines
desconectados Hagamos click aquí abajo. Y sólo voy a
mostrar la exitosa animación. Y entonces voy
a conectarlo aquí. Ahora va a reproducir
la animación hit. Ahora el efecto hit.
Siempre que hagamos clic ahora tienes que
ver ¿dónde tiene
sentido llamar a este evento? Tiene más sentido cada vez que
el enemigo recibe daño. Después de actualizar la salud, también juegas el evento de
efecto hit aquí abajo. Y lo va a
jugar. Hago clic en Jugar y dar clic en el enemigo. Se puede ver que lo está jugando. No obstante, ahora mismo
está encendido para siempre. Tenemos que arreglarlo. Tenemos que ponerlo de nuevo el libro de flip normal después de
que el enemigo haya sido golpeado. Lo que voy a hacer es que sólo voy dejar que este hit flip book, voy a jugar una vez y luego voy a
volver a cambiar al normal. La forma en que podemos hacer esto es que podemos tomar este sprite aquí, podemos arrastrar aquí
y decir flip book Puedes intentar leer
lo que puedes usar aquí, el que vas a
usar es este. Obtener la longitud del flipbook. Entonces me voy a retrasar
por esta cantidad de tiempo. Voy a retrasarlo por la
longitud del flip book. Una vez terminado esto, podemos llevarlo aquí. En lugar de copiar y pegar esto, solo
voy a usar
la animación inactiva aquí Dejémoslo retroceder así. Sólo tienes que copiar esto, establecer flip book aquí y puedes volver a
colocarlo aquí abajo. Voy a hacer clic para hacer
un nodo de ruta trasera y algo así. Esto debería funcionar simplemente bien. Podemos intentar jugar ahora si
hacemos clic en el enemigo, y aquí está ahora
voy a aumentar la cantidad de tiempo que este efecto
hit está jugando, porque está jugando demasiado
lento y se ve raro. Voy a volver a mis activos y abrir los personajes. Ahora para este hit, tenemos que
aumentar los fotogramas
por segundo aquí, así que juega mucho más rápido. La forma en que podemos hacer esto es que
simplemente haga clic en Control Z aquí. Si solo selecciono todo el
hit one, solo mantén el control de
todos los libros de hit flip. Lo que puedes hacer es volver a hacer clic
derecho, acciones de
activos, selección
a través de matriz de propiedades. Para que puedas editarlos todos
a la vez. Y luego fijemos los
fotogramas por segundo. Voy a establecer a
40 cuadros por segundo. Déjame guardar todo el juego
y ver cómo se ve. Así es como se
ve. Parece mucho mejor que el
enemigo está siendo golpeado. Eso fue todo por el
efecto hit. Muy, muy fácil. Ahora sigamos adelante y
trabajemos con la muerte enemiga.
45. 5.11 Muerte de enemigos: Ahora por la muerte del enemigo, obviamente el enemigo muere
cada vez que la salud es cero. Tiene más
sentido hacerlo aquí. Siempre que dañamos al enemigo, verificamos si la salud
actual aquí, en realidad no
estamos
comprobando nada. Básicamente estamos calculando la salud actual y
estamos actualizando la salud. Antes incluso de actualizar la salud, quiero comprobar si mi
enemigo está muerto o no. Sigamos adelante y hagámoslo aquí. Siempre que esté la salud, el enemigo debería morir por aquí. Yo sólo voy a arrastrar
y decir si la salud es mayor que cero
y hacer una rama seguir adelante y conectar esto. Siempre que la salud
sea mayor que cero, solo
queremos continuar con
lo que hayamos hecho antes. No obstante, si la salud
no es mayor que cero, esto significa que la salud es cero porque la
sujetamos a cero, por lo que no puede ser negativa. Si es cero, sigamos adelante
y hagamos morir al enemigo. Yo sólo voy a
hacer una nueva variable, un lingote llamado B está muerto. Normalmente agrego una B delante
de mis variables de lingotes. Y puedes ver si lo arrastras aquí, no puedes ver la B. Esto suele hacerse en
C plus plus y
también es mucho más fácil buscar si
tienes un juego más grande. Ahora vamos a agregarlo y establecerlo en true. Siempre que la salud
no sea mayor que cero, significa que el enemigo está muerto. Entonces podemos establecer esto para que sea cierto. Además, solo sigue actualizando la salud
porque tenemos que actualizar la salud también
y hacer el efecto hit. Ahora para este podemos hacer doble clic y hacer una ruta
trasera nodos, no
se ve mal,
así como esto. Ahora, ¿qué podemos hacer con
éste? Con éste. Obviamente aquí en
el efecto hit, cada vez que golpeamos al enemigo
que hicimos antes. No quiero reproducir
la animación ociosa cada vez que muera el enemigo. Llevemos aquí a este matón. Después de retrasar esto, la longitud del
libro de sprites , hacemos un retraso En lugar de reproducir la animación
ociosa al instante, tenemos que comprobar si el
enemigo está muerto o no. Ataquemos aquí y hagamos una rama y preguntemos,
¿está muerto el enemigo? Sí, el enemigo está muerto. Bien, entonces queremos
jugar un evento de muerte. Realmente no hemos
creado uno todavía, así que vamos a ir por aquí, haga clic
derecho, Haga un nuevo evento
personalizado llamado muerte. Podemos hacer algo
con esto más tarde, pero aquí arriba si el
enemigo está muerto, quiero jugar el evento de la
muerte aquí abajo. Si el enemigo no está muerto, quiero reproducir la
animación ociosa como lo hice antes. Simplemente eliminemos este
y volvamos a conectarlo aquí. Y haga doble clic una vez más. Bien, por aquí en
el evento de la muerte, lo que queremos
hacer, simplemente queremos reproducir la animación de la muerte. Entonces volvamos a
tomar,
igual que antes, todo esto aquí
junto con el retraso. Voy a copiarlo. Voy a pegarlo aquí abajo. Y voy a
conectarlo así. En lugar de reproducir
la animación de éxito, voy a desconectarla, esconderla todo, y solo
mostrar la animación de la muerte. Adelante y conecta esa. En cambio, lo
vamos a retrasar. Después de que lo retrasemos,
quiero destruir a Acta. Quiero quitar este
Acta del mapa. Sigamos adelante y hagamos
clic en Plano. Ahora, cada vez que hago
clic en el enemigo, ahora el enemigo muere. Se puede ver que el enemigo
desaparece. Y eso se ve bien. Básicamente se puede ver que
la animación de la muerte también
es rara, el enemigo cae.
Tenemos que arreglarlo. Antes de hacer esto,
también tenemos que incrementar el nivel, porque cuando muere el enemigo, queremos que el próximo
enemigo esté ahí También puedo ver que
acabo de ver un dólar. Si haces clic demasiadas veces, puedes seguir haciendo clic y no
quiero hacer eso. También tenemos que hacer un check
por aquí en el unclicked. No queremos hacer clic en el enemigo siempre que el enemigo esté muerto. Movamos esto y
digamos si el enemigo está muerto. Y voy
a escribir no matón en. Esto significa que si el
enemigo no está muerto, Si está muerto es falso, esto es lo que significa aquí. Si el enemigo no está muerto, entonces podemos hacer
una rama aquí y preguntar si el enemigo no está muerto. Podemos seguir adelante
y aplicar daños. Si el enemigo está muerto, no
queremos hacer nada. Demos clic en Planear ahora y
ver si se corrige este error. Y yo puedo enviar spam,
se puede ver caja ahí, así que todo está funcionando de nuevo. La animación de la muerte es
rara. Tenemos que arreglarlo. Pero sigamos adelante en
la siguiente lección y trabajemos en el incremento
del nivel
46. 5.12 Incrementar el nivel: Bien, para incrementar el nivel, creo que lo mejor es que lo hagamos
en el modo juego porque aquí
es donde se controla el
nivel actual Hagámoslo aquí, por aquí. Hagamos un nuevo evento personalizado. Llamemos a éste Nivel de Corriente
de Incremento por aquí. Muy sencillo. Solo queremos tomar
el nivel actual que queremos arrastrar
aquí y decir plus, plus porque
plus plus significa que incrementaste en
uno y luego lo configuraste Es lo mismo que
hacer esto y decir más uno y luego lo
pones así. Es el mismo método. Esto es mucho más corto. De nuevo, recuerda, plus
plus significa que agregas uno. Si necesitas agregar
dos en el futuro, no
puedes hacerlo así, tienes que hacerlo así. Pero en
realidad no tiene sentido. Nuestro nivel solo está
incrementando en uno. Hagámoslo de esta manera. Ahora hemos incrementado
el nivel en uno, pero tenemos que asegurarnos de
no rebasar el nivel máximo. Voy a hacer una
nueva variable llamada max level y voy a
hacerla como un entero también. Aquí puedes escribir
cuál es el nivel máximo. En lo que va de la tabla de datos, puedo ver que mi
nivel máximo es 11 aquí. Voy a escribir 11
como mi nivel máximo aquí. Voy a arrastrar hacia abajo y
decir si el nivel actual es menor o igual
a mi nivel máximo, entonces podemos seguir adelante
y engendrar al enemigo Porque cuando
incrementas el nivel, también
tienes que
engendrar al siguiente enemigo Voy a preguntar aquí, mi nivel actual menor o
igual al nivel máximo, no
hemos
superado el nivel máximo. Si eso es cierto, quiero
engendrar al próximo enemigo. Recuerda, para el enemigo engendrado, ya lo hicimos en
el mando de juego Si voy al mando de juego, tenemos este enemigo engendrado Sigamos adelante y usemos eso. En realidad, también
lo usamos aquí. Para que puedas copiar esto. O si quieres
recordar cómo lo hiciste, puedes tomar el controlador del
reproductor. Y en realidad veo que no creamos una variable para esta. Vamos justo aquí, promocionemos esto a una variable, llámalo controlador de jugador. Y conectamos y conectamos
éste con éste en su lugar. En realidad, vamos a
desconectarnos porque ahora ambos están conectados. Mantenga pulsada la tecla Alt
y haga clic para desconectar y conectar solo esta. Adelante, póngalos
así. Ahora, aquí abajo, tomemos
el controlador de juego y digamos engendrar enemigo conectado Recuerden que hicimos esta
función aquí llamada conseguir enemigo para engendrar
para el nivel actual Básicamente lo que eso fue es que
acabamos de obtener el nivel actual, obtuvimos el nombre del enemigo
porque es un nuevo enemigo. Porque recuerden que
incrementamos el nivel en uno. El nivel actual se
incrementa en uno. Se va a llevar
al siguiente enemigo en la tabla de datos, si fuera el. Ahora va a incrementar
el nivel en uno. Ahora va a tomar el Roe,
El pícaro va a ser
encerrado en aquí y engendrar Sigamos adelante y aquí. Ahora eso debería funcionar bien. Vamos a incrementar el nivel. Tenemos que ejecutarlo en alguna parte. Y vamos a atropellarlo
en el enemigo. Si vuelvo a abrir al enemigo, cada vez que muera el enemigo, justo antes de que destruyamos el Acta. Sigamos adelante e
incrementemos el nivel. El nivel de incremento está
en el modo de juego. Ya tenemos una referencia. Tomémoslo,
digamos incremento. Si puedo deletrear aquí,
incrementar el nivel actual, entonces destruimos el acto Vamos a hacer clic en quejarse. ¿Ves qué pasa si hago clic en jugar? Yo mato al enemigo,
el enemigo muere. Los siguientes vanos puedo
hacer clic de nuevo, el enemigo muere. Se puede ver que las
animaciones de la muerte necesitan ser arregladas. Y podemos hacerlo de una
manera fácil, pero como puedes ver, todo
está funcionando bien. Y ahora parece un juego. Ahora puedes hacer clic en los
siguientes engendros enemigos después y así sucesivamente Impresionante, Ahora que es
muy buena progresión. Sigamos adelante y
guardemos todo, y arreglemos las
animaciones de la muerte en la siguiente.
47. 5.13 Arreglo de las animaciones de muerte del enemigo: Para arreglar las animaciones de la muerte. Pasemos a los bienes
y caráctanos por aquí. Tenemos que arreglarlos porque
hay algo mal con estas animaciones de muerte
si hacemos clic en ellas. En lugar de hacerlo aquí,
creo que tenemos que
hacerlo en el sprite, abrir las texturas y
abrimos la noche, por
ejemplo, y es
la muerte una Muerte Ábrela, puedes
ver O punto está aquí, por
ejemplo, vamos a
revisar la noche,
la noche, vamos a que la noche sea el nivel 11 por
aquí para la noche. Yo sólo voy a poner la
salud a una en realidad, solo
voy a
dejar que esté aquí. Voy a poner mis daños. Eso es mucho más fácil si abro controlador
del reproductor
o el reproductor más bien. Y el daño del cursor. Sólo voy a configurarlo en
algo súper alto para que podamos hacer el modo de juego instantáneo. Pasemos al modo de juego aquí. Vamos a establecer el
nivel actual en 11 jugada. Puedo dar click aquí, el enemigo
es empujado a un lado. Esto se debe a que el punto de
pivote está en un lugar equivocado en el punto de pivote En lugar
del centro central. Hay que cambiar
este a costumbre. Ahora hay que jugar con
el punto de pivote aquí. Se puede jugar con él y se
puede ver qué pasa. Esta es la razón por la
que no necesitamos jugar con ella. Uno que queremos tocar es éste. Ahora es a las 24. Si lo acabo de decir a
costumbre otra vez, 24, Lo que quiero que
hagas es decir algo así como menos ocho
suele ser un buen número. Menos ocho. Se puede
ver que es el medio. Ahora trata de incrementar en
ocho o decir menos ocho. Por lo general para piloto
va más ocho. Menos ocho, Menos
ocho parece funcionar. Tenemos que hacerlo en todos ellos. Si vuelvo a abrir los activos, personajes, texturas, ahora tengo que hacerlo
por todos ellos. En lugar de hacer eso me
permite hacer clic derecho, ir a Asset Action
It selection en matriz de
propiedades para el sprite Vamos a establecer el
punto de pivote para que sea personalizado. Ahora no puedo cambiar, por alguna razón el punto
de pivote personalizado aquí. Tengo que hacerlo de forma manual. No creo que podamos hacerlo. Tenemos que hacerlo de forma manual. Pero establecemos el
punto de pivote a la costumbre. Ahora vamos a hacer
clic en el primero. Digamos menos ocho, igual que antes, tenemos que
hacer eso con todos ellos. El siguiente menos ocho, el siguiente menos ocho, siguiente menos ocho, y el último menos ocho. Ahora veamos si
eso está funcionando. Vamos a hacer clic en play. Ahora bien, si matamos a este enemigo, animación se ve bien. También puedo ver un bicho. Si notas si hago clic en
jugar y el enemigo muere, el enemigo
vuelve a aparecer, desapareciendo Para que puedas ver al enemigo o un fotograma genera
antes de desaparecer Sigamos adelante también y
arreglemos eso aquí también, mientras vemos el error. Vamos a Blueprint.
Vayamos al enemigo, a la base enemiga. Está pasando aquí en la
muerte porque lo retrasamos. Entonces nosotros nivel incremental y
luego destruimos al actor. Si quieres, puedes
llevarte este sprite aquí, déjame mover todo esto Podemos decir aquí y
decir es looping, o establecer el looping Establecer el looping, podemos establecer
el looping para que sea falso. Entonces puedes intentar
ver aquí cuando
mato al enemigo para hacer esto. Pero tal vez ahora también va a establecer que el ciclo sea
falso para el siguiente Veamos en realidad lo que hace. Probablemente lo hará si
voy al modo de juego. Ahora abre el modo de juego. Establecer el nivel actual en
algo así como nueve play. Ahora bien, si mato a este tipo, siguiente, bien, está bien. Ahora todo está funcionando bien. Eso soluciona el problema. Volvamos al nivel 11. Se puede ver que
arregla el punto de pivote, arregla la animación de muerte
para este tipo. Aquí tienes que
probarlos todos para el nivel uno. Déjame mostrarte un par de ellos y tengo que
hacerlo en mi tiempo, contrario el video será demasiado largo. Pero déjame
mostrarte a dos de ellos. Es el siguiente, este de aquí. Vayamos a Texturas. Encontremos el
aquí abajo, la Muerte. Voy a seleccionarlos a todos. Haga clic derecho en él. Selección en Matriz de Propiedades, aquí
en el sprite Cambiemos el
punto de pivote a personalizado. Vamos, vamos a cerrar esto. Ahora, abre cada uno aquí. Ahora para éste
se puede ver que está aquí arriba. A lo mejor tenemos que arreglar la
y y la X. Voy a
decir menos ocho. No es menos ocho,
es más ocho. Más ocho, de nuevo para
volver al default. Y más ocho, otra vez,
tal vez necesito hacerlo. Más ocho otra vez,
así, son 48. Vamos a tratar de hacer esto. Más 16 básicamente en total. Más 16, más 16. Tengo que adivinar y ver
que es correcto por aquí. Además 16. 16 para
este también. Vamos a hacer clic en Reproducir. Se puede ver que la
animación de la muerte es correcta. Por lo ahora la muerte es correcta. Tenemos que volver a hacer esto para
todos ellos. Más ocho menos ocho píxeles es siempre la mejor
opción para ir con. El siguiente es el Roe. Probemos la E. Puedes probar
el resto de ellos tú mismo. Muerte hacemos clic en selección
en Matriz de Propiedades. Aquí dentro, vamos a Sprite. Cambie el punto de pivote
o el modo de pivote a personalizado. Vamos a abrirlo
en la primera otra vez, Digamos más ocho. Creo que es más
ocho otra vez. Más 16. Hagámoslo por
el resto de ellos. Digamos que
más 16 por aquí también. Más 16, creo que es
el mismo número. Copiemos este
número y básicamente peguemos este número en
todos ellos así. Solo ten cuidado, no
siempre es el mismo número en la X. Solo presta atención ahora juguemos y veamos Ahora la
primera muerte es correcta, la segunda muerte es correcta. Bien, hagámoslo. Ahora lo voy
a hacer por mi cuenta. Básicamente solo editarlos en la matriz de propiedades
a medida y luego seguir adelante y
decir más ocho o menos ocho hasta que se arregle. Bien, ahora estoy acabado. Cuando hago clic ahora, puedes ver cada vez que
mato a los enemigos, todos
están fijos con respecto a
la animación de la muerte. Entonces todo se ve bien. Sólo voy a cerrarlo. Ahora eso fue todo. Recuerda volver al controlador
del jugador controla el modo de juego y establece
el nivel
actual uno si quieres. También configura los
controladores del reproductor para que no jueguen. Controla el
daño del cursor de los jugadores a tal vez como 15. Nuevamente, compilar y ahora ya terminamos con esto y pasemos al siguiente.
48. 5.14 Haz clic en Hit VFX: Bien, entonces lo que
podemos hacer ahora es que podemos hacer un efecto de golpe cada vez que
estemos golpeando al enemigo. Entonces podemos tener algún tipo
de efecto que aparezca. Así efecto visual
cada vez que estamos golpeando. Sigamos adelante y hagamos eso. Ahora, para el efecto hit, te
he dado algo
dentro del material del curso. Si lo abres por aquí
en los materiales del curso, quiero que abras la interfaz de usuario. En la UI,
te he dado un efecto hit aquí. Pongámoslo en las imágenes. Así que déjame
arrastrarlo hasta aquí. Agrégalo ahora es pixel. Voy a hacer clic con el botón
derecho en acciones y aplicar
papel a la configuración. Esto es lo que vamos a añadir. Sólo un simple efecto para esto. Nuevamente, se trata de algunos
sprites juntos. Vamos a hacer clic derecho como
antes y extraer sprites. Adelante y selecciona
Cuadrícula por aquí. Para la grilla, tenemos que
adivinar de qué se trata. Tal vez 64 por 64. Se puede ver que
en realidad es menos que eso. Pero lo que podemos hacer es que
se vea que es de dos en dos. Entonces en realidad podemos dividir esto, podemos decir dividido por
dos, o puedes escribir 32. Eso también está bien, dividido por dos y será
correcto, 32 por 32. Sigamos adelante y
extrayamos todo esto. Déjame escribir, haz clic aquí solo para que no esté
abarrotado con todo Déjame hacer una nueva carpeta, y voy a
llamarla Texturas. Y adelante y
selecciona todo esto. Y selecciona esto también. Y agrégalo aquí y aquí. Vamos a hacer un
libro volteo con éste. Selecciono todo esto
y puedo escribir Click I can do, quit flip book. Vamos a llamarlo flip
book. Efecto de golpe. Vamos a abrirla. Y así es como se
ve ahora
para el efecto hit. Creo que los fotogramas por
segundo por 15 está bien para mí. Se ve bien. Siempre podemos
ajustarlo en el juego. Vamos a cerrarlo por ahora. Y arrastra esto a
la carpeta de imágenes. Está aquí afuera, y ya
podemos usarlo. Esto se puede hacer de dos maneras. La primera forma en la que
puedes hacerlo es en el plano, igual que antes Al igual que los otros sprites, en realidad
puedes agregar
el sprite aquí Siempre que hagas clic en el enemigo, puedes jugar al sprite
para que haga algún daño. Sin embargo, la desventaja
es que solo puedes jugar una instancia
del efecto de daño si haces clic dos
veces una tras otra. Va a cancelar
el último efecto y va a jugar el nuevo
. Eso no me gusta. Quiero generar
tantos efectos como quiera,
dependiendo de lo rápido que sea el jugador Al hacer clic dijo, sigamos
adelante y los planos. Y aquí afuera, hagamos
clic derecho en hacer una nueva clase de plano y simplemente hagamos un actor simple que contenga este libro flip Actor de Creta. Llamemos a
éste BP hit effect. Vamos a abrirla aquí. Agreguemos un libro volteado. Si buscas flip book, puedes seguir adelante y agregarlo. Yo sólo voy a
llamarlo Hit Effect. Ahora podemos agregar el libro
volteo aquí. Es este libro volteado. Efecto de golpe. Adelante
y selecciónelo. Y aquí lo puedes ver. Ahora para este efecto de golpe, solo
voy a bajar
a la colisión y
asegurarme de que no tenga ninguna colisión porque no
quiero,
para la colisión,
voy a quitar esta, generar eventos de
superposición. Voy a decir que no aquí
por los presets de colisión. Sólo voy a
decir que no hay colisión, no tiene ningún tipo de
colisión. Yo y compilo y
vamos a cerrarlo. Ahora quiero engendrar esto
cada vez que haga clic en el enemigo. Y recuerda que el desove
siempre se hace en el control
del jugador Así que sólo voy a
entrar de aquí para esto. Sólo voy a hacer
un nuevo evento personalizado. Voy a llamarlo spawn
effects igual que antes, arrastra aquí y di
spawn Acta de clase Ahora bien, ¿qué cláusula
queremos generar? No tenemos que
conectarlo a aquí porque es solo un valor estático y
es el efecto hit, blueprint que queremos generar Voy a decir siempre
engendrar, ignorar colisiones. Ahora para la transformación de spawn, depende de dónde golpeemos con el mouse para encontrar este valor Lo que podemos hacer es hacer clic
derecho y
usar esta función. Si solo buscas mouse, si no sabes cómo
se llaman, así es como hago yo. A veces puedes echar
un vistazo a todos esos. Lo que podamos usar para esta
instancia, podemos usar esta. Convierta la ubicación del mouse
en el espacio mundial. Dondequiera que esté el ratón, vamos a generar el efecto
donde el jugador hizo clic Sigamos adelante y
hagamos eso. Vamos a conectarlo aquí así. Va a convertirlo en una transformación para nosotros
y conectarlo. Vamos a tratar de hacer esto. Por ahora, tenemos que generar
el efecto hit en alguna parte. Vamos a engendrarlo dentro
del enemigo aquí. Siempre que hacemos clic en el enemigo
y el enemigo no está muerto, aplicamos el daño, pero también queremos
jugar el efecto de golpe. Golpeemos aquí desde
el controlador del jugador. Y realmente no tenemos una referencia al controlador del
reproductor. Hagámoslo. Ahora déjame arrastrar este modo de
juego por aquí. Déjenme decir controlador. Y selecciónala. Esto ya
lo hemos hecho antes. Podemos arrastrar y decir, obtener la referencia
del controlador del jugador. Ya tenemos esa interfaz de
blueprint. Vamos con razón podemos
promover esto a una variable llamada controlador de
jugador. Sigamos adelante y
conectémoslo aquí. Esto lo tenemos muy rápido. Ahora podemos llevar este
controlador de reproductor por aquí y decimos como lo
llamemos. Si solo vuelvo, no lo
recuerdo, vuelvo aquí. Lo llamamos spawn hit
effect, arrastre aquí. Y digamos spawn hit effect, respondiéndolo cada
vez que aplicamos daño por delante y
compilamos y guardamos Ahora bien, si solo hacemos
clic en el enemigo, vemos que en realidad lo engendramos aquí Pero ahora se puede ver que
está dando un giro para siempre. Tenemos que arreglarlo también. También viste que el efecto es básicamente dentro
del enemigo. No quiero que eso
también lo arregle, siendo
el efecto
dentro del enemigo. Esto se debe a que, recuerden
que estamos trabajando con dos D y básicamente estamos
controlando este valor verde. El valor verde,
recuerda que es la y, mueves las cosas por
detrás o por delante, en lugar de que sea cero
en la ubicación del mouse. Tomemos
esto y digamos más, intentemos decir
más uno en la y, sigamos adelante y
volvamos a
convertirlo aquí. Jugar y ver más
va detrás del enemigo. Si
en su lugar solo borras esto y dices menos, menos uno, sigue adelante
y vuelve a conectarlo. Jugar. Ahora se puede ver que
está frente al enemigo. Bien, ahora sigamos adelante
y tenemos que destruir. Porque recuerda es muy importante que
destruyas acto. Porque si sigues pinchando, recuerda que estamos desove de actos Solo echa un vistazo aquí,
cuántos actores estás engendrando. Cada vez que hago clic,
estoy engendrando un actor. Imagina que si sigues
pinchando 2 horas después, vas a
tener tantos actores que vas a
chocar tu propio juego. Asegúrate de que cada
vez que generes algo, también
lo
eliminas cuando ya no lo necesites Dentro de este efecto hit
en la jugada de inicio, solo
voy a
tomar este efecto hit. Esto es básicamente
este libro flip aquí. Ahora voy a decir looping
set es looping para ser falso, no
quiero que bucle para siempre Además, al igual que antes de
usar esta longitud de libro volteo, obtener la longitud del libro volteo, y luego voy a
hacer un nodo de retardo. Después de que el efecto haya
jugado una vez, voy a destruir al actor. ¿A qué actor voy a ir? Sólo voy a destruirme a mí mismo,
es decir, voy a destruir
este plano aquí Y cuando hago clic en play ahora, y también le presto atención a los actores aquí arriba,
hago clic aquí, engendro un actor,
pero se remonta a 15 y solo juega una
vez, como pueden ver aquí A pesar de que
aquí hago spam y hago clic, hago algún daño. Se ve bien. Siempre volverá al
15 porque destruye cada efecto que creo
que está funcionando perfectamente Ahora pasemos
al siguiente.
49. 5.15 Diseño de la interfaz de usuario de texto flotante: ahora y
diseñemos la interfaz de usuario de texto flotante, que aparece cada vez que
golpeas al enemigo. Y dirá
cuánto daño hiciste. Ahora antes de hacer esto,
permítanme en realidad solo agregar HP detrás del nombre de salud. Sabemos que es salud. Hagámoslo muy rápido
antes de continuar. Si abres tu widget de barra de
salud, plano que creamos
anteriormente dentro de la gráfica, aquí
es donde
agregamos la salud Ahora recuerda, si quieres texto
estático además de
algún texto dinámico, tienes que usar el
formato texto muy fácil. Simplemente escriba
texto en formato desde aquí. Escribamos
corchetes abiertos y solo
voy a llamarlo salud
y cerrar corchete. Ahora esto aparece, entonces
podemos escribir el espacio HP. Tenemos HP detrás de él. Y sólo voy a
borrar todo esto. Y en realidad podemos simplemente arrastrar
desde aquí y conectarlo, y va a usar
esa variable entera. Ahora eso está arreglado y
eso es todo lo que teníamos que hacer. Ahora puedes ver si
hago clic en Reproducir. Si solo reorganizo
esto y hago clic en play. Ahora ya ves también
tengo HP al final, y creo que se
ve mucho mejor. Bien, vamos a cerrarlo. Ahora haga clic derecho aquí. Vaya a Interfaz de usuario
y haga un nuevo widget, blueprint. Haz uno nuevo. Llamemos a este
texto flotante. Ahora para esta, vamos a
abrirla una vez más. Primero agreguemos un lienzo.
Entonces agreguemos algunos para el texto. De hecho, podemos simplemente copiarlo de
la información enemiga. Podemos usar el mismo aquí, control para el texto. Ve aquí al
panel de lienzo y controla V. Y aquí lo tienes
para la pantalla de relleno. Voy a cambiarlo a
deseado en pantalla en su lugar. Después el tamaño de la pantalla otra vez, cambiándola a una laptop
genérica como antes. También asegurándose de que
el texto aquí esté, ya es porque lo
copiamos de aquí. Pero solo asegúrate de que
la alineación sea 0.50 0.5 y la posición sea 00 Está perfectamente
censurado aquí, y también que el tamaño
al contenido está marcado. Bien, entonces aquí está el texto
que necesitamos tener. Y eso fue en realidad, quiero decir, realidad no
hay mucho
porque aquí vamos a
tener el daño. Pero solo puedes
escribir un texto de relleno si quieres, por ejemplo. Puedes escribir, por ejemplo, este es el daño
que hizo el jugador. Obviamente, el
jugador no va a hacer esto mucho
al principio. Pero nuevamente, esto
es solo un relleno. Vamos a cerrarlo
y continuemos.
50. 5.16 Animación de texto flotante: Ahora es el momento de hacer
algo de animación de interfaz de usuario. Si abres tu interfaz de usuario de texto
flotante, una vez más tienes la
animación aquí abajo. Ahora bien, si no lo tienes abierto, siempre
puedes hacer click
aquí abajo y en la pestaña Animación. Y luego puedes hacer clic
en Duck en Layout. Y se quedará
arriba todo el tiempo. Ahora para crear animación de interfaz de usuario, primero primero
en realidad vamos a crear la animación. Al hacer clic en el de aquí abajo, sólo
voy a
llamarlo texto flotante aquí. Primero tienes que hacer
clic en lo que quieras para animar este texto Por ejemplo, este texto, en realidad
voy a
cambiar el nombre del mismo. No es información enemiga, es texto flotante así. Tienes que hacer clic en la pista
más cuando haces eso, y tienes seleccionado el texto
flotante. Se puede ver que
aparece aquí abajo. Al hacer clic en el texto flotante, haga clic aquí de nuevo. Entonces tenemos algo
llamado la transformación. Y aquí es donde cambias
donde está en la pantalla, así
como la
rotación del texto. Si solo abres la
transformación y la traducción, esto es lo que queremos editar. Lo que quiero hacer aquí,
muy, muy sencillo. Solo quiero que este texto flotante vuele hacia arriba
cada vez que golpee al enemigo. Entonces empecemos
aquí en el cero, Está bien, no va
a pasar nada. Es cero. Ahora cuando vaya a, digamos 0.6 segundos, creo que
voy a hacer
algo así como -100 Y la y, está aquí arriba Ahora puedes ver
cuando lo arrastras, el texto vuela hacia arriba. Ahora hay que probarlo en el juego sobre lo rápido que realmente vuela. Pero si solo haces clic en el espacio, si acabo de eliminar estas líneas aquí para el texto de prueba flotante, simplemente
puedes hacer clic
en el espacio para reproducirlo. Esto te hace ver lo
rápido que realmente juega. Creo que está bien.
Siempre podemos ajustarlo si no
estamos satisfechos. Ahora lo siguiente que quiero
hacer es que quiero que desaparezca en esta
etapa de la animación. Y luego aparece, y luego
desaparece una vez más aquí
arriba. Hagamos clic aquí arriba. Encontremos la opacidad
aquí abajo, la opacidad de Rendo. Sigamos adelante y hagamos clic en él. Ahora al principio,
quiero que sea cero. Comienza sin opacidad y luego va a tal vez
algo así como 15 Aquí a los 15, quiero que la opacidad sea una.
De nuevo, aparece. Ahora puedes ver aparece, o aparece aquí para nosotros, es invisible al principio. Entonces creo que a 0.45
quiero que sea uno. Nuevamente, simplemente haciendo
clic en este pequeño punto aquí para agregar un punto de animación. Entonces al final aquí,
quiero que sea cero. Una vez más, se puede ver
que aparece así. Y luego vuelve
a desaparecer por aquí. Da click en el espacio y ve
cómo se ve la animación. Una animación muy sencilla, pero se ve profesional. De alguna manera, muy rápido. Se puede pasar mucho tiempo, a veces paso
como media hora,
1 hora , 2 horas para hacer
algo muy complejo. Siempre se puede hacer que el
texto no sólo vuele hacia arriba, sino que puede volar así en un arco hacia un lado así. Puedes intentar jugar con la animación tanto
como quieras. Siempre se ve profesional
cuando un juego tiene muy bueno. Por ejemplo, yo animación, animación de
texto. Eso era todo lo que teníamos que
hacer ahora que tenemos
la animación. Sigamos a la siguiente.
51. 5.17 Generación del texto flotante: Bien, para texto flotante, necesitamos
generarlo en el nivel Ahora, no podemos
agregarlo al enemigo, normalmente entramos en el
enemigo y dentro de aquí agregamos un widget como
la barra de salud y así sucesivamente. No obstante, para el texto, ya que estamos haciendo spam esto como estamos haciendo spam al enemigo y estamos
dando click aquí, va a
aparecer
mucho texto como texto de combate No podemos agregarlo al enemigo porque si
lo agregamos al enemigo, solo aparecerá una instancia de este
texto a la vez. Se verá un poco estúpido si solo un texto está volando aquí, al
igual que el efecto hit aquí. Cuando hacemos clic en el enemigo, tenemos que generar el texto
igual que lo que hicimos aquí Recuerda con el efecto hit, en realidad
lo
adjuntamos a un actor que genera y luego se
borra Tenemos que hacer el mismo método. Vamos a hacer clic derecho aquí, hacer una nueva clase de plano Sólo tienes que seleccionar un actor sencillo, Llamemos a éste
BP texto flotante. Ahora dentro de aquí,
abramos éste. Para el texto flotante, hagamos clic en un
Search for Widget. Sigue adelante y selecciona el widget uno. Sólo
llamémoslo texto flotante. Ahora, haciendo clic en él,
cambiemos el espacio a pantalla, porque queremos que lo vea
hacia la pantalla
para la clase widget. Cambiémoslo
al texto flotante. Dibuja un tamaño deseado, entonces debería estar bien. Adelante y compilar lo
siguiente que queremos hacer. Ahora recuerda que tenemos que
generar esto cada vez que
hacemos clic en el enemigo Vamos a ver aquí, los enemigos y a la base. Siempre que hagamos clic en el
enemigo y apliquemos daño, queremos engendrar a este actor Ahora recuerden desove, lo
estamos haciendo en el
Player Controller Vamos al controlador del
jugador, ábrelo, aquí
estamos haciendo el desove
dentro de aquí Sigamos adelante y hagamos
un nuevo evento para ello. Hagamos clic derecho, hagamos un nuevo evento
personalizado para este. Vamos a llamarlo engendrar texto
flotante. Nuevamente, vamos a hacer click
derecho aquí y usar el que se llama spawn
actor de clase Esta, la cosa que queremos
engendrar igual que antes. No necesitamos que
sea dinámico
así en el evento porque es solo una clase estética de clase la
que estamos desove Al igual que el efecto hit aquí. Vamos a seleccionar el texto flotante que
queremos generar, luego seguir adelante y conectarlo Ahora, ¿dónde
queremos engendrarlo? Necesitamos una ubicación de desove, realmente no
necesitamos la transformación En cambio, voy a tomar
esto y decir make transform. Cuando hacemos eso, estamos
rompiendo la transformación. Recuerda una trans, si
miras el panel de detalles, si seleccionas algo, consiste en la
ubicación, rotación y escala del ítem
cuando lo desglosamos. Y se llama a
hacer, recuerda que
se llama break si
va por aquí, pero se llama,
va por aquí. Siempre se puede arrastrar de aquí. Digamos vector de ruptura por ejemplo. Pero no puedo decir hacer
vector de esta manera. Esto no tiene sentido. Rompiendo de esta manera,
haciendo de esta manera. Estamos haciendo la transformación. Así podemos ver la ubicación, rotación y la escala también. Ahora que tenemos la ubicación, solo
arrastrémosla hasta
aquí y veamos qué pasa. Siempre podemos editarlo más tarde. Para esto, voy a
llamarlo lugar de desove. Entonces también necesitamos el
texto que necesitamos tener, ¿cuál debería ser el texto? Vamos a editar eso más tarde. No tenemos que hacerlo ahora, pero ahora estamos al menos generando
el texto también aquí abajo Asegúrate de
seleccionar siempre generar ignorar colisiones y seguir
adelante y compilar Asegurémonos de que las
colisiones no estén ahí. Si voy al texto flotante
y hago clic en el widget, baje en el carácter inferior, paso hacia arriba en no,
eliminar, generar eventos de superposición. Y también para los ajustes preestablecidos de
colisión,
conéctelo a ninguna colisión No queremos ninguna colisión
de este actor de aquí. Adelante y guarda todo. Ahora por aquí en la base enemiga, intentemos engendrarlo aquí
para el controlador de juego Ya tenemos esto aquí. Golpeemos y digamos
engendrar texto flotante. Adelante y seleccionamos
ahora tenemos que especificar una ubicación a
donde queremos engendrarla. Ahora donde queremos engendrar es justo donde se encuentra actualmente este
enemigo Y recuerda que
estamos en el enemigo. Yo sólo voy a arrastrar de
aquí y decir que consiga una ubicación. O consiguiendo la ubicación del enemigo, sólo
voy a
engendrarlo por lo tanto Ahora vamos a hacer clic en Jugar
y ver qué pasa si hago clic en el acto aquí
o en el enemigo. Se puede ver que efectivamente
está desovando, pero también tenemos que eliminarlo. No se ve así con buggy, pero sigamos con
eso en otra lección. Al menos ahora estamos generando el texto cuando
hacemos clic en el enemigo Como puedes ver aquí,
básicamente estamos jugando a este texto flotante
spawn Lo que quiero hacer también aquí
para el efecto de golpe de spawn, esto básicamente se juega
cada vez que golpeamos al enemigo Y estamos generando
el texto flotante porque estamos golpeando al enemigo Lo que podemos hacer ahora mismo, ya que no veo ningún
problema con ello actualmente, siempre
podemos generar el efecto
hit dentro de aquí Cada vez que hacemos daño, tenemos que jugar esto y esto. Me gusta jugar la menor cantidad de funciones posible para que no te
confundas con tu juego. Más adelante voy a
controlar X para quitar esto. Entonces voy a conectar
este spawn de texto flotante. Sólo entonces voy
a entrar de aquí. Aquí podemos generar
este efecto de golpe. Ya tenemos este
evento dentro de aquí. Solo arrastra y di,
engendrar efecto de golpe. Ahora siempre podemos
generar el efecto hit cada vez que generemos
el texto flotante Si hay una instancia
más adelante en el juego donde
tenemos que generar el
texto flotante sin el efecto hit, siempre
podemos volver
y agregarlo dentro de aquí Pero por ahora realmente no
necesitamos agregar dos
eventos todo el tiempo. Siempre podemos tocar esto y
todo va a estar bien. Bien, eso fue por ahora. Sigamos
con el siguiente.
52. 5.18 Actualización de la visualización de texto flotante: Bien, ahora vamos a actualizar correctamente el
texto flotante. Ahora puedes
intentar hacerlo tú mismo
porque en realidad es una tarea sencilla. Entonces trata de pensar en cómo puedo actualizar correctamente este
texto flotante. Cuando hago clic en el enemigo, este texto debería
mostrarse correctamente. Siempre es agradable hacerlo tú mismo si aún no estás un
poco seguro de cómo hacerlo Tratemos de continuar
juntos ahora. A veces me gusta
empezar en reversa. En lugar de comenzar desde el controlador del reproductor e
intentar actualizar las cosas aquí. Me gustaría comenzar
con el último paso, porque
al final va a tener más sentido. Vamos a la interfaz de usuario. Vamos a abrir el texto flotante. Básicamente, el objetivo que queremos
hacer es actualizar este texto aquí. Lo llamamos texto texto
flotante y luego lo
hicimos es variable
aquí en la gráfica. Simplemente eliminemos todo esto. Lo que queremos hacer
es que solo queremos
tomar este texto y usar
el que se llama set text. Este es básicamente nuestro objetivo. Queremos establecer el
texto en algo
del valor que sea como el
daño que hacemos con el ratón. Lo que podemos hacer es hacer
clic derecho y hacer un evento personalizado. Y entonces podemos decir
actualizar texto flotante. Solo podemos usar
este evento personalizado. Sigamos adelante y
conéctelo ahora para el texto con el que queremos
actualizarlo, siempre
podemos simplemente
conectarlo al evento y podremos actualizarlo posteriormente dinámicamente. Vamos a llamarlo texto, o también puedes
llamarlo texto flotante. Sólo voy a llamarlo texto. En realidad, no
necesitamos llamarlo texto
flotante y compilar. Ahora necesitamos usar esta
actualización, texto flotante. Voy a actualizarlo a través mi actor porque eso es lo
que tiene más sentido para mí. Ir a los planos. Ir al texto flotante. Ábrelo dentro de aquí, queremos usar esta
actualización, texto flotante. Yo, voy a usarlo
cada vez que engendremos al actor. Cada vez que hago clic y
engendramos a este actor, quiero que se
actualice instantáneamente Sólo voy a usar el comienzo. Juega aquí en el actor de
texto flotante aquí. Usemos este texto flotante. Agregamos el widget,
vamos a arrastrarlo hasta aquí. Y digamos obtener datos de widget de usuario. O obtener
objeto widget de usuario más bien, no datos. Ahora bien esta vamos
a decir, otra vez, costó dos. Vamos a costar al texto flotante de aquí. Adelante
y conéctalo. Ahora para este vamos a arrastrar y ahora podemos usar la
actualización de texto flotante, UI. Vamos a arrastrar y decir
actualizar texto flotante I. Tenemos que tener un valor
de este texto porque ahora puedes ver si acabo de
escribir hola por ejemplo. Y compilo y hago clic en Reproducir. Y hago clic aquí, ya pueden
ver que se está
actualizando correctamente. No obstante, ¿cómo
consigo el daño aquí? Porque realmente no
tenemos una variable de texto y realmente
no tengo plug ins
para ella como cualquier entrada. Ahora lo que puedes hacer es hacer una nueva variable. Si hago una nueva variable por aquí y solo la llamo texto, voy a cambiar
en una cadena. Lo que podemos hacer ahora es que podemos
bajar y abrir el
Player Controller. Recuerda que este es el siguiente paso
si vamos hacia atrás porque en el controlador de reproducción
generamos este texto flotante Ya que la convertiste en
una instancia editable y exponías en spawn lo que va a pasar
ahora si compilas, a veces no
aparece, así que tienes que hacer clic en Archivo y
actualizar todos los nodos Cuando haces eso, puedes
ver que aparece este texto. Esto está sucediendo porque
estás configurando esto a una instancia Editable
y exponer en spawn, que luego está haciendo esto expuesto aquí Cuando
engendramos al Lo que podemos hacer ahora
es que podemos tomar este texto y otra vez,
enchufarlo aquí. Sólo lo voy a poner por encima esta ubicación de spawn y solo
podemos dejar que se llame texto Eso está bien. Ahora bien, si
vuelvo al texto flotante, permítanme simplemente tomar este texto
aquí y conectarlo a aquí. Va a cambiar
automáticamente mi texto en una cadena
así como esta. Bien, ahora lo estamos agregando al controlador
del jugador aquí, por lo que debería aparecer
en la base enemiga. Entonces sigamos adelante y comprobemos en los enemigos
abrir la base enemiga. Y ahora podemos ver que
tenemos una entrada de texto. Ahora para la entrada de texto, lo que simplemente queremos mostrar es el daño del mouse. Y ya
tenemos eso. que en el peón jugador, tenemos el daño del cursor. Siempre puedes controlar C, controlar V. Copiarlo aquí y
sólo tienes que seguir adelante y conectarlo. Ahora va a convertir tu float en una variable de texto. Bien, eso
realmente debería funcionar perfectamente ahora si solo hacemos clic en
Reproducir y probarlo. Si hago clic mi daño
es 15 con un mouse, y eso es correcto, todo está funcionando correctamente. Pero como pueden ver, todavía está atascado aquí en el medio porque tenemos que jugar
con la animación. Y eso lo haremos
en la siguiente lección. Pero solo para
pasarlo rápidamente, puede ver cómo
trabajamos hacia atrás y a veces en realidad
los tiene más sentido. Empezando por,
realmente quieres hacer, quiero poner mi texto, y aquí es donde empecé. Entonces voy hacia atrás
y trato de hacer eso. Y en realidad tiene más sentido a veces en la base animada estamos enchufando el daño
del cursor Se pasa a través de la
aparición de texto flotante, que está en el controlador de juego
respondiendo el actor Y estamos enchufando
esta información
de texto aquí que básicamente está apareciendo porque aquí hicimos
clic en el texto y
lo hicimos expuesto al generar
esta Ahora que tenemos, lo estamos enchufando interfaz de usuario de texto
flotante de actualización Y va a
actualizar la interfaz de usuario así. Bien, eso fue todo por ahora. Sigamos
con el siguiente.
53. 5.19 Reproducción de la animación de texto flotante: Bien, sigamos adelante
y hagamos la animación. Volvamos a
la interfaz de usuario y abramos la interfaz de usuario de texto flotante dentro de aquí.
Vamos a la gráfica. En la gráfica, vemos
este anim de texto flotante, que hicimos antes
como puedes ver aquí Ahora para esta animación, vayamos a la gráfica.
Vamos a arrastrarlo. Golpeemos de
esta animación y simplemente digamos play animation. Ahora podemos usar esta
función, reproducir animación. Adelante y conéctalo Ahora
para esta animación de juego, ese tiempo es cero. Eso está bien. La cantidad de veces
que va a circular es una que está
bien para todo. Aquí está bien. Realmente no
necesitamos cambiar nada. Ahora, si hago clic en
reproducir y hago clic en él, se puede ver que se está reproduciendo la
animación. En realidad, todo está funcionando,
y eso debería ser todo. No obstante, recuerden,
no estamos destruyendo al actor. Y esto va a
ser un gran problema para tu juego si no lo haces. Porque ahora puedes
ver cuando hago clic, puedes ver la cantidad
de actores que engendro En este momento son 32, sigo pinchando, ahora 42 porque sólo estamos
quitando el efecto hit. Recuerda, ahora mismo también generamos
este efecto de golpe. Y desove y
desove actores
del texto flotante y nunca los
eliminamos Eso va a ser un problema
y va a fallar tu juego si haces clic en
él suficientes veces. Abramos el texto
flotante. ¿Cómo destruimos
este texto flotante? Yo, en realidad podemos volver a hacer
eso por dentro. Volver a los planos, abrir el texto flotante Hagámoslo dentro de aquí. Vamos, ahora que tenemos
este texto flotante, podemos arrastrar y
buscar el texto flotante, anim
flotante que
creamos antes Ahora lo que podemos
hacer aquí es que podemos arrastrar y decir get end time. Podemos usar un retraso
igual que antes. Incluso puedes abrir el
efecto hit y ver qué hicimos aquí. Básicamente hicimos lo mismo. No obstante, este era un libro volteado. Tenemos la longitud de los libros volteados. Ahora para la animación, estamos consiguiendo la hora final. Sabemos cuando termina. Cuando hagas eso,
puedes usar
un retraso después de que se haya reproducido la
animación. Una vez que puedas seguir adelante y eliminar este
actor de texto flotante justo desde aquí. Y decir destruir actor. Y ahora va
a ser destruida. Digamos todos.
Y da click en play. Y sólo voy
a minimizar esto. De nuevo, puedo ver la cantidad
de actores que estoy desove. Ahora estoy haciendo clic,
dando clic y dando clic, debería volver
a los 15 una vez más, porque estoy borrando todo mi texto aquí,
mi texto flotante. Voy a ajustar
la ubicación
del texto porque no
quiero que se genere en medio
del enemigo Voy a abrir
el Player Controller, y aquí es donde
tenemos la ubicación de spawn Voy a arrastrarlo hasta aquí. En cambio, voy a
tomar esto y decir break vector para poder
romperlo en una X, Y y Z. También lo mismo
para esta Voy a arrastrar y decir make vector puede ver la
x, y, y z también. Ahora cuando haces esto, siempre
puedes mirar aquí
en la vista y ver el eje, la ubicación del mismo Ahora para la x aquí, realmente no
necesitamos
modificarla porque
ya está centrada al actor para la x, sólo voy
a arrastrarla directamente adentro. No quiero ajustar
este valor ahora para la y, Y es esta, la verde. Y controla la cantidad de ida y
vuelta que es. Yo sólo voy a decir uno para la Y aquí porque uno
solo quiere decir que sólo
voy a ponerlo un poco
frente al enemigo. El texto no genera
en el enemigo y obtenemos como un efecto visual de error En vez de diez, aquí
puedes ver que son diez. Ahora en vez de
solo voy a escribir uno en la Y, me estoy asegurando de que este texto
esté frente al enemigo. Para el valor ahora este
es el importante, el valor Z es este. Y yo quería engendrar
aquí arriba del enemigo. Lo que puedo hacer es
que pueda decir tal vez algo como tomar esta Z que ya
tenemos y voy
a decir más agregarla. Voy a agregarlo 22 y después lo voy
a volver a enchufar. Ahora lo que estamos haciendo, básicamente
estamos tomando el valor z, estamos agregando 22,
y luego lo estamos enchufando Adelante y jugando. Puedo ver donde abarca las patas
aquí arriba del personaje. Creo que eso es mucho
mejor que antes. Siempre puedes
ajustar la ubicación dependiendo de dónde
quieras que esté el texto. Bien, eso fue todo por ahora. Sigamos adelante y
guardemos todo, y continuemos ahora.
54. 6.01 Diseño de la interfaz de usuario del temporizador: Bien, ahora es el
momento de agregar el temporizador. Cuando jugamos el juego y estamos tratando de hacerle
daño a este enemigo, quiero tener un temporizador de
ronda para que
no tengas para siempre para llenar
a este enemigo. Si el temporizador de ronda ha terminado, entonces este enemigo será real. Si lo haces demasiado lento, volverá a sanar y tal vez
tengas que retroceder un nivel para derrotar
al otro enemigo antes de
que puedas continuar. Vamos a cerrar
esto por ahora. Ahora el temporizador va a
estar dentro de la interfaz de usuario principal. En realidad no es una interfaz de usuario por sí misma. Sigamos adelante y creamos la interfaz de usuario
principal. Vamos a hacer clic derecho, ir a las interfaces de usuario
con él, Blueprint Llamemos a éste B principal. Esta es la
interfaz de usuario principal del juego. Vamos a abrirlo
y dentro de aquí, una vez más en un panel de lona. Ahora, dentro de
este panel de lona, quiero que el temporizador
esté horizontalmente aquí. Sólo voy a encontrar
una caja horizontal. Voy a agregarlo aquí. Y luego esta caja horizontal, voy a
alinearla a la mitad, aquí
arriba, a la parte superior media. Al hacer clic en los
puntos de anclaje, tener, parte superior media. Si escribes 00 en la x e y, puedes ver que no está centrada como costumbre tengo aquí en la x, tengo que escribir 0.5 así
que está en el centro ahora. Bien, para que
ya se termine para la imagen, o para el icono, voy
a buscar imagen, Adelante y agregarla
al cuadro horizontal. Ahora para los iconos,
realmente no hemos importado nada todavía, y he incluido esto
para ti aquí en la interfaz de usuario. Tengo un reloj aqui, fat click, hacer una nueva
carpeta llamada icons. Sigamos adelante y salgamos de aquí, vamos a arrastrar este icono dentro. Solo asegúrate, de nuevo, haz
doble clic sobre él, asegúrate de que el
grupo de texturas esté configurado en UI y la
configuración de compresión esté establecida interfaz de
usuario dos D.
Adelante y guarda. Volvamos adentro de
aquí y busquemos el reloj, o simplemente está aquí
frente a nosotros ahora. En lugar de hacer esto estirado aquí para la alineación vertical, voy a dar click
en el medio. Entonces agreguemos algo de texto. Ahora para el texto, solo
voy a copiarlo de nuestras otras IU. A lo mejor este de aquí. Voy
a controlar, vuelve aquí. Control V en la caja horizontal. Centrarlo verticalmente.
Aquí lo tenemos. Démosle algo de espacio, busquemos un espaciador. Agrégalo entre esos. El espaciador, a lo mejor
le voy a dar algo así como 12 D X. Creo que se ve bien. Ahora, el texto, siempre podemos
reducir el tamaño. Ahora para el texto, no
sé si deberíamos reducir el tamaño o no porque
en realidad es un temporizador importante. Creo que el tamaño está bien. Vamos a aumentar el tamaño
de esta imagen aquí abajo. En vez de 32 por 32, voy a escribir 40 por
40, algo así. También puedes darle una
almohadilla al fondo aquí. No creo que esté demasiado centrado. A lo mejor si hago clic aquí y le doy un relleno al
fondo, algo así como dos. Y eso debería estar bien. Siempre podemos ajustarlo después. No estoy muy
preocupado por la interfaz de usuario en este momento. También puedes hacer clic en Tamaño
a Contenido aquí en el cuadro horizontal hacia
arriba, podemos empujarlo. Entonces veamos aquí
qué podemos hacer en la Y. Normalmente escribo 30, 35, Está en los bordes aquí. Ahora bien, así es
como se ve. Creo que se ve bien. No obstante, para los juegos clicker, me gusta que el reloj esté aquí arriba Porque es súper
importante que
veas cuánto tiempo te
queda cuando haces clic. Y no tienes que
mirar todo el camino hasta aquí en vez de aquí. Ahora, sólo voy
a sumarlo aquí arriba. Por ahora,
siempre podemos cambiar la interfaz de usuario. No hace falta una vez que
hayas programado
todo lo que
realmente puedas imaginar si
tienes un juego grande, en realidad
puedes
cambiar toda la interfaz de usuario. A lo mejor en un día
no va a tardar mucho, y este juego obviamente
no tiene demasiada interfaz de usuario. Para que podamos
cambiarlo dentro de una hora. Pero por ahora, solo hagamos
que el reloj esté aquí arriba. Y vamos a guardar todo. Déjame hacer clic en el texto, asegurarme de que la visibilidad
esté establecida para no golpear comprobable. Este también. Podemos simplemente configurarlo para que también
golpee comprobable, para que el mouse no
interactúe con él. Eso fue todo. Vamos a
guardar todo, y pasemos
al siguiente.
55. 6.02 Visualización de la interfaz de usuario principal: Ahora sigamos adelante y mostremos
la interfaz de usuario principal a la pantalla. Por lo general, cuando trabajamos con UI, lo
estamos haciendo dentro
del controlador del reproductor. Abramos el controlador del
reproductor y hagámoslo dentro de aquí. Ahora, no hemos
hecho nada con UI donde
lo tenemos en la pantalla. Normalmente, lo que hemos hecho hasta ahora es tenerlo
apegado a un actor, pero ahora en realidad
tenemos que crear alguna interfaz de usuario y apegada a la pantalla
en lugar de al actor. Sigamos adelante y hagamos eso.
Sólo voy a empujar todos estos
aquí abajo. Empecemos. Ahora lo que suelo hacer es hacer clic
derecho aquí y
hacer un evento personalizado. Y
te voy a mostrar un método inteligente si aún no lo has hecho. En uno de mis otros cursos, por lo general creo un
evento llamado show hide o open close widget. Abre cerrar widgets, puedes
llamarlo como quieras. Mostrar ocultar widget, abrir
cerrar widgit. Esto está aquí. Ahora tenemos que tener una entrada de qué widget
estamos hablando? Y no creo que
hayamos creado una enumeración para eso todavía. Si lo llamas Ven
planos, enumeraciones. Ahora, dentro de aquí,
voy a hacer una lista de qué UI voy
a tener en mi juego. Voy a
llamarlo widgets de juego, porque más adelante también tengo uno puede llamarse widgets del menú
principal. Entonces este se
llama widgets de juego. Ahora tenemos que
especificar aquí una lista de qué widgets
tienes en el juego. Por ejemplo, puedo
tener una interfaz de usuario principal. Puedo, por ejemplo, una tienda de actualización, y así sucesivamente. Puedes tenerlo después, pero por ahora solo necesito la interfaz de usuario principal. Sólo voy a llamarlo principal. Ahora si vuelves
al controlador de juego, ya
podemos aquí en la
entrada podemos buscar esa enumeración que
llamamos widgets del juego Y podemos salir y seleccionarlo. Sólo voy a llamar a
éste widgets. Si abrimos y cerramos un widget, tenemos que especificar de qué
widget estamos hablando. De hecho, puedo llamar a
esta función aquí, o a este evento, para que puedan
ver cómo se ve. Así es como se verá cuando llame a esta función más tarde. Ahora podemos seleccionar de qué
widgit estamos hablando. Además, quiero otra
entrada, un toro. Un lingote es simplemente, de
nuevo, solo un sí o un no. Sólo un falso o verdadero. Para éste,
voy a decir abierto, sólo
voy a llamarlo espectáculo. A mi me gusta usualmente
llamarlo show hide. No
me confundo con esta. Voy a cambiarle el nombre
a Mostrar Ocultar Widgets. Tenemos que especificar de qué widget estamos hablando por ahora. Solo tenemos la interfaz de usuario principal y
luego podemos mostrarla u ocultarla. Si tengo eso
desmarcado, es esconderse. Y si tengo eso
marcado, es show. Así es como suelo hacerlo. Éste, podemos hacer una rama. Ahora si es show, queremos mostrar el widget. Porque esto es cierto. Hagamos dos funciones. Déjame hacer uno llamado
show widget y hacer otro widget uno. Normalmente agrego un para mis
funciones como prefijo. Es mucho más fácil de buscar porque si haces clic derecho
y realmente buscas, entonces puedes tener todas tus
funciones en el futuro. Para los widgets del show,
voy a dar click, tengo una entrada de widgets de juego y selecciono
eso y lo llamo widget. Lo mismo aquí
para el hyde Widgit, adelante y da clic
en él, agrega esto, y llámalo widget Lo que queremos hacer aquí
ahora en el programa Widgit, queremos arrastrar desde aquí y
decir encender enumeración Lo que vamos a hacer
aquí, básicamente
le estamos diciendo si la enumeración, o si este valor es principal,
¿qué queremos hacer? Imagínese si tuviéramos
otro, por ejemplo, si tuviéramos un menú de Configuración
y salimos a Guardar. Ahora puedes ver aquí,
esto se está agregando aquí. Si el valor que
viene por aquí, que básicamente se
selecciona de aquí arriba, seleccionamos cuál debería
ser el valor si
entra aquí en el widget show. Y el valor es
principal, por ejemplo, va a ignorar
el código aquí abajo, y sólo va a
ejecutar el código aquí arriba. Esto es lo que
encienda la enumeración. ¿Va a funcionar el código de
aquí? Y éste no va a correr si el valor
es principal por aquí. Permítanme simplemente eliminar
esta configuración por ahora. Lo que queremos hacer
aquí es básicamente crear el widget y
agregarlo a la pantalla. Hagamos clic derecho y digamos crear widgets que seleccionó seleccione qué widget
desea crear. Quiero crear la interfaz de usuario
principal y hacer clic derecho, promoverla a una variable. Vamos a llamarlo básicamente
el widget principal. Entonces lo que queremos
hacer es arrastrar desde aquí y decir Agregar a Viewport Así es como agregamos
la interfaz de usuario a la pantalla, porque no es suficiente
que hayas creado, pero también tienes que agregarla a la ventana gráfica antes
de poder verla, bien. Ahora podemos conectarlo así, y todo está bien. Sin embargo, lo que me gusta hacer es solo por el bien de la optimización, podemos tomar esta variable
que acabamos de crear, podemos escribir click y
convertir a un get validado. Lo que podemos hacer ahora es que
desconectemos esto manteniendo
pulsada la tecla Alt y dando clic y ya
podemos conectar esto. Ahora bien, si esto no es válido, esta variable no es válida. Esto quiere decir que esto aún
no se ha creado. Aún no hemos creado la interfaz de usuario. Dirá que no es válido. Cuando no es válido, queremos seguir adelante
y crear la interfaz de usuario. Sin embargo, si ya creamos la UI una vez antes de
que sea válida, no
tenemos que crear
esto todo el tiempo y seguir configurando esta variable si ya la
hemos hecho
una vez antes, será válida si la
hemos hecho una vez. Y luego solo voy a seguir adelante y agregarlo al
punto de vista en su lugar, no
tenemos que
crearlo todo el tiempo. Bien, vamos a compilar ahora
para el widget Hyde. Volvamos aquí igual. Digamos que encienda la enumeración, encienda los widgets del juego Entonces aquí lo que quiero que hagas,
simplemente arrastra esta variable, haz clic
derecho de nuevo, convierte a un get validado,
igual que antes. Entonces arrastremos y digamos
quitar de los padres. Eliminándolo de la pantalla. Esto se quita de los padres, ahora
lo estamos quitando de la pantalla. Bien, ¿cómo usamos estas
funciones que acabamos de crear? Ahora, si volvemos
al gráfico de eventos, podemos arrastrar en las funciones, el widget show and hide. Sigamos adelante y conectémoslos. Si el bullying es cierto, queremos mostrar el widget, seguimos adelante y
conectamos este. Si esto es falso, queremos ocultar el widget, conectamos el otro. Ahora bien, para el widget que
entra es simplemente lo que
hemos seleccionado aquí arriba. Pero podemos simplemente arrastrar esta
entrada a esas funciones, y los datos pasarán
a estas funciones aquí. Ahora en realidad está terminado. Lo que podemos hacer es
que podemos, podemos llamar a este evento aquí siempre que queramos mostrar
y ocultar un widget. Entonces puedo decir show, hide widget. Puedo especificar de qué
widget estoy hablando. También puedo especificar si queremos mostrar u ocultar ese widget. Función súper inteligente
que podemos usar. Esto es básicamente,
así que no tenemos que escribir todo
este código aquí, es mucho más fácil
simplemente usar este. Sigamos adelante y
mostremos la interfaz de usuario principal. Hagámoslo aquí
en el Player Controller. Escribamos eventos, comencemos a jugar. ¿Qué debería pasar cuando
empiece a jugar el juego? Solo quiero mostrar
ocultar este widget. Entonces quiero mostrar mi
menú principal, o mi interfaz de usuario principal. Básicamente. Esto es aquí. Si compilamos y
hago clic en play, puedes ver ya puedo
ver mi temporizador aquí arriba. Porque ahora estamos
mostrando el widget. Si quieres ocultar el widget, siempre
puedes hacer click
aquí . Y puedes hacer click en play. Y se puede ver que el
widget se ha ido, porque ahora lo estamos ocultando. Mostrando el widget principal, y así es como se hace. Sigamos adelante y cerremos
todo, y sigamos.
56. 6.03 Configuración del temporizador de ronda: Ahora es el momento de
agregar el temporizador redondo. Ahora, dentro de los juegos para
un jugador, realmente no
somos
responsables realmente no
somos
responsables de donde
queremos agregar el código. Podría agregar el
temporizador redondo al jugador, podría agregarlo al controlador del
jugador, y podría agregarlo
al modo de juego. Básicamente, en el modo multijugador,
tendrías un problema, porque tendrías que
hacer las cosas correctamente. Pero en un solo jugador, en
realidad podemos codificar todo, por ejemplo, dentro
del jugador, aunque debería
estar en el modo de juego. Y el juego
funcionaría muy bien para quedarse y hacer buenas prácticas de
programación. Hagamos el temporizador redondo
dentro del modo de juego. Recuerda que el modo de juego controla
las reglas del juego. Creo que algo
así como un temporizador redondo es algo así como una regla en un juego. En lugar de aquí,
hagamos el temporizador redondo. Lo que quiero hacer es intentar
hacer otro evento personalizado. Hagamos clic derecho y
hagamos un evento personalizado. Llamemos a este temporizador de ronda de
inicio. Queremos iniciar
el temporizador redondo. Quiero usar aquí principalmente algo
llamado temporizador por evento. Haga clic en el extremo derecho y
busque el temporizador por evento, seleccione ese. Ahora el temporizador por evento es simplemente un temporizador que hace un bucle una y
otra vez. En lugar de usar el tick de evento, tal vez sepas lo que ya es un tick de
evento. Si no lo haces, esta está
funcionando 60 veces por segundo. Si solo puedo arrastrar aquí e imprimir una cuerda y
solo decir hola. Puedes ver si hago clic en Reproducir, en realidad
va a
imprimir 60 veces por segundo. Aquí dice hola. Por lo general, esto es muy malo de usar en un juego. Si algún día miro tu juego, nunca
quiero ver un tic de evento en tu juego
porque esto es súper malo usar
a menos que absolutamente
tengas que usarlo realmente. Para Fun Tail,
desarrollé desde hace dos años, nunca
he usado este. Y tampoco creo que debas
usarlo porque está realmente optimizado para ejecutar
este código tantas veces. En cambio, hacemos esto
configurando un temporizador. Un temporizador, puedes elegir cuántas veces
quieres darle
un bucle por segundo en lugar de hacerlo en bucle
60 veces por segundo Lo que puedo escribir aquí
es, por ejemplo, 0.1 Si no eres
realmente bueno en matemáticas, lo que puedes hacer aquí es
que básicamente puedes decir, qué es 1/0 0.1 Eso es diez Esto quiere decir que corre
diez veces por segundo. Y si lo pongo en 0.03 Entonces lo vas a ejecutar
33 veces por segundo. Ahora a veces tienes que
hacerlo muchas veces
porque por ejemplo, en un juego de estrategia en tiempo real donde construyes edificios al igual que Los Sims, por ejemplo, en los Sims
arrastras un edificio o un objeto, puedes colocarlo alrededor Ahora para actualizar ese fantasma de
edificio que estás arrastrando, es muy importante
que se vea suave Hay que configurarlo en algo así
como 0.03 por ejemplo. Pero se puede ver
ejecutarlo 33 veces por segundo es mucho mejor que
ejecutarlo 60 1 segundo. Lo estás ejecutando básicamente a la
mitad de la velocidad de ésta. Y ya
va a estar mucho optimizado solo por que uses
un temporizador y hagas esto aquí. Por ejemplo, para
el temporizador por evento, realmente no
necesitamos
actualizar el Tim. Por ejemplo, 33 veces por segundo. Podemos comenzar con
algo así como 0.1 Básicamente
podemos actualizar el
temporizador diez veces por segundo. Vamos a tratar de hacerlo. Eliminemos esto aquí abajo. Vamos a conectar este de aquí arriba. Para el evento aquí,
tenemos que tener un evento. Puedo arrastrar hasta aquí, hacer un evento personalizado. Normalmente solo
lo llamo loop al final, así que solo voy a
llamarlo round timer, loop. Este evento aquí
básicamente va a circular. Vamos a
fijarlo a es en bucle. Lo que quiero hacer es
básicamente quiero configurar un temporizador. Vamos a crear dos variables. Déjame crear uno llamado temporizador redondo
inicial. Vamos a configurarlo para flotar, compilar. Ahora este va a ser
nuestro temporizador de ronda inicial. Digamos, por ejemplo, que tenemos 5 segundos inicialmente
para matar a este enemigo. Hagamos uno nuevo
llamado Current Round Tim. Este es el que se
va a actualizar. El temporizador de ronda inicial no
va a cambiar, pero primero vamos a cambiar nuestro temporizador redondo
actual. Antes de comenzar este bucle aquí, asegurémonos de que
el temporizador redondo actual sea igual al temporizador de ronda
inicial, lo
contrario será cero. No quieres
iniciarlo en bucle con el tiempo siendo cero Ajustemos el
temporizador redondo actual al inicial. Así, ahora tenemos
algo de tiempo para empezar. El tiempo es de 5 segundos, porque hemos puesto
este en cinco, ahora este es de 5 segundos. Lo que queremos hacer aquí,
queremos tomar el temporizador redondo
actual. Quiero decir menos. Básicamente queremos
restarlo con 0.1 Si esto va a
correr diez veces por segundo, lo que esto significa es que
va a decir que básicamente
va a quitar 1 segundo
cada segundo , si
eso tiene sentido Porque esto va a correr diez veces en lugar de
tener un valor estático. Nuevamente, no me gustan los valores
estáticos
porque es un dolor cambiar si
el juego se aloja. En su lugar, puede hacer clic derecho en este valor y
promoverlo a una variable, y puede llamarlo algo
así como tiempo de temporizador redondo. Espero que no se vuelva demasiado confuso o
me confunda en el futuro, porque este es el temporizador redondo, este es básicamente el tiempo aquí Vamos a arrastrarlo hasta aquí. En lugar de tener
este valor estático, este -0.1 vamos a compilar
y asegurarnos de que el tiempo del temporizador redondo
sea 0.1 También aquí arriba Hagamos clic derecho en este temporizador y promocionemos esto a una variable, porque más adelante tenemos que detener este temporizador si ya no
queremos usarlo. Y eso lo hacemos al
tener esta variable. Llamemos a éste Tim Handle. Si sostienes el mouse sobre
él, es básicamente un asa de temporizador, una
manija de temporizador redonda. Ahora lo que podemos hacer es
ahora estamos diciendo esta hora
actual -0.1 De nuevo, tengo que sujetarlo
porque quiero
asegurarme de que no va
a estar bajo cero Ahora lo que estamos diciendo
es el temporizador actual, temporizador
redondo -0.1
Si hacemos un bucle eso, esta cantidad también, básicamente
va a menos uno cada segundo Voy a volver a configurar el temporizador redondo
actual, básicamente
estamos diciendo
menos uno cada segundo. Ahora vamos a seguir adelante
e imprimir una cuerda. En realidad se puede
ver lo que está pasando y vamos a arrastrar esto aquí. Vamos a componer la ronda. Tim básicamente puede ponerlo en
marcha aquí en el evento comenzar a jugar. Golpeemos desde aquí
y digamos que comience la ronda Tim. Vamos a compilar y jugar. Ahora puedes ver que el
temporizador está funcionando ahora. Va a ir por debajo del cero porque no lo
hemos sujetado. De hecho, sigamos
adelante y hagamos eso. Vamos a atacar aquí de nuevo. Arrastra desde aquí y
di clamplamp float, El valor mínimo es
cero bajo cero El valor máximo es lo que básicamente es el
temporizador redondo actual. Ahora sigamos adelante
y conectemos esto. Todo debería estar
bien si compilo
y hago clic en Reproducir. Y echa un vistazo aquí ahora, no
debería ir por debajo de cero, y todo está
funcionando bien. Ahora solo tenemos que actualizar esta interfaz de usuario aquí arriba para que
funcione correctamente. Bien, eso fue todo por ahora. Tenemos un temporizador en funcionamiento, y solo podemos
dejar que esto esté aquí, porque tenemos que
arrancar el temporizador, todo está funcionando bien. Y tenemos que continuar
en la siguiente lección.
57. 6.04 Actualización del temporizador principal de la interfaz de usuario: Bien, aquí es
donde lo dejamos. Volvamos y actualicemos
el temporizador en la interfaz de usuario principal. Lo que queremos hacer es que queremos volver
a la interfaz de usuario principal. Queremos dar click sobre este texto. Vamos a llamarlo algo
así como temporizador redondo. Temporizador redondo. Volvamos a la gráfica aquí. Permítanme simplemente borrar todo esto. Ahora para este temporizador,
básicamente quiero, de nuevo, poner texto, justo lo que
hemos estado haciendo hasta ahora. Hagamos un evento personalizado para este evento personalizado.
Llamemos a esto una actualización, Tim. Yo solo dejé que sigamos
adelante y lo conectemos. Ahora para esto, sigamos adelante y en lugar de simplemente
conectarlo directamente, también
quería decir segundos
detrás de él. Quiero usar un formato texto, igual que lo que hemos
estado haciendo hasta ahora. Para este formato de texto,
quiero una variable. Vamos a llamarlo temporizador
redondo restante. Cerremos los corchetes. Y si le pegas inter, aparece
esta entrada, entonces solo quiero
escribir sec detrás de ella. Sabemos que son segundos. Ahora bien, esta variable es un flotador. Yo solo voy a
aquí agregar una entrada de float y llamarlo
round timer restante. Ahora podemos seguir adelante
y enchufar esto aquí y
básicamente estamos terminados. Ahora sigamos adelante
y actualicemos. Usemos esta interfaz de usuario del temporizador de actualización. Ahora puedes intentar hacerlo
tú solo para practicar porque en realidad es simple
si solo lo piensas. Pero si aún tienes
dificultades con ello,
sigamos adelante y
hagámoslo juntos. Si volvemos a los planos, abrimos el modo donde
hicimos el código Ahora aquí, siempre que
esté en un ciclo, también
queremos actualizar la interfaz Después de configurar el temporizador redondo, queremos actualizar la interfaz de usuario. Ahora bien, ¿cómo obtenemos la interfaz de usuario? Recuerda, la interfaz de usuario está dentro de la principal aquí,
el widget principal. Este es el evento que
queremos utilizar. Tenemos que obtener una
variable o la interfaz de usuario principal. Recuerda, ya tenemos esto dentro del controlador del
reproductor, porque dentro de aquí
hicimos esto en una variable. Sigamos adelante y llamé
al controlador del reproductor. ¿Tenemos una variable para el controlador de
reproducción? Sí lo hacemos. Esto lo hicimos anteriormente. Sigamos adelante y arrastremos
en el controlador del reproductor. Arrastremos en WB
main y consigamos eso. Entonces vamos a obtener los eventos de la interfaz de usuario del temporizador de
actualización. Podemos llamar a esto ahora
vamos a conectarlo. Ahora bien, este es el temporizador redondo que
queda, que es este. Básicamente, vamos a compilar. Y si hago clic en play, ahora se puede ver que está
funcionando bien. Ahora puedes ver que
hay un problema porque no quiero
eliminar este decimal
siempre que sea cero. Así, quería
decir 0.0 por ejemplo, o 1.0 no quiero
que lo quite. La forma en que haces esto, en lugar de enchufar
directamente el flotador, realmente
puedes
convertirlo primero en una cadena y no eliminará
lo que sea que estés escribiendo, solo escribes dos cadenas Siga adelante y seleccione
dos flotadores de cuerda. Ahora en lugar de tener un
flotador, desconectemos esto. Y vamos a enchufar la cuerda. Vamos a compilar. Vamos a
hacer clic en Reproducir. Y ahora se puede ver que
dice cero al final, y no lo va a eliminar. Creo que se ve
mucho mejor para nosotros, eso fue todo por actualizar la interfaz de usuario. Y pasemos
a la siguiente lección.
58. 6.05 Restaura la salud en el temporizador: El objetivo principal aquí es restaurar la salud
del enemigo cada vez que
se haya agotado el temporizador. Hagámoslo.
Esto es muy fácil. Ya tenemos lo que
necesitamos aquí en el temporizador de
inicio redondo. Siempre que recorremos el
tiempo y llega a cero. Tomemos el temporizador redondo
aquí y básicamente podemos tomar una nueva variable en lugar de usar esta
todo el tiempo. Sólo para hacerlo más limpio,
podemos usar este. Y ahora podemos decir si
esto es igual a cero, así que básicamente se ha acabado el
tiempo, hagamos una rama, sigamos
adelante y la conectemos. Siempre que este sea el caso, queremos restaurar la salud,
sigamos adelante y
hagamos el evento personalizado para la restauración de la salud. Y creo que lo mejor es
hacerlo dentro del enemigo. Pasemos al enemigo, abramos la
base enemiga dentro de aquí. Vamos a crear uno
llamado restaurar la salud. Bajemos aquí, hagamos
un nuevo evento personalizado. Llamémosle restaurar
la salud así. Ahora para la restauración de la salud, lo que simplemente vamos a hacer, recuerda anteriormente tenemos esta llamada actualización de salud. Básicamente podemos usar esa que arrastre aquí
y decir actualizar salud. Actualiza la salud, aquí está. Ahora, ¿cuál es la salud actual? Sólo queremos sanar al máximo al
enemigo. Nuevamente, nuevamente tenemos la información del enemigo get y
ya tenemos la salud. Voy a controlar C esto
y controlar V aquí abajo. Sólo vamos a
enchufar esto aquí. Básicamente estamos
restaurando la salud. Una vez más, eso debería ser. Si vuelvo al modo de juego, ahora necesitamos una variable
al enemigo. No recuerdo si
tenemos una variable al enemigo dentro
de aquí, no lo tenemos. Tenemos que averiguar ¿cómo
obtenemos la variable para el enemigo? Porque necesitamos llamar a
esto restaurar la salud. Recuerda, si
volvemos a, por ejemplo, el Controlador del Jugador, aquí
es donde engendramos al
enemigo, engendramos enemigo Y lo convertimos en una variable. En realidad sabemos qué
enemigo se genera actualmente. Si vuelvo aquí y tomo
el Player Controller y
puedo buscar la variable enemiga
engendrada, y puedo tomar esta Ahora aquí podemos decir
restaurar la salud. Ya veo que no lo encuentro. Entonces, si vuelvo al Controlador del
Jugador, esto es porque promoví
directamente este a la variable
enemigo engendrado Lo cual no está mal. Básicamente
puedo ir al modo de juego y le dice a la base
enemiga aquí puedo decir restaurar la salud y
todo va a estar bien. Pero de nuevo, no me
gusta usar el casting. Y esta parte
también es innecesaria porque podemos hacerlo dentro del controlador del reproductor aquí antes de
promoverla a una variable. Volvamos a las interfaces. Y no hemos hecho uno por el enemigo. Intenta
hacerlo tú mismo. Ya lo hicimos
un par de veces. Nuevamente, si no te
acuerdas del todo, sigamos adelante y
hagámoslo juntos. De nuevo, voy a
pasar rápido por esto. Haga clic con el botón derecho del ratón en el plano y
cree una interfaz de blueprint. Llámalo base enemiga. Adelante, ábrelo. Digamos que consigue referencia enemiga. Entonces aquí en la salida, busquemos
la base enemiga BP que estamos
tratando de hacer referencia. Llamémoslo compilación enemiga. Ahora volvamos
a la base enemiga. Y dentro de aquí en
la configuración de clase, queremos agregar esta
interfaz que acabamos de crear, llamada enemiga pero compilar. Ahora podemos ver esta función apareciendo doble click sobre ella. Para el enemigo, voy a hacer una autorreferencia
porque de nuevo
estamos dentro de la base enemiga y estamos definiendo qué es
esta variable. Ahora lo que podemos hacer es en
el controlador del reproductor, en lugar de promocionar esto
directamente a una variable, voy a borrar esto por ahora. Puedo decir conseguir referencia enemiga. Porque recuerda si
sostienes el mouse sobre él, esto es solo una referencia de actor. Pero si promuevo
esto a una variable, esta es una referencia de base enemiga. Y podemos usar eso
sin hacer esto todo el tiempo en todos
los demás planos Voy a quitar a
este enemigo engendrado. Vamos a asegurarnos que no lo hemos usado antes. Porque si lo borro ahora, voy a eliminar todas
las referencias con él. Lo que suelo hacer en mis
juegos, hago clic derecho sobre él, encuentro referencias, no hay resultados
dentro de este plano Tenemos que buscar globalmente. Puedes hacerlo haciendo clic
en el pequeño icono. Va a buscar
en todos los planos. Y puedes ver que nunca antes has
usado esta variable. Es seguro eliminarlo. Voy a borrarlo, sí. Ahora vamos a promover este
a un enemigo engendrado variable. Ahora podemos usar esta
. Vamos a compilar. Volvamos al modo de juego.
Eliminemos todo esto. Ahora aquí del arrastre enemigo
engendrado. Vamos a engendrar enemigo
de éste. Ahora podemos arrastrar y
decir restaurar la salud. Eso es mucho más fácil de hacer. Ahora arrastremos de aquí. Si el temporizador es igual a cero, queremos restaurar la salud. También queremos reiniciar el temporizador porque
tenemos que empezar de nuevo. Voy a tomar el temporizador
redondo actual y
configurarlo nuevamente en el temporizador de ejecución inicial. Así como esto. Sigamos adelante y juguemos
y veamos qué pasa. Da click en Play Now I'll just, para que podamos probar mejor, voy a poner los temporizadores de
ronda iniciales a 3 segundos, así que no lleva una eternidad. Cuando se acabe el temporizador, se va a reiniciar, sanar. El jugador ahora hace clic
o cura al enemigo. Más bien podemos ver que sí
sanó al enemigo
cada vez que es cero, si mato al enemigo, va
a sanar a ese enemigo también. Entonces lo que básicamente
tenemos
que decir es si mato al enemigo, tengo que decirle que pare el temporizador porque ahora
hemos matado al enemigo. Porque como puedes ver aquí,
cada vez que mate a este enemigo, no
va a detener
o reiniciar el temporizador. Entonces esto es lo siguiente en lo que
queremos trabajar.
59. 6.06 Restablecimiento del temporizador en Muerte de enemigos: Ahora lo que queremos
hacer es querer reiniciar este temporizador
cada vez que muera el enemigo. Sigamos adelante y
hagamos eso de nuevo, esto es súper fácil ahora
porque ya
creamos esta variable
llamada asa de temporizador redondo. Si voy a la base enemiga y
trato de encontrar dónde murió
el enemigo, aquí hicimos este suceso de muerte e hicimos todo esto aquí. Detengamos el temporizador
cada vez que el jugador o el enemigo hicieron todo esto. Si solo puedo
seleccionarlo todo y podemos arrastrarlo por encima. Ahora tomemos este mango que está dentro
del modo de juego. Puedo ver que aquí ya tenemos
una variable de modo de juego, así podemos decir que Tim maneja. Podemos seguir adelante y conseguir
esa manija del temporizador de ejecución. Podemos decir claro e
invalidar temporizador por asa. Este va a detener el temporizador claro e
invalidar el temporizador Adelante y conéctalo. Ahora estamos parando el temporizador
y luego estamos haciendo todo
este evento de muerte o
esta lógica de muerte. Entonces después de la lógica de la muerte, estamos incrementando el nivel Y luego estamos
destruyendo el Acta. Tenemos que volver a poner en marcha
el temporizador, porque ahora cuando
matemos al enemigo, el temporizador va a parar. Pero tenemos que volver a iniciarlo. Creo que es la mejor manera de volver
a iniciarlo, hagámoslo dentro del nivel actual de
incremento Sigamos adelante y hagamos eso
dentro del modo de juego porque cada vez que
incrementamos un nivel, engendramos a un enemigo Vamos a empezar el temporizador aquí. Tiene más sentido. Lo que podemos hacer es básicamente, al
igual que antes, podemos hacer esto, temporizador de inicio,
temporizador de ronda de inicio. Sólo tienes que seguir adelante y llamar a
este evento que hicimos. Y eso debería arreglarlo todo. Ahora cada vez que
no llamo al enemigo, el enemigo va a
sanar, como puedes ver aquí. Pero si mato al enemigo, el temporizador se va a detener
y luego se va a reiniciar de nuevo una vez
que mate al enemigo. Entonces, si mato al enemigo,
va a restablecerse a tres y todo va genial. Bien, entonces ahora estamos reiniciando el temporizador
cuando muere el enemigo Y también
lo estamos parando para que no cuente atrás. Y pasemos
al siguiente.
60. 7.01 Diseño de la interfaz de usuario de moneda: Ahora es el momento de
diseñar la interfaz de usuario de moneda. Y antes de que hagamos eso, acuda
a los materiales de su curso. Y he incluido
algunas cosas para ti. Así que vamos a la
carpeta UI aquí mismo. Voy a crear
una carpeta llamada botones en lugar de esta carpeta. Podemos arrastrar estos
botones hacia aquí. Botón pequeño presionado
y botón pequeño. Adelante y arrástralos. Justo como antes. Recuerda
hacer click derecho sobre ellas acciones de
sprite y aplicar papel dos T
porque son picks mucho También para las imágenes en la carpeta de
imágenes voy a arrastrar a aquí de nuevo
así, voy a hacer clic derecho y
aplicar papel a la configuración. Ahora para el reloj,
quiero actualizarlo también. Probablemente se vea así para ti en
este momento. Sólo voy a
arrastrar esto hasta aquí. O tal vez haga clic derecho
y diga re importar. Ya sabe
lo que parece si hago clic en play,
ahora se ve así. A ver si necesitamos algo
más, esta moneda aquí. También necesitamos en los
íconos, arrastrar eso adentro. Haga clic con el botón derecho, aplique papel a configuración y todo
debería estar bien. Ahora, antes de seguir solo
revisando este reloj, haciendo clic en él, en
realidad voy a aumentar el tamaño
del mismo a 50, 50. En cambio, el relleno es cero. Voy a ponerla a cero. Compilar, y si hago clic en Reproducir, creo que se ve mucho mejor así en comparación con antes. Bien, ahora para
la interfaz de usuario de Curren, vamos a diseñar
aquí dentro de la interfaz de usuario principal Y creo que lo voy a diseñar
aquí arriba a la cima. Empecemos con eso. Primero, necesitamos una superposición. Vamos a agregar la superposición en
el panel de lienzo de aquí arriba, así aparece aquí arriba. Ahora para esta superposición,
quiero una imagen, quiero la
imagen de fondo para esta interfaz de usuario. Voy a alinearlo horizontal y
verticalmente, todo el camino. Ahora tenemos que seleccionar cómo debe ser
la imagen para la imagen. Vamos a ir a las imágenes, y voy a seleccionar
este marco de un artículo. Adelante y déjalo
caer. Y aquí está ahora para
volver a hacerlo no borroso, igual que antes, cambiarlo en una caja, cambiar el margen a 0.5, Ahora se ve mucho mejor Ahora cuando cambias
el tamaño de la superposición, se ajusta con el tamaño. Ahora aquí abajo, también
quiero un menú de actualización. O no un menú de actualización, es más como una tienda. De hecho, hagamos eso también. Aquí con él, necesitamos una caja vertical.
Voy a agregar eso en. Voy a agregar overlay. Recuerda que la caja
vertical
no debe estar dentro de
esta caja horizontal, es justo afuera de esta superposición. Voy a arrastrarlo a
la caja vertical aquí. Simplemente redimensionarlo. Otra vez,
el overlay otra vez, voy a dar click
en bill por ahora. No estoy seguro de si
voy a llenarlo. En realidad, no creo que lo haga. Pero vamos a
configurarlo para que se llene por ahora. Ahora agreguemos el otro. De nuevo, voy a simplemente duplicar esto,
Overlay control D. Ahora bien este es el menú de actualización, o la tienda aquí, la tienda. click en la
imagen, la voy a cambiar a este marco
de papel. Adelante y arrastra eso aquí. Todo debería estar bien. Ahora para esta caja vertical, quería llenar
toda la pantalla a un lado. clic en el punto de anclaje, cambiándolo a éste. Cuando hagas eso,
el offset bottom, voy a escribir 00. Y el desplazamiento para
la parte inferior y superior, hará
que todo este
lado de la pantalla se llene. Ahora le voy a dar
algo de espacio desde los bordes de la pantalla en la posición para la X. Voy a
escribir 30 offset, top 30 offset,
bottom 30 también. Ahora no está en el
borde de la pantalla. Ahora el tamaño de los dos. Voy a hacer clic
en la superposición para la moneda y
voy a configurarla en auto. En cambio, voy en
cambio aquí en las imágenes y aumentando
el tamaño en la Y. Ahora para el tamaño en la Y, creo que algo como
105 debería ser suficiente. Algo así, y podemos escribir cuántas monedas tienes. Además, agreguemos una
búsqueda de espaciador para un espaciador. Agrégalo entre estas dos
superposiciones para el espacio. Creo que voy a escribir
algo así como 20 en la Y.
Y puedes dar click
sobre estas líneas de guiones para eliminar las líneas de guiones. Y ahora así es como se
ve. Puedes hacer clic en Play
y también verlo. Aquí puedes ver esta es
una pantalla para un portátil, pero también encaja muy
bien para mi monitor de cuatro K, porque de nuevo,
lo hemos diseñado para que esté en múltiples monitores. Ahora para el tamaño aquí, lo decidiremos
más adelante
dependiendo del contenido
dentro de este menú. Pero por ahora, dejemos que sea del tamaño de
éste de aquí arriba. Vamos con la moneda. Ahora mismo, podemos
trabajar con la tienda. Aquí arriba con la moneda, necesitamos una
caja horizontal porque
necesitamos una imagen y luego el texto. Vamos a agregarlo a la superposición dentro de esta caja horizontal. Voy a agregar una imagen, después voy a agregar algo de texto. Ahora para el texto, sólo
voy a copiar esto aquí arriba. Control C Control dentro de esta
caja horizontal. Control V aquí. Ahora para esta caja horizontal, voy a alinearla virtualmente horizontalmente en el
medio para esta imagen, vamos a cambiarla en
este icono de moneda. Nos arrastramos de nuevo, alineación
horizontal
y
alineación vertical en el
medio. Ambos. Ahora para la moneda aquí, hagamos
clic en la moneda y hagamos el tamaño 50 por 50 para la imagen. Ahora para este texto,
voy a
hacerlo un poco más grande porque
esto es muy importante. Creo que algo así como 34 y tal vez un poco
más bajo, tal vez 30. Siempre podemos decidir eso más adelante. Ahora para el color frontal, también
voy a
cambiarlo a algo amarillo. Se trata de exhibir monedas, cambiando
el color y la opacidad. Voy a tratar de elegir
un color amarillo. Creo que voy a ir con
algo como esto. Ahora, también necesito
cambiar el esquema. Creo que voy a copiar éste de aquí arriba.
Pégalo aquí abajo. Sólo voy a
cambiarlo a un color más oscuro. Voy a usar esta. Dando click en bien,
voy a copiar esto. Pégalo aquí abajo.
Si me alejo, así es como se ve. Se ve muy bien. Ahora,
te voy a dar un poco de relleno entre la moneda y esto, este texto. Solo asegúrate de que no tienes
relleno aquí para esta moneda. Voy a darle un relleno
aquí a la derecha de cuatro. Entonces tenemos algo de
espaciado con respecto al texto. Si hago clic aquí, y
sólo voy a escribir cero para el texto, ahora mismo son 30. Si escribo 28, creo que es demasiado
pequeño. Vamos a probar 32. A lo mejor es demasiado grande. De hecho, vamos con 34. Ahora, 30 fue un buen número. Vamos a compilar ahora. Ahora hemos
diseñado todo aquí. Ahora para el texto,
voy a cambiarlo en montura de texto de monedas. Para este icono, realmente no
necesitamos hacer nada aquí. Vamos a compilar
y guardar todo. Ahora estamos listos para continuar.
61. 7.02 Animación de interfaz de usuario de moneda: Creo que será genial
agregar algo de animación a este texto para que el juego se vea un poco más
único y mejor. Y siempre es agradable agregar algunas animaciones a tu juego para
que no se vea plano. Siempre son estos
pequeños detalles los que
hacen que tu juego se vea mucho
mejor que los demás. Así que vamos a seguir adelante y
dar click en éste. Vamos a crear
una nueva animación. Sólo vamos
a llamarlo monedas. Haga clic en él, haga clic en Rastrear, agregue el texto cantidad de monedas, y haga clic en este más. Y vamos a seleccionar la transformación. Porque quiero cambiar
la escala de este texto. Yendo a la escala de aquí abajo. Lo que quiero hacer aquí
es después de 0.2 segundos, quiero escalar esto hasta 1.5 Lo mismo
aquí para la Y, 1.5 Ahora es enorme. Después 0.4 voy a ponerla de
nuevo a 1.1 en la escala. Ahora puedes ver cuando juego la animación, en realidad
no la configuró. Aquí voy, de nuevo set a uno, toco la animación. Ahora puedes ver cómo se ve si
solo haces clic en el espacio. Así es como va
a quedar cuando agrego monedas a esta variable
o a esta interfaz de usuario aquí. Se ve bien que
tengas alguna animación de interfaz de usuario. Pero luego compilar,
guardar todo, y continuemos.
62. 7.03 Cantidad de monedas variable: Ahora para la cantidad de monedas
necesitamos agregarle eso al jugador. Volvamos a los planos. Y ahora vamos a abrir el
jugador porque ahora necesitamos
almacenar cuántas monedas tiene el
jugador en una variable. Simplemente hagamos esta variable aquí
abajo y hagamos que sea cantidad de monedas,
llamémoslo así. La cantidad de monedas no puede
tener decimales, así que sólo vamos
a elegir un entero. Ahora bien, si sabes que tu juego
va a ser matiz en números aquí, tienes que seleccionar
un entero 64. De hecho creo que voy
a seleccionar un entero 64 porque un entero o un
entero 64 pueden tener un valor mucho, mucho mayor
que un entero. Sin embargo, de nuevo, un entero
64 va a ser más pesado para la optimización que
usar solo un entero. Pero realmente necesitamos eso porque nuevo estamos creando
un juego clicker Y se sabe en
un juego clicker que la cantidad de monedas puede
entrar en un valor intenso Sigue adelante y selecciona el
entero 64 en su lugar. Hagámoslo así. Ahora voy a eliminar todo
esto y vamos a hacer una nueva variable personalizada
o eventos personalizados. Llamemos a esto una
actualización cantidad de monedas. Vamos a actualizar
cuántas monedas tenemos aquí. Voy a arrastrarlo
en el Set it here, la actualización cantidad de monedas. Podemos darle dos variables. Podemos darle la
cantidad de monedas que queremos actualizarlo
con cantidad de monedas. Este puede ser un
entero porque este es solo un número que necesitamos para más o menos con nuestra variable. No es tan enorme. La otra cosa es que agreguemos otra variable y un lingote, llamémoslo a yo usualmente
otra vez, escribo B en el frente Lo que queremos hacer
aquí es ¿queremos
sumar monedas o queremos
restar monedas? De esto se trata este
evento. Golpeemos a éste
y hagamos una rama. Entonces vamos, ¿quieres agregar monedas o quieres
eliminar monedas? Entonces estas son las caídas. Cuando
quieras eliminar monedas, vamos a establecer esta variable. Si queremos agregar monedas,
podemos tomar esto. Podemos decir pérdida esta cantidad, pérdida este entero,
puedo arrastrar eso ahora, podemos tomar esto y
ponerlo aquí. La cantidad que
entra aquí pierde la cantidad que ya
tenemos en la variable. Agregamos estos dos juntos y los establecemos
dentro de esta variable. Ahora si es menos, otra vez toma esto y di menos, resta,
vamos a
restarlo de aquí. Justo como antes. Vamos a establecer
esta variable. Ahora puedes hacer que este código sea un poco más limpio
eliminando realmente esto. Y puedes hacerlo de otra
manera. Ahora voy a
mostrarte sólo otra manera. Recuerda que hemos trabajado
con Select antes, así que realmente podemos hacer Select. Ahora, cada vez que ves un
copy paste de código como este, siempre intentas pensar, ¿puedo usar un nodo select
aquí para limpiar mi código? En realidad puedes hacer eso
aquí si arrastro aquí y digo Select y puedo
seleccionar este, este nodo dependiendo de si este
bulling es verdadero o falso Y solo puedo
quitar esto por ahora. Si es cierto, significa que quiero agregar monedas. Puedes ver aquí,
si esto es cierto, aquí significa que quiero sumar
la cantidad de monedas. Entonces este es cierto, quiero agregar monedas. Podemos enchufar esto aquí. Éste, si es falso, quiero restar monedas Y luego entra
aquí. Podemos eliminar esto. Ahora se puede ver lo
mucho mejor que consiguió. Ahora sabe del
lingote si queremos
restar o sumar monedas
a nuestra variable Muy bien, vamos a compilar y guardar todo.
Y eso fue todo. Ahora tenemos esta sencilla
función donde podemos actualizar la cantidad de monedas.
Y sigamos.
63. 7.04 Añade monedas a los enemigos: Ahora obviamente lo que
estamos tratando de hacer es cuando hago clic en este
enemigo y el enemigo muere, necesito conseguir monedas para la
matanza que he matado aquí. Lo que tenemos que hacer
es agregar cuántas monedas debería caer
este enemigo cuando
maté al enemigo. La forma en que hacemos esto,
recuerden que tenemos una estructura aquí en las estructuras de
planos Ya hicimos esta
llamada información enemiga. Vamos a
agregarle algo, a éste. Voy a hacer una nueva
variable y llamarla una de monedas para caer. Muy, muy autoexplicativo
y es solo un entero. Y arrástralo, así que sólo voy a arrastrarlo por debajo de la salud. Adelante y ahorra,
guarda todo. Ahora lo que quiero que hagan es
volver a la ficha de datos en Google que hicimos
antes dentro de aquí. Ahora después de la salud,
voy a escribir Click Hacer una nueva columna
a la derecha aquí. Nuevamente, hay que llamarlo con
el mismo nombre que llama a la cantidad variable
de monedas a caer. Podemos arrastrar esto
un poco así. Tenemos que especificar cuántas
monedas debe caer el enemigo. Por ejemplo, sólo puedo
escribir números aleatorios. Por ahora, honestamente no nos
importa en este momento. Podemos dar click sobre esto
para hacer fórmulas. Siempre se puede escribir
igual. Da click en esto y tiempos 1.5 Entonces
puedo dar click aquí y arrastrarlo
hacia abajo y debería llenarlo automáticamente. Esto debería estar bien
para mí ahora mismo. Voy a hacer clic en
Descarga de archivos y descargar CSV. Ahora con este archivo CSV
descargado, voy a renombrarlo una
vez más a DT enemigo info aquí. Dentro de este proyecto, solo
voy a minimizarlo un poco para poder verlos a ambos. Voy a ir a
las tablas de datos. De nuevo, información enemiga, simplemente
haz clic y arrástrala aquí. Y debería
actualizar automáticamente toda esta
información por ti. Ahora hemos añadido cuántas monedas debería caer
cada enemigo
cuando los matemos.
64. 7.05 Actualiza la visualización de monedas: Ahora estamos listos para terminar
esta exhibición de monedas. Volvamos a los enemigos. Ahora bien, lo que quiero hacer
aquí en los enemigos, recuerda que queremos agregarlo
a cuando muera el enemigo. Si voy a este código aquí, cada vez que agregues entradas adicionales a tu estructura,
aparecerán. Entonces solo voy a dar click aquí y esconder pines desconectados Una vez más,
cuando mate al enemigo. Quiero recordar
en el jugador, si voy al jugador, hicimos esta
actualización cantidad de monedas dentro de aquí
cuando mato al enemigo. Antes de hacer este retraso, sólo
voy a
mover este retraso. Quiero llamar a esto
una actualización cantidad de monedas del jugador. Y ya tengo
la variable player. Voy a arrastrar y decir
actualizar cantidad de monedas. Adelante y
conéctalo aquí y aquí. Ahora la cantidad de monedas
con las
que quieres actualizarlo está dentro de
la información aún enemiga. Porque lo hicimos
dentro de la biblioteca. Ahora tenemos que especificar la información del
enemigo o el nombre del enemigo. Ya tenemos eso
de esta variable. Así que adelante y conéctalo. Toma esta ruptura en las
variables para que podamos verlas. Ahora desde aquí voy a arrastrar la cantidad de
monedas hacia aquí. Adelante y esconde esto, y ahora está terminado. Recuerda hacer clic en Anuncio. Porque queremos agregar
monedas y no eliminarlas. Todo debería estar
bien. Adelante y compila. Ve al jugador ahora mismo. Ahora esta información
va a
entrar aquí y va
a establecer esto correctamente. Lo que nos falta
ahora mismo es que puedes ver si mato al enemigo,
no pasa nada. Porque recuerden, no
actualizamos la interfaz de usuario, así que
tenemos que hacerlo. Volvamos a la interfaz de usuario, abra la interfaz de usuario principal. Adelante
y da click en este texto. Para este texto,
solo queremos establecerlo. Voy a la gráfica aquí. Hagamos un nuevo evento. Hagamos un nuevo evento personalizado. Y llamémoslo
actualizaciones cantidad I. Ahora para este evento,
vamos a darle click. Y hagamos una nueva variable
para ésta, nuevamente,
integer 64, porque aquí
vamos a enchufar esta información para
que podamos actualizar la interfaz de usuario. Y llamémoslo
cantidad de puntos uno. Ahora el objetivo aquí es
establecer este texto, la cantidad de monedas arrastran
de esto y dicen texto conjunto. Esto es básicamente lo
que estamos tratando de hacer. Estamos tratando de actualizar el texto y hacer clic y arrastrar
esto aquí. Y debería
convertir automáticamente tu entero en texto y compilar
esto o enchufar esto. Ahora recuerda que también
tenemos una animación. Vamos a arrastrar esta animación de monedas. Y digamos jugar animación. Adelante y enchufa
eso también. Todo debería estar bien. Ahora volvamos al jugador o usemos éste.
Actualizar cantidad de monedas. Sigo adelante aquí y solo necesitamos editar Aquí está
dentro del WB principal, que está dentro del controlador del
reproductor. Y como puedo ver aquí, no
tenemos una variable para
el controlador del reproductor. Vamos aquí mismo en el comienzo. Juega una vez más. Obtenga el controlador del reproductor
y obtenga este. Entonces podemos arrastrar desde
aquí y decir get player controller reference que hicimos desde la interfaz del
blueprint Y haz clic derecho en
promover esta variable y llamarla controlador de jugador. Ahora tenemos esto.
Tomemos esta variable. Solo necesitamos llamar a WB main porque el
evento está dentro de él. Cuanto menos arrastre y
busque WB main, ya
tenemos ese valor. Recuerda entonces podemos arrastrar aquí, decir cantidad de puntos de actualización. Sigo adelante y selecciono esto y bloqueo esta
información aquí. Y todo debería
funcionar bien. Ahora solo voy a aumentar
aquí en el modo de juego, solo
voy a aumentar
el temporizador de ronda inicial, porque a veces es difícil matar
al enemigo
en 3 segundos. Sólo voy a
aumentarlo a 5 segundos, en realidad. Sí, 5 segundos. Bien, Correcto, Y juega. Ahora puedes matar a este enemigo. Como puedes ver la placa de
animación. Y nos dio 15 monedas. Déjame intentarlo de nuevo. Aquí, voy a
matar a este enemigo. Nos dio las monedas. Se jugó la animación, y todo está
funcionando correctamente.
65. 8.01 Añade la caja de desplazamiento de la tienda: Ahora es el momento de trabajar
con la tienda de artículos. Si haces clic en Play,
recuerdas aquí en la Ui, después de que hicimos la
moneda o antes, en realidad creamos
este papel aquí abajo, esta será nuestra tienda de artículos. Solo estoy tratando de mezclar los héroes Cookie
Clicker y Clicker. Como puedes ver
aquí, por ejemplo, solo una imagen de lo que estamos haciendo es que solo estamos
agregando esta parte aquí, esta tienda donde puedes comprar algunas cosas y ellas engendran
en el mapa y así sucesivamente Entonces esto es lo que estamos
tratando de hacer aquí. Vamos a cerrarlo por ahora. Vamos a la interfaz de usuario
y abramos el Maui. Y dentro de aquí,
aquí es donde
queremos que se muestren los artículos. Ahora para hacerlos exhibir, necesitamos una caja de desplazamiento. Busquemos un cuadro de
desplazamiento aquí arriba. Haga clic y arrástralo a la
superposición en la que está dentro de aquí. También asegúrate de que esté
alineado
horizontal y verticalmente dentro de
la caja de desplazamiento. Antes de agregar los artículos, los
necesitamos dentro
de una caja vertical. Porque van
a bajar así. Sólo voy a
tomar una caja vertical, agregarla a la caja de desplazamiento. Para este cuadro vertical, continúe y haga clic en Rellenar. De lo contrario va a ser aquí arriba. Pero queremos
llenarlo todo el camino aquí. Ahora este ya está listo. Ahora puedes ver aquí,
cada vez que agrego un artículo, ahora va a ser un, el top aquí. Y tenemos que darle un poco de
espaciado a los bordes. Ahora realmente no podemos hacer eso porque solo puedo
entrar aquí y escribir
100 y puedo darle algo de
espaciado desde los bordes, pero realmente no puedo
visualizarlo sin que mis cortes de artículo. Voy a hacer esto
más tarde. Por ahora sólo
voy a escribir cero. Esto fue por ahora. Ahora
esta caja vertical de aquí, sólo
voy a cambiarle el nombre
porque la vamos
a usar más tarde. Voy a llamar al VB para cuadro
vertical y
llamémoslo algo así como lista de artículos. Vamos a configurarlo como variable
porque necesitamos agregar algo o necesitamos agregar los ítems más adelante a
esta lista de ítems. Eso fue todo. Cerremos esto y sigamos
con el siguiente.
66. 8.02 Diseño de la tarjeta de artículo de la tienda: Bien, así que ahora es el momento de
diseñar las tarjetas de artículos. Ahora, no vamos a agregar las tarjetas de artículos
a esta interfaz de usuario principal, porque los artículos
que puedas imaginar, cada tarjeta de artículo tiene
información única. Entonces no voy a entrar
de aquí y agregar un texto y luego agregar el
texto a aquí y así sucesivamente, porque esto va a ser mucho trabajo de copiar y pegar y
no tiene sentido Nosotros, básicamente, lo que hacemos para las tiendas en la programación es
que tomas la tarjeta del artículo, diseñas una instancia de la misma, luego cambias dinámicamente toda la información y
el código del artículo con el código, y simplemente duplicas
este artículo Cod y cambias la
información ahí. Intentemos hacerlo para que
podamos entender mejor. Cerremos esto aquí abajo. Volvamos a hacer clic derecho, Hacer un nuevo blueprints de Git Llamemos a este código
comprarlo aquí. Vamos a abrirla.
Ahora, aquí de nuevo, agreguemos un lienzo. Por cierto, lo que estamos diseñando
es algo así. Pero básicamente esto es lo
que estamos tratando de diseñar. Siempre es agradable verlo
antes de empezar, esto es lo que estamos
tratando de diseñar. Puedes intentar hacerlo
tú mismo si así lo deseas. Estamos haciendo lo
deseado en pantalla. Intenta hacerlo tú mismo
si lo deseas. O podemos hacerlo juntos aquí, agregando primero un lienzo, luego adelante y
agregando una superposición, porque necesitamos un fondo
agregando la superposición. Al hacer clic aquí,
agreguemos una imagen también. Este será nuestro trasfondo. Ahora para esta imagen estoy, veamos aquí.
Vamos a las imágenes. Voy a usar
esta. Arrástralo nuevo igual que antes. Cambiarlo para dibujar cuadro
justo en el margen 0.5 Ahora esta superposición aquí, voy a alinearla en el
medio, el punto de anclaje. Y escribiendo 0.5 en la
alineación igual que antes. Porque queremos centrarlo, recuerda que queremos escribir 00 en la x e y, sólo
voy a dar click aquí. O tamaño al contenido aquí, así que está en el medio
aquí, precisamente. Ahora para el tamaño de pantalla, vamos de nuevo a
seleccionar deseado En pantalla, se queda con la pantalla que
hemos seleccionado. La diferencia es si
seleccionas deseado, puedes ver aquí, sin embargo, si voy al
tamaño de pantalla igual antes para escalarlo a mi laptop, dando click aquí, puedes ver que cambia automáticamente
a deseado en pantalla. Aquí está. Es
súper, súper pequeña. Necesitamos aumentar el
tamaño de esta imagen. Ahora bien, podría no cambiar la imagen en sí porque está
dimensionando al contenido aquí. Sólo voy a agregarle
algo de contenido y ver si quedará bien. Para empezar, necesitamos
una caja horizontal. Arrastremos eso
al Overallay. Entonces en el
cuadro horizontal, necesitamos algo de texto. Ahora para el texto,
solo voy a copiar y pegar algo que ya
hicimos para que no tengamos que rehacerlo Yo sólo voy a entrar en
el texto flotante y voy a copiar este
texto entrando aquí. Voy a pegarlo
en la caja horizontal. Para esta imagen, puedo
ver que no está escalando correctamente en la alineación
horizontal y la alineación vertical. Adelante y llénalo. Ahora
para el tamaño de este texto. Voy a ir con un poco
más pequeño, tal vez 26 en su lugar. Y también voy a cambiar el color del contorno a
algo marrón oscuro, algo con este color aquí. Al hacer clic en Bien. También voy a copiar este color de contorno a
los colores de sombra. Aquí le damos este efecto. Entonces le voy a dar una búsqueda de espaciador para espaciador
agregado en la caja horizontal. Para este espaciador, voy
a escribir 15 en la X. Entonces agreguemos una caja vertical, porque ahora necesitamos agregar la caja vertical en
la caja horizontal aquí. Entonces agreguemos ahora el nombre. Simplemente copia pega este texto de nuevo, pega en el
cuadro vertical para este, este es el nombre, por
ejemplo, podemos decir, tenemos algunos elementos más adelante, pero escribamos algo
como Torre Whizz Sólo algo
al azar. No importa ahora mismo para este texto. Esta es la cantidad de artículos
que hemos comprado hasta ahora
de este artículo. Yo sólo voy a escribir 999. Esta es quizás la cantidad máxima de artículos que puedes
comprar en el juego. Ahora debajo del
nombre de este artículo, necesitamos el precio. Voy a hacer
una caja horizontal, porque necesitamos el icono en la
moneda y el precio. Añadiendo el cuadro horizontal
en el cuadro vertical dentro de aquí necesitamos una imagen y luego
necesitamos algo de texto. Ahora para el texto,
sólo voy a copiar pegar esto aquí en
el cuadro horizontal. Por el precio, podemos
escribir algo así como 9457 o algo
así al azar Incluso puede agregar un número más. Me gustaría agregar un número alto porque solo quiero
asegurarme de que mi tarjeta de artículo
no va a ser
abarrotada cada vez
que tengamos como
números grandes para el juego Incluso puedes escribir
un número más si deseas que te guste esto. Para asegurarme de que la tarjeta
se vea bien para este icono, voy a ir a mi
carpeta de iconos y agregar esta
moneda aquí. Arrástralo ahora para la imagen. No lo voy a
dibujar como una caja,
porque la caja es
justo cuando queremos que la interfaz de usuario se escale
cada vez que la arrastramos. Pero para la imagen,
solo voy a aquí, alinearla
horizontalmente y alinearla
verticalmente
en el medio porque tal vez
veas aquí, si lo haces así, puedes ver que se
estira ligeramente. Esto también se nota. Siempre que tengas una interfaz de usuario
que se estire más, la imagen no
escalará correctamente. Simplemente alinéelo en
el medio aquí. Voy a darle
padding a la derecha, así que hay algo de espacio entre el texto y el
relleno de iconos a la derecha. Dale algo así como
tres. Tenemos algo de espaciado. Ahora, también necesitamos
darle algo de espaciado a la caja horizontal aquí, porque está en los bordes. Sólo voy a dar click
aquí para el relleno. Ahora por la izquierda, voy a tratar de
darle algo así como 25. Y a la derecha, vamos a darle 25 también, algo así. Ahora para la cima, probemos
algo así como 15 por 15. Podemos darle un poco más. Creo que si vuelvo a hacer clic
en el cuadro horizontal, vamos a darle unos 16. Creo que le voy a dar más
en la parte inferior de 16, 20. Eso se ve bien. Ahora para
esta textura también, alinéala verticalmente
a la mitad. Esto se ve genial. Bien, sigamos. Ahora para la sombra, en realidad
creo que voy a
escribir en su lugar, porque la sombra
es demasiado fuerte, escribiendo dos en lugar de
tres para esta. Como última cosa,
agreguemos el botón Por. Busquemos botón. En realidad, primero necesitamos una
superposición porque
necesitamos agregar algo de
texto encima de ella. Si agrego el botón,
veamos dónde lo agregamos. Aquí, hicimos esta caja
horizontal. Aquí es donde queremos agregarlo. Arrastrándolo hacia aquí, y
luego buscando botón. Adelante y agrégalo. Ahora para este botón, solo voy a alinearlo vertical
y horizontalmente, así para el estilo. Vamos a los botones
y arrastremos en éste. Arrástralo aquí. Ahora para
el tinte voy a hacer ancho para que no afecte a
nuestro botón para los sorteos, lo
voy a dibujar como
una caja igual que antes. Margen 0.5 Ahora para este botón, sigamos adelante y dale
un tamaño aquí en la x.
Sigamos adelante y
le demos algo de espaciado. Puedes elegir qué tan
grande
quieres que sea tu botón , pero por ahora
solo hagámoslo
así porque primero
agreguemos algo de texto. Si solo copio esto, cópielo y pégalo en la
superposición para este texto, alinémoslo en el
centro del botón. Escribamos algo como y. Esto es lo que va a decir. Ahora le voy a dar un
poco de relleno
al fondo porque creo
que está demasiado cerca del fondo. El acolchado inferior es
algo así como cuatro. Ahora tenemos, se
ve muy bien. Lo que quiero que hagas aquí, quiero que cambies el
color de las monedas. Podemos simplemente usar el
mismo que hicimos antes. Si volvemos al menú principal o
a
la interfaz de usuario principal y podemos
tomar este color aquí, podemos copiarlo y pegarlo en la tarjeta del artículo de la tienda aquí
que es de un color diferente. También para el botón Por, quiero que
lo cambies a otro color, tal vez algo así como el verde. Puedes intentar elegir el color
verde que quieras. Yo sólo voy a ir
con este color verde. Adelante y pega bien. Ahora bien, así es como se ve. Lo que tienes que hacer
ahora es simplemente tratar estilizarlo tanto como
puedas, diseñarlo Aquí puedes aumentar la Y para el botón
si así lo deseas. Se puede ver que éste no se
alinea en el medio. Voy a dar click
en este cuadro vertical y alinearlo al medio. En cambio, se ve más correcto. Ahora para este botón,
no voy a exagerar. Sólo dándole algo de
espacio. Entonces se ve bien. Creo que algo
como tal vez 150 por 75, y así es como se ve. Ahora, puedes darle un poco más espaciado si lo deseas aquí, pero creo que ahora todo
se ve bien. Esta es nuestra tarjeta y siempre
podemos ajustarla. No es como si lo diseñáramos ahora. Y luego podremos tocarlo más tarde. Siempre ajustamos yo
después porque
el juego cambia
cada hora que lo desarrollamos, tal vez en dos días. Creo que esto
no se ve bien. Puedo seguir adelante y
cambiarlo si así lo deseo. Incluso puedo cambiar el
color de esto y así sucesivamente. Sólo tienes que diseñarlo
lo mejor que puedas por ahora. Ahora para este texto, solo
quiero probar algo. Puedes ver aquí,
si escribo aquí, va a escalar toda
esta interfaz de usuario. Y en realidad no
quiero hacer eso. La forma en que evitas esto es
básicamente dándole un ancho mínimo. Si lo puedo encontrar aquí abajo, ancho
mínimo deseado, puedes seguir adelante
y aumentar esto. Como puedes ver, aquí
aumenta este ancho. Para este texto, lo voy
a alinear aquí a la izquierda y también
aquí abajo a la izquierda. En la justificación,
se queda a la izquierda por este ancho
mínimo deseado, creo que voy a escribir
algo así como 50. Siempre que cambiemos el
número aquí en el código, puedes ver si escribo cero. Escribo, por ejemplo, 51. No va a cambiar todo
este diseño. Creo que esto se ve mucho mejor. Tal vez incluso pueda disminuir
el tamaño de éste, escribiendo 20 en lugar de esto. Si vuelvo a escribir 999, puedo disminuir el ancho mínimo
deseado a 45. Así como esto.
Lo mismo con el nombre del ítem. Entonces escribo algo
así como torre o lo hago. Esto de aquí, puedes
ver que cambia el diseño y realmente no
quiero volver a hacerlo. Aquí le voy a dar un
mínimo de ancho de diseño. Tan solo aumentarlo
hasta que estés feliz. Ahora para este texto,
voy a alinearlo de nuevo horizontalmente a la izquierda y justificación a
la izquierda también. Para el ancho mínimo de diseño, voy a hacer
algo así como 150. En realidad, le vamos a
dar un nombre mucho más largo, podemos probarlo. Por ejemplo, si tenemos un
ítem que tenga un nombre largo, por
ejemplo Wizard
Tower Defender o lo que
queramos
escribir aquí, podemos darle un ancho
mínimo diseñado, 200.235 sería el máximo Simplemente podemos quitar
esto con una torre. Nuevamente, para este texto aquí, realidad no va a
afectar porque no
va a conseguir tanto tiempo
que afecta por aquí. Sólo voy a dejar que
este sea por ahora. Pero nuevamente, solo puedes darle un diseño mínimo si así lo deseas. Pero por ahora simplemente no lo haré porque no creo que
vaya a llegar tanto tiempo aquí. El precio, todo
se ve bien ahora. Bien, así que esto fue
para la tarjeta del artículo de la tienda. Y sigamos adelante y
cambiemos los nombres porque necesitamos ajustar el slater Ahora para este texto, voy
a decir el nombre del elemento texto. Este de aquí abajo se
va a llamar texto Precio del artículo por botón aquí. También
lo vamos a cambiar después porque
quiero cambiar el color y hacerlo rojo
si no podemos comprar el artículo. Este por el que voy
a decir texto. Éste es texto. Cantidad de puntos de artículos, realmente no
necesitamos
hacer más aquí. Si compilas y echas
un vistazo a la gráfica, estas son las variables
que tenemos ahora mismo para
el texto para esta interfaz de usuario aquí, creo que todo se ve bien. Siempre podemos
ajustar las cosas después si queremos cambiar algo. Por ahora, guardemos todo
ahora para esto por botón, voy a asegurarme de
que la visibilidad esté establecida para golpear comprobable, así no bloquea el botón
para este botón también Voy a copiar y pegar
al Hoverdm presionado
para el estado presionado Creo que tenemos un
estado pulsado en los botones. Este voy a hacer clic
y arrastrarlo aquí. Para el estado Hoverd, no
tenemos un botón. Sólo voy a cambiar
el matiz de que sea ligeramente diferente cada vez que sobre
el botón y haga clic, bien, adelante y compilar
y guardar todo. Ahora bien, si
quieres probar esto, siempre
puedes volver al
meany y está fuera de aquí Puedes buscar la tarjeta de
artículo de tienda WB que creamos. Y puedes arrastrar esto a
la lista de ítems que hicimos, puedes ver cómo
se ve si solo
controlo D y
lo duplico un par de veces. Esto es lo que parece
si acabo de quitar estos aquí. Ahora lo que puedes hacer es darle algo de espacio. Ahora en el cuadro de desplazamiento, adelante y dale algo de
espacio para el relleno. Puedo escribir 25, puedo
escribir algo como 50. Creo que tal vez 50
es un buen número. Ahora se puede ver que está
cortando a un lado. Lo que puedes hacer es
aumentar el tamaño de éste. Recuerda, esta es
toda la caja vertical aquí. Se puede seguir adelante y
aumentar el tamaño ligeramente. Se puede ver de todo.
Lo que también puedes hacer es hacer clic
en el cuadro de desplazamiento. Solo voy a dar click aquí
en Mostrar siempre la barra de desplazamiento. Es así. También
consume rueda del ratón. Voy a cambiar a siempre para que podamos desplazarnos siempre aquí abajo. Ahora diseñemos también este
asa para la barra de desplazamiento. Quiero que vuelvas a
tus materiales del curso aquí. Y te he dado
este asa deslizable. Importemos esto. Si solo lo consigo hasta aquí, arrastre este control deslizante
a las imágenes. Yo sólo voy a
hacerlo dentro de aquí. Arrástralo aquí, asegúrate de agregar
la configuración de píxeles. Vamos a hacer clic con el botón derecho en acciones, aplicar papel a la configuración. Ahora volvamos a la interfaz de usuario, abramos la interfaz de usuario principal, y dentro de aquí, haciendo clic en el cuadro de desplazamiento. Y baja y puedes encontrar este
llamado estilo bar. Al hacer clic en él, teníamos aquí esta imagen entumecida
normal. Puedes cambiarlo al asa
del deslizador. Ahora puedes ver que cambia. Ahora otra vez para el margen de la caja, voy a escribir 0.5 en su lugar para el grosor de la barra de
desplazamiento. Se puede lo ancho que debe ser. Creo que le voy a dar
algo así como 18. También puedes
darle un poco de relleno, algún espaciado entre
esos elementos. Y este mango, sólo voy a escribir cero en todos
ellos por ahora. A la izquierda, voy a dar algo así
como diez, así que tiene algunos a la cima. A ver si
creo que debería permanecer igual. En realidad, cero en la
parte superior, la derecha es cero. El fondo es cero también. Vamos a probarlo así. Sólo voy a duplicar esto
un par de veces También puedo ver la sombra
aquí abajo, cómo se ve. Bien, todo se
ve genial. Ahora vamos a hacer clic en este cuadro vertical Y
aumentar el tamaño de la misma. Entonces no lo es, creo que se ve genial hasta ahora.
Así es como se ve. Siempre puedes reducir el tamaño de este artículo si lo deseas, si el nombre es demasiado
largo. O puedes hacer, hacer el nombre más pequeño para
que tengas espacio motor. Pero de nuevo, podemos
ajustarlo más tarde si así lo deseamos. Pero por ahora,
volvamos al artículo de la tienda, Cod. Lo que quiero hacer dentro de aquí es que quiero darle un
poco de espaciado porque se puede ver que
no hay espaciamiento entre estos elementos dentro
de los cods de artículos de la tienda Voy a dar click
sobre la imagen aquí. Sólo voy a
darle un poco de relleno la parte superior e inferior. A la cima, tal vez seis y
a los seis inferiores también. Tratemos de ver cómo se ve
eso. Eso se ve mucho mejor. De hecho, vamos a darle cinco
en lugar de 65 por cinco. Nuevamente, si lo
deseas, siempre puedes aumentar
el tamaño del botón. No es esto para la X, Para la Y, en realidad, volveré a aumentar,
un poco, algo
así como 80 en su lugar. Solo recuerda copiar este tamaño de imagen al hoverd
y a la prensa también Comp, compilar, guardar todo. Aquí está lo que parece. Se ve muy bien. No creo que
vayamos a cambiar más cosas si
solo lo maximizo. Así es como se
ve. Para mí. Podría hacer el
texto un poco más grande. En realidad, déjeme hacer eso.
Es un poco demasiado pequeña. En mi pantalla, puedo hacerlo
como 20 para el texto aquí arriba, el precio también, y 22 o 24 para los artículos aquí compilar. Espero que no necesitemos ajustar
el ancho mínimo deseado, pero podemos hacerlo
más tarde si es necesario. Creo que esto se ve mucho mejor. Bien, estos son
los artículos que tenemos. Todo se ve bien. También para el botón de compra, voy a
cambiarlo a 20 también. Ahora ya hemos terminado.
Vamos a guardar todo, y cerremos
todo. Y ahora estamos
listos para continuar.
67. 8.03 Estructura y tabla de datos: Antes de que podamos
continuar con esto, obviamente
necesitamos algunos
elementos con los que trabajar. Quiero que vuelvas a entrar en tus materiales de
costo, y quiero que entres
en la carpeta de objetos. Dentro de aquí, te he
dado algunos íconos y puedes usarlos
como elementos en el juego. Así que adelante y
vamos a importarlos. Vamos a los activos
dentro de aquí, voy a hacer click derecho
y hacer una nueva carpeta, llamémosla objetos. Adelante, importa todos
estos aquí. De nuevo, voy a dar
click en todas ellas. Haga clic derecho y aplique papel a la configuración una
vez más. Ahora los tenemos. Ahora para poder
utilizarlos intuitivos, recuerda que tenemos que
cambiarlos en sprites. No podemos simplemente arrastrar
texturas como esta, así que seleccionémoslas todas. Haga clic derecho y continúe y diga Crear Sprite. Ahora no necesitamos extraer
porque recordar
extraer es sólo cuando tenemos múltiples sprites en una imagen Ahora mismo es sólo un
sprite en una imagen. Así que solo podemos seguir adelante y
hacer clic en Crear Sprite. Aquí tenemos los sprites. Voy a hacer
click derecho y hacer una nueva carpeta llamada Texturas, porque básicamente ya no
necesitamos todas esas. Voy a hacer click en todas estas texturas y
voy a
arrastrarlas a esta carpeta. Ahora sólo podemos ver los sprites. Adelante y guarda todo. A continuación, bajemos
a los planos. Y sigamos adelante y
hagamos nuestra estructura. Vamos a abrir la carpeta de
estructuras. Hacer una nueva estructura de plano, información
del artículo, información del artículo ST Adelante, ábrelo. Ahora podemos agregar variables a lo que queramos
para esta información del ítem. Ahora para la información del artículo, obviamente
necesito el
nombre del artículo. Sólo tienes que ir a la derecha nombre, seguir adelante y seleccionar cadena Guardar. Hagamos una nueva variable. Llamemos a esto una clase. Y esta va a
ser la clase base de ítem. Puedo ver aquí que aún no hemos
creado una base de artículos. Sigamos adelante y hagamos eso en los planos Aquí no
tenemos una carpeta para esto Voy a escribir click hacer
una nueva carpeta llamada Items. Dentro de esta
carpeta de artículos. Escribamos hacer una nueva
clase de plano para esta Ahora para los artículos, solo
quiero que sean sprites
normales que quiero
engendrar en el mundo En realidad voy a
buscar sprite y seleccionar el actor sprite de papel Adelante y selecciona éste. Voy a
llamarlo BP item base. Ahora te puedes imaginar cuando ya estás
creando un juego. Ahora tienes que decidir qué
va a contener tu artículo. Porque puedes ver aquí
si más tarde decido que mis artículos son libros animados de
papel flip books. Y tengo que seguir adelante y
crear un plano aquí, buscando flip book en su lugar, e ir a seleccionar
este en su lugar Crea tu base de artículos
en un plano incorrecto. Esto va a
ser un dolor para ti porque tienes que
recrear todo una vez más justo cuando ya estás
creando un juego a partir de Ahora, ¿decide que tus
artículos están animados? Si lo son, hay que
seleccionar un flipbook de papel,
obviamente, porque los
libros flip son animados Sin embargo, si no
tienes animaciones para los elementos, sabes que
puedes
seleccionar un sprite en su lugar Solo asegúrate de
saber todo esto antes de
crear el plano Sé que mis artículos aquí, no
están animados,
son solo imágenes aquí. Sprites, creo sprites de
papel en su lugar. Ahora tenemos esta base de artículos. Ahora realmente no necesitamos
hacer nada con ello. Así que volvamos
a la información del artículo. Yo solo quería
crearlo aquí en mi clase. Puedo buscar base de artículos, puedo seguir adelante y
seleccionarlo como referencia de clase. La razón por la que seleccioné
como referencia de clase es que
esto suele ser lo que haces
cuando quieres generar artículos Recuerda dentro
del plano, abro el controlador del jugador,
usamos esta clase, esta es una clase de actor de
referencia de clase Y usamos esto para engendrar cosas. Quiero generar
el artículo más adelante, así que voy a agregarle esto. Entonces queremos escribir sprites porque quiero
saber qué sprite tiene. Voy a buscar sprites y seleccionar la referencia del
objeto Papa Sprites Lo último que quiero agregar es ¿cuánto cuesta este artículo? Costo de las monedas. Adelante y busca, solo
vamos a seleccionar un entero. Sólo un entero. Ahora tenemos esto terminado,
la info del artículo. Ahora sigamos adelante y
agreguemos una tabla de datos para ello. Abra la tabla de datos. Clic derecho Mesa
Micellaneouselta. Tengo que seleccionar la estructura
item info, la Coca Cola. Llámalo T item info. Ahora
lo estoy pasando un poco más rápido que antes porque ya
lo hemos hecho dos veces antes. Ahora este ítem info, necesitamos una tabla de datos para ello
dentro de Google Sheets. Quiero abrir Google
Sheets una vez más aquí. Déjame duplicar esto, información de nivel
TT, ¿verdad? Duplicarlo. Llamemos a
este de aquí abajo. Cambiemos el nombre
a la base del artículo DT. Ahora, dentro de aquí,
voy a borrar todo esto. Elimine todo esto nuevamente. Ahora para los artículos, tengo que escribir el nombre
de cada artículo individual. Por ejemplo, puedo
tomar el primero y siempre
puedes copiar y
pegar el método. De nuevo, hay que escribir los mismos nombres de variables que lo que hiciste dentro de la
estructura aquí arriba para escribir nombre. Y luego
tenemos que escribir sprites, y luego tenemos el costo de las monedas, que escribirlas exactamente
como las escribimos aquí, lo
contrario no va a funcionar Entonces lo segundo es
que hay que anotar la
información. Ahora si vuelvo a mi
mesa ahora para el ID, tienes que escribir el nombre del elemento. Si vuelvo a los objetos, encuentro uno de los artículos. Por ejemplo, digamos que el
primer elemento es esta pluma. Puedo llamarlo como quiera. Por ejemplo, quiero
llamarlo padre ligero. Puedo copiarlo y pegarlo en
el nombre de la clase. Aún no lo hemos creado. Voy a los artículos la clase. Tengo que hacer clic
derecho aquí. Crear una clase de plano infantil. Ahora tengo que crear
todos los artículos. El primero se
llama BP Light. Puedes intentar ajustarlos en cualquier secuencia
que desees. Por ejemplo, la pluma ligera es el peor elemento del juego. Por ejemplo, esta llamada o este arcoíris podría ser el
mejor elemento del juego. Simplemente puedes ajustarlos en cualquier secuencia
que desees, pero solo tienes que
crearlos todos. Por ejemplo, puedo
crearlos en una secuencia aleatoria. Por ahora, por ejemplo, esta corona del mal. Ahora puedo ir a los artículos, hacer clic
derecho en la base de elementos,
crear blueprint hijo Llámalo BP marrón del mal. Volver a los objetos, voy a copiar el sombrero del Gran Mago. Y solo haz lo mismo
para todos los artículos. Y volveré contigo una vez que los haya creado todos. Bien, ahora estoy de vuelta. He creado todos los
artículos aquí de niños. Así que básicamente hago clic derecho y creo vidrio
plano infantil Simplemente dándole el nombre de
los artículos que tengo aquí, los que
importamos por aquí. Ahora las tengo todas. Sigamos adelante y guardemos todo. Ahora lo que puedes hacer
es volver a la tabla de datos para obtener
esta información aquí. Para obtener la información de clase, normalmente solo
voy a
la tabla de datos A y agrego una
fila y solo la selecciono aquí, por ejemplo. Puedo seleccionar el Lucky o
pluma ligera por ejemplo. Y luego puedo sostener Mayús, hacer clic
derecho para copiar, y luego puedo
abrir mi tabla de datos, controlar V para pegarla. Básicamente así es como lo haces. Ahora puedes ver que tienes
esta pluma ligera pegada. Ahora de nuevo, hay que escribir
todos los artículos aquí. Ahora bien, muy importante,
esta va a ser la secuencia de tus
artículos, qué buenos son. Solo asegúrate de
escribir
primero los peores artículos y luego
se pone mejor y
mejor escríbelos en cualquier
secuencia que desees. Yo sólo voy a hacer
eso aquí también. Ahora bien, los he escrito
todos en secuencia que desee. Acabo de escribir una secuencia aleatoria
aquí para todos los artículos. Ahora para cada una de estas clases, nuevamente, hay que entrar aquí, abrir la tabla de datos para
la información del ítem, seleccionar, por ejemplo, la
siguiente que es, vamos a seleccionar justo en secuencia. Por ejemplo, Corona del Mal. Vuelve a la tabla de datos, pégalo aquí para
la Corona del Mal. Ahora vuelve otra vez, selecciona
las cabezas de los grandes hechiceros. Pégalo en
las cabezas de mago aquí en adelante. Solo hazlo
por todos ellos. Ahora para el sprite, es mucho más fácil porque solo
puedes minimizar esto Ve a tu sprite
aquí en los objetos. Para cada sprite,
haz clic derecho en referencia, luego puedes volver aquí, pegarlo para la Corona del mal Ahora por ejemplo, el siguiente, cabeza
del asistente
clic derecho haga clic en referencia. Volver a la tabla de datos, pegarlo aquí, y así sucesivamente. Hazlo también por el sprite. Ahora por el costo de las monedas, puedes hacerlo al azar. Ahora puedes escribir algo así como que el primer artículo está
costando 15 monedas Yo sólo voy a escribir igual
pinchando sobre este número, nosotros veces 1.5 Entonces
sólo voy a dar click y arrastrar
esto a todo este campo. Por lo que automáticamente
agrega el número para mí. Realmente no importa
cuál sea el precio por ahora. Siempre se puede ajustar más tarde. Por ahora sólo vamos a
programar. Sólo voy a llenar
todo esto ahora mismo. Bien, ahora he llenado
toda la información. Sigue adelante y haz clic en
Archivo y descarga. Descárgalo como archivo CSV. Ahora adelante y cámbiale
este nombre a DT base. Volvamos a la tabla de datos. En realidad, DT base lo llamó
info. Ese es mi error. Información del artículo. hay que corregir eso dentro
de la tabla de datos aquí. Llámalo info en su lugar, esto. Ahora podemos arrastrar
esto aquí y debemos importar automáticamente toda la información para nosotros. Entonces ahora tenemos
todo lo que necesitamos. Ahora el paso final
que tenemos que hacer, justo antes de terminar esto, siempre
podemos ir a las bibliotecas. Ahora, dentro de las
bibliotecas anteriores, agreguemos una nueva función llamada get item info porque la
necesitamos más tarde. Vamos a agregar aquí entrada, llamarlo nombre T, eso es una cadena. Ahora para el itam,
volvamos a arrastrar. Al igual que antes,
podemos entrar aquí. Y básicamente es todo esto. Incluso puedes copiar y pegar
todo esto aquí. Estamos reemplazando todos los
espacios como puedes ver aquí. Queremos aquí la información del ítem DT y podemos hacer un nodo de
retorno, return, devuelve la información
para este ítem aquí, solo
puedo escribir información del ítem, compilar, asegurarme
para este item info que haya seleccionado puro. Porque solo queremos
obtener la información,
guardar todo. Eso fue. Ahora tenemos todo lo que necesitamos
para la información del artículo. Si solo quieres probarlo, siempre
puedes entrar en
el jugador por ejemplo, legítimamente puedes decir
obtener información del artículo Aquí ves que tienes el nombre del artículo que
puedes enchufar y vamos a agregar el nombre del artículo antes de que terminemos esto,
solo un poco de
contenido extra aquí, podemos
terminarlo base de artículo. Vamos a abrirlo aquí para
las variables que quiero agregar. Incluso podemos llamarlo
nombre o nombre. Vamos a llamarlo nombre del elemento. Vamos a darle una variable de cadena. Compila ahora, ya que lo
agregué al padre, todos los
hijos del blueprint heredarán esta variable si abro la
corona del mal por ejemplo, puedes ver aquí
tiene nombre de ítem y tienes que escribir este nombre de
ítem correctamente Ahora porque este es el nombre del elemento que va a extraer la información
de esta tabla de datos. Si llamas a éste, por
ejemplo, Corona del mal, aquí
va a encontrar
Corona del mal. Más adelante va a tomar
toda esta información. Sabe qué clase tiene, qué sprite, lo que
cuesta, y así sucesivamente Entonces hay que escribir
esto correctamente y podemos usarlo más tarde. Nuevamente, da clic en todas ellas. Escribe el nombre de ellos
para Gran Mago. Agregar para esta
base de un artículo comp, no tenemos nada. Corona del Rey, ¿verdad? Reyes redondos. Yo sólo voy a hacer
eso por todos ellos. Bien, esta es la última
que es la antorcha. Sigamos adelante y compilemos
y guardemos todo. Ahora tenemos todo lo
que necesitamos. Adelante, guarda todo, y pasemos
a la siguiente lección.
68. 8.04 Crea tarjetas de artículos en la tienda: Muy bien, ahora sigamos adelante
y creamos el artículo de la tienda. Od, vamos ahora
a los planos. Abre la ley de control de jugadores, porque recuerda aquí
es donde hacemos la interfaz de usuario. Cualquiera que sea la interfaz de usuario que tengas que hacer. Normalmente hago eso en
el control del jugador. En lugar de aquí, voy
a hacer un nuevo evento nuevo, evento
personalizado. Llamemos a
este crear artículos de tienda. Porque ahora necesitamos
crearlos dinámicamente
a través del código. Recuerde que para la tarjeta de artículo de la tienda, básicamente
diseñamos una tarjeta aquí como una tarjeta estática con toda la
información siendo estática. Pero ahora necesitamos cambiar todo este texto aquí para que
sea dinámico a través del código. Es por esto que primero
tenemos que crear la carta y luego
tenemos que mostrarla en parte superior del menú donde
tenemos este cuadro de desplazamiento aquí
en el control de juego. Hagamos esto. Crear tarjetas de
artículos de tienda. Lo que queremos hacer básicamente, es usar este
llamado create widget aquí. Crear widgets. Y queremos
crear la tarjeta de artículo de tienda. Este es nuestro principal objetivo. Ahora tenemos que crear esto
para cuántos artículos tenemos. Recuerda, esta
información está disponible dentro de la
tabla de datos que creamos aquí. Ya sabemos cuántos
elementos tenemos de aquí, en realidad
sabemos
cuántos de estos widgets
necesitamos crear. Básicamente, puede hacer esto haciendo clic
derecho y diciendo, obtener nombres de fila de tabla de datos. Recuerda esta que usamos
dentro de la biblioteca de funciones, pero ahora necesitamos usar esta. Obtener nombres de fila de tabla de datos. Así que estamos obteniendo todos
los nombres dentro de
esta tabla de datos. Ahora tenemos todos los nombres
de los artículos aquí. Vamos a conectarlo. Lo que podemos hacer ahora es ahora, en lugar de conectarlo aquí, porque necesitamos crear un widget para cada uno
de esos elementos, lo que podemos hacer es que
podamos arrastrar aquí y decir cuatro cada bucle. Ahora vamos a hacer un bucle. Ahora para cada uno de esos elementos, adelante y crea un widget. Entonces cuando creas el widget, quiero agregarlo a una matriz. Si hago una nueva
variable aquí abajo, y la llamo, puedo cambiar el tipo a
este widget que creamos. Tarjeta de artículo de tienda. Si solo
busco un artículo de tienda y este de
aquí, continúe y selecciónelo. Quiero cambiar esta a
una matriz. Puedes hacer clic aquí,
o en realidad aquí arriba. Y puedes seleccionar array, o simplemente puedes hacer click derecho sobre este icono y éste
lo cambia en una matriz. Ahora para esta
tarjeta de artículo de tienda, qué es una matriz, si no sabes ya tienes las variables individuales
aquí y tienes una matriz, Una sola variable es donde básicamente igual que
antes la
usábamos, almacenaremos una sola pieza de información en esta variable
para que podamos usarla más tarde. Ahora, para una matriz, esto está
almacenando información múltiple. Podemos almacenar todos los
widgets que creamos. Podemos almacenarlos aquí
para obtener esta información. Puedes arrastrar y obtener,
y obtienes el índice de
información en el que se Si hago clic en esta matriz
aquí, en realidad se puede ver clic en el más.
Y puedo seleccionar un artículo y puedo hacer clic
en el más nuevamente, seleccionar otro artículo
y puedes continuar. Se puede ver que guarda
múltiples datos. Sin embargo, para una sola, puedes ver que solo puedes guardar una sola pieza
de información. Pero para una matriz,
puede guardar múltiples. Sólo vamos a
eliminarlos a todos. Puedes ver aquí cuando
tengas todos los widgets, también
puedes escribir
para cada bucle. Ahora puedes hacer
algo con cada uno de esos artículos que has
guardado dentro de aquí. Vamos a guardar
este widget aquí. Para cada uno de los ítems
creamos un widget. Cada uno de esos widgets,
voy a drake aquí y digo Add, vamos a agregar esto
a la tienda. Tarjetas de artículo como esta. La razón por la
que necesitábamos cambiarlo a la tienda Se
widget aquí, escriba. Porque recuerda si
sostienes el mouse sobre esto, esta también es una referencia de objeto shop
it. Ahora bien, si intentas hacer otra
cosa, por ejemplo, si solo busco base de
jugadores para jugador y selecciono este jugador PP
y lo convito en una matriz, trato de agregar esto aquí. Se va a decir que la referencia de objeto de
artículo de tienda no
es compatible con la
referencia de objeto del reproductor
porque no son del
mismo tipo de variable. No se puede hacer esto,
tienen que ser del mismo tipo de
variable. Antes de poder
agregarlos dentro de aquí, permítanme simplemente eliminar este. Ahora creamos un
widget para cada uno de esos elementos y lo almacenamos
en esta variable de matriz. Ahora también quiero
asegurarme de que esta matriz aquí no
tenga nada dentro de ella. Antes de hacer esto aquí, antes de hacer nada, permítanme copiar esto, pegarlo y decir claro. Porque quiero
borrar esta matriz antes de comenzar a agregar
elementos a ella. Ahora básicamente
terminamos de crearlos. Esto fue por ahora. Sigamos adelante y
compilemos y pasemos al siguiente.
69. 8.05 Visualización de tarjetas de artículos de la tienda: Bien, así que ahora estamos listos
para mostrar las tarjetas de artículos. Ahora antes de hacer esto, voy a eliminar
todos esos. Así que selecciona estas tarjetas de
ítem que agregamos previamente a la lista y sigue
adelante y borra compilar. Ahora lo que podemos hacer dentro
del controlador del reproductor, nuevamente, hagamos con razón
un nuevo evento personalizado. Vamos a llamarlo
tienda de exhibición It tarjetas. Ahora vamos a exhibir esas tarjetas que
creamos antes. Antes de hacer esto, de nuevo, tengo que aclarar lo que tengo
dentro de esta caja de pergamino. Recuerda que tenemos
esta lista de artículos VB. Volvamos al controlador del
reproductor. Tome este WB principal, porque esta o esta lista de elementos de la lista
VB está dentro de la principal de WB. Puedo arrastrar desde aquí
y decir VB item list, digamos claro niños. Porque quiero
borrar todos los artículos que están dentro de él
antes de agregar mi tarjeta. No muestra cosas
aleatorias. Además, si creas
las tarjetas de artículos de tienda más adelante
por alguna razón para tu juego, asegúrate de eliminar las antiguas antes de
agregar las nuevas. Ahora tomemos las tarjetas de
artículos de tienda que tenemos. Ahora podemos decir para
cada bucle conectado. Ahora para cada una de
esas tarjetas de artículos, queremos agregarla a esta lista. Puedo copiar esto,
pegarlo y decir agregar dos. Agrega child a la caja vertical, selecciona esta, y ahora agrega esta dentro de aquí. Para cada una de las
tarjetas de artículos de tienda que obtengo aquí, continúe y agréguelo a la lista. Eso es básicamente todo
si compilo ahora. Porque aquí si hago clic en Reproducir, realmente
no pasa nada. Porque recuerden que
nunca hemos llamado a estos eventos. Hagámoslo en el
inicio de los jugadores o el inicio de juego aquí. Porque normalmente solo
tienes que pensar
en tu juego, ¿
cuándo o dónde
quieres llamarlos a estos? Quieres llamarlos
desde el jugador, desde el controlador del jugador. Ahora se muestran
dentro de mi Ui principal, así que en realidad puedo hacerlo
dentro de Begin Play. No obstante, si esto estaba mostrando dentro de mi, por ejemplo, un botón aquí que
tuve que presionar un botón para abrir la tienda, entonces no lo mostraría
dentro del Begin Play. Yo lo crearía.
Si puedo subir aquí en el Begin
Play y decir Create, shop It cards y llamar a este
evento que creamos. Ahora estamos convocando a este evento aquí
abajo. Eso es correcto. Ahora bien, si estuviera
dentro de un botón, si tuviera que presionar un
botón para abrirlo, no
escribiría esta
pantalla en la reproducción de inicio. Lo escribiría cada vez que
hago clic en el botón. Entonces quieres mostrar las tarjetas de artículos de
la tienda. Pero ahora mismo tenemos
esto en la principal, realidad
queremos
mostrarlo enseguida. De hecho, puedo escribirlo
aquí cada vez que creo las tarjetas de artículos de tienda y todo se agrega y
todo está completo. Aquí en el terminado, quiero
decir mostrar tarjetas de artículos de tienda. Entonces lo está haciendo correctamente. Vamos a compilar y hagamos
clic en quejarnos ahora. Y puedo ver que no pasa nada. Y esto se debe a
que en realidad olvidé seleccionar aquí la información del artículo DT. Si compilo quejarme
ahora, ahora puedes ver todos mis artículos. No es con
información correcta porque recuerden aún no le
hemos dicho dónde debe estar
el título, cuál debe ser
el precio. Tenemos que actualizar esto, pero puedes contar aquí
tienes 1-234-567-8910 Eso es correcto porque
dentro de la tabla de datos, también
tenemos diez ítems. Ahora en realidad está mostrando la cantidad correcta de
artículos en nuestra lista. Esto es lo que queremos. Puedo ver hay un error con
esta barra de desplazamiento. De hecho voy
a corregirlo
enseguida Si acabo de hacer clic
en este cuadro de desplazamiento, el pulgar normal,
solo voy a pegarlo. Para los florecidos, para
el Dr. Y rondados, incluso se
puede cambiar ligeramente
el tinte Tiene algún efecto
para el arrastre también. Voy a cambiarlo un poco. Bien, haz clic en jugar ahora. Todo debería estar bien. Bien, ahora todo se
muestra correctamente. Sigamos
con el siguiente.
70. 8.06 Dale a cada tarjeta de artículo la información correcta: Ahora tenemos que
pensar en cómo
le damos a cada tarjeta de artículo la información
correcta. Entonces podemos cambiar el nombre de la misma, podemos cambiar el
precio, y así sucesivamente. Entonces vamos al interior de la gráfica. Dentro de aquí, quiero
hacer una nueva variable. Llamemos a esto información de un artículo. Cambiemos el tipo de la
misma a información del artículo también. Y podemos seleccionar la
estructura que hicimos. Bien, adelante y compila. Y puedo ver por la estructura ahora tienes toda
esta información, pero ahora mismo está vacía. Entonces, ¿cómo obtenemos la información
correcta del artículo? Toda esta información aquí. ¿Cómo obtenemos esto dentro
de la tarjeta del artículo de la tienda? que podamos establecer el
texto para el título, establecer el texto para el precio,
y así sucesivamente correctamente. La forma en que hacemos esto es si vas al gráfico de la tarjeta del artículo de la tienda, clic en esta
información del artículo y la configuras instancia editable
y expones en spawn Compilas y vuelves al controlador
del reproductor
ahora y haces clic en Archivo,
Refresca todas las notas. Puedes ver aquí, te das cuenta que apareció esta información del artículo. Y nuevamente, esto se
debe a que presionamos la instancia Editable
y exponemos en spawn Va a ser expuesto
cada vez que creamos el widget. Ajá. Ahora podemos tomar
esto y decir obtener información. Y en realidad no
podemos hacerlo directamente porque es una cadena. Tally puede decir obtener información del artículo. Recuerda, esta es
la función que creamos en la biblioteca de funciones. Ahora podemos arrastrar esto aquí, y va a convertir tu cadena de nombre o
tu variable de nombre en
una variable de cadena. Ahora podemos registrar la información de este
artículo aquí. Ahora para cada uno de esos elementos, básicamente lo que está haciendo
es obtener estos elementos para cada uno del nombre del elemento
o cada uno de los nombres del elemento. Si voy a la información del artículo, recuerda que tenemos un nombre. Va a usar esa
información para obtener
información aquí. Entonces básicamente
va a leer, por
ejemplo, con
una pluma ligera, va a obtener esta
información para la antorcha, va a obtener esta
información y así
sucesivamente para cada una de ellas. Se va a enchufar a la tarjeta respectiva
que creamos. Entonces ahora tenemos esta información realmente
almacenada aquí. Ahora podemos continuar con las
siguientes lecciones donde
realmente podemos agregar o actualizar la
información para esta tarjeta.
71. 8.07 Cómo mostrar la información de la tarjeta de artículo correcta: Ahora que tenemos la información correcta del ítem dentro
de esta variable,
sigamos adelante y
actualicemos la información. Sólo voy a borrar
todo esto por ahora. Empecemos con la construcción del
evento. La construcción del evento se
jugará cada vez que cree
el widget aquí. Recuerda que hicimos las tarjetas de
creación de artículos de tienda. Cada vez que creas el widgit, este comenzar a jugar o incluso construir se va
a jugar Vamos a actualizar la
información dentro de aquí. Simplemente lo que queremos
hacer es comenzar con el
nombre de este ítem, haciendo clic en él. Recuerda que ya le
cambiamos
el nombre y
lo configuramos en una variable. Y eso lo hicimos
por todos esos. Al dar clic en el
primero, nombre del elemento, arrastrarlo hasta aquí,
arrastrar y decir texto conjunto Esto es básicamente
lo que queremos hacer. Queremos establecer el
texto correctamente. Queremos tomar esta información
del ítem ahora arrastrarla y decir break. Así podemos ver todas
las variables. Simplemente podemos arrastrar
el nombre de los elementos dentro de aquí y
se actualizará. Adelante y
conéctelo. Y ya puedes ver esto funcionando si
haces clic en Reproducir ahora. Y ahora ves que tienes el nombre correcto
para todos ellos. El Casco de Noche Protector, Corona del
Rey, y así sucesivamente. Se está actualizando correctamente. De esta manera sabes
que se está mostrando la
información correcta . Bien, ese era el nombre del artículo. Lo segundo
que quiero actualizar es el precio. Da click en éste. Arrastrémoslo y digamos Set Text. Ahora por el precio, vamos a
hacer clic en éste. Voy a mostrar
el costo de las monedas. Voy a conectarlo aquí. Descomponerlo. Ahora
si haces clic en Reproducir, puedes ver que esto también se
muestra correctamente. Ahora por la cantidad de
artículos que hemos comprado, cada vez que haces clic y
compras y compras un artículo, tienes
que almacenarlo en una variable, porque más adelante
necesitas saber
cuántos de esos artículos
has comprado. Ahora por la cantidad
de artículos que compramos, creo que voy a almacenar esta
información dentro del jugador. Si abro el jugador
y aquí dentro, hagamos una nueva variable. Llamemos a esto ollas de un artículo. Ahora vamos a cambiarlo
en una cadena porque necesitamos saber de qué ítem
estamos hablando. Ahora voy a
cambiarlo en un mapa. Necesito
explicarte lo que es un mapa. Si solo arrastras esto aquí, podemos ver que un mapa es una conexión
entre dos variables, en lugar de ser
una variable. Ahora tenemos dos variables en una aquí me compilo aquí abajo, hago clic en más, se
puede ver que hay un
campo en el que puedo escribir. Esta es básicamente la variable de
cadena de aquí. Puedo establecer un número
aquí, y esta es la variable
entera. ver que tenemos una cadena
y un entero, y básicamente puedes
tener tantos como queramos. Para lo que quiero usar esto
es que queremos tener el artículo, por
ejemplo, Corona del Rey. Y entonces, ¿cuántos
de la Corona del Rey hemos comprado hasta ahora? Así es como vamos
a utilizar esta variable. Pero un mapa, básicamente puedes
cambiarlo en cualquier cosa. Por ejemplo, puedes
cambiarlo a un entero aquí. También puedes
cambiarlo a una transformación. Por ejemplo, por aquí, ahora puedes ver que
puedes usarlo así, donde tienes un número que
es básicamente el entero. Entonces tienes la transformación. Si haces clic aquí,
podrás ver la transformación. Básicamente, puedes almacenar tal vez la cantidad de transformaciones que tengas en el mapa o
lo que sea, algo aleatorio. Pero como puedes ver, un mapa es una conexión entre
dos variables. Pero permítanme simplemente
cambiarlo en una cadena por ahora y cambiar el segundo
en un entero porque básicamente quiero
tener de qué artículo estamos
hablando y cuántos de este
artículo hemos comprado realmente. Esto es para lo que estás
usando un mapa. No compilé ahora
para estos artículos comprados. Permítanme ahora volver a
la tarjeta del artículo de la tienda. Y necesito una referencia a
mi jugador porque necesito
usar esta variable en
el constructo del evento. Déjame usar mi interfaz de
blueprint. Consigue el personaje de juego
primero, consigue jugar. Entonces desde aquí podemos arrastrar y decir get
play nuestra referencia. Recuerda que esta es la
interfaz de blueprint que creamos. Clic derecho, Promociona
esto a nuestra variable y llámalo
peón jugador por ejemplo Y adelante y conéctelo. Ahora que tenemos la variable, ahora
podemos tomar este peón de
juego y podemos
usarlo diciéndolo spots y
podemos obtener nuestra variable Lo que queremos hacer,
básicamente si vuelvo, este es el punto de ítem,
si lo acabo de arrastrar adentro, simplemente
queremos establecer
el texto igual antes de escribir set text,
seguir adelante y conectarlo. Esto es básicamente
lo que queremos hacer. Necesitamos saber cuántos de
este artículo hemos comprado y de qué artículo
estamos hablando. Podemos arrastrar aquí y
decir por ejemplo, si no sabes lo
que puedes hacer con un mapa, siempre
puedes buscar mapa. Y ahora puedes ver todas
las funciones que
puedes usar para un mapa. Por ejemplo, puedes buscar, encontrar porque queremos encontrar el artículo aquí cuando encontremos
el artículo específico, por ejemplo, Corona del Rey. De aquí, si puedo
deletrearlo, Corona del Rey, entonces desde aquí
sabemos cuántos de este artículo hemos comprado y de hecho
podemos exhibirlo. En lugar de escribir aquí, lo que puedes hacer es
que ya
sabemos qué artículo es porque
tenemos la información del artículo. Para que podamos arrastrar esto
y romper aquí. Y luego tenemos el
nombre del ítem al cual podemos conectar una variable. Ahora
va a tomar este nombre de artículos
en el que estamos y va a enchufarlo. Y a partir de ahí va a
encontrar el artículo y luego
va a encontrar ¿cuántos de estos artículos has comprado
realmente? Pero ahora mismo no
hemos guardado realmente nada dentro de
estos artículos comprados. Entonces está vacío en este momento, pero tendrá
algo de información más adelante cuando
realmente compremos artículos. Yo sólo voy a
enchufarlo aquí y va a
mostrarlo para mí, una compilación en juego. Y ahora se puede ver
que está mostrando cero porque hasta el momento no tenemos
información dentro de él.
72. 8.08 Cambio del color de compra de texto: Lo que quiero hacer ahora es que quiero actualizar esto por color de botón, porque si tenemos cero monedas, quiero mostrar este o el color del texto como
rojo en lugar de verde. Y se vuelve verde cada vez
que tenemos suficientes monedas
para comprar este artículo. Sigamos adelante y hagamos esto. Déjame cerrar esto. Nuevamente, trabajando con UI, quiero hacer esto dentro
del control del jugador. Dentro de aquí, voy
a hacer una nueva función. Llamemos a éste. Vamos a llamarlo actualizaciones, almacenar, o actualizar, comprarlo. Y es un por botón o por color de texto,
algo así. Muy explicativo actualizar la tarjeta del artículo de la
tienda por color de texto. Ahora necesitamos una
referencia a todas
estas tarjetas de artículos de tienda que
tenemos dentro de aquí. Recuerda, ya
tenemos eso dentro de la matriz de artículos de tienda
que creamos. Diré para cada bucle, y vamos a
recorrer todos ellos. Para cada uno de ellos,
quiero tomar este texto. Entonces si vuelvo atrás y
recuerdo lo
que llamamos, es texto por y lo
hicimos es variable. Volvamos al mando de
reproducción. Vamos a arrastrarlo y decir que
podemos tomar este texto por. Lo que simplemente queremos hacer es si solo arrastras y dices color, si no sabes
cómo se llama, puedes ver que hay algo que se llama establecer color y opacidad Escojamos éste. Vamos a arrastrarlo aquí. Ahora puedes arrastrar
de esto y decir hacer color pizarra porque
queremos ver qué
podemos hacer con él. Ahora podemos establecer un
color específico dentro de aquí. Ahora quiero establecer
el color
dependiendo de si en realidad
tenemos monedas o no. Ahora tenemos que trabajar
con las monedas. Recuerda que esto es por dentro. Dentro del jugador,
tenemos algo llamado cantidad de monedas que
usamos antes. También tenemos el
costo del artículo que está dentro de
la tarjeta del artículo de la tienda
porque tenemos esta información del artículo para que sepamos
el costo del artículo. Usemos los que están dentro
del controlador del reproductor. Puedes intentar hacerlo tú mismo si deseas practicar de lo contrario
déjanos hacerlo juntos. Ahora para este ítem,
voy a decir info del artículo. Entonces voy a conseguir esa variable y la
voy a romper. Para que pueda ver el costo del artículo, voy a arrastrar esto aquí. Ahora puedo ver el costo
del artículo aquí. Solo voy a
ocultar pines desconectados y solo mostrar el costo del artículo Ahora también quiero que los
jugadores cantidad de monedas. Necesito una variable para el jugador. Ya veo que no tengo esto. Si solo vuelvo al controlador del
jugador y yo otra vez, en realidad solo podemos
volver al artículo de la tienda. Podemos simplemente copiar y
pegar todo esto que
acabamos de crear en la lección
anterior. Y solo voy a
crear legítimamente una variable
para el juego sobre, y esto es mucho más rápido Ahora volvamos. Ahora tenemos el juego sobre,
vamos a arrastrarlo. Digamos, cantidad de monedas. Obtener la cantidad de monedas. Ahora lo que vamos a preguntar
es, ¿cuesta la moneda? ¿Es más grande? ¿Es mayor que la cantidad
de monedas que tenemos? Entonces puedes arrastrar desde aquí
y decir seleccionar, seleccionar color. Ahora la diferencia entre
un color selecto y selecto. Ahora bien, si solo las
arrastras para que podamos verlas, seleccione el color está aquí,
y seleccione está aquí. La diferencia no es
realmente demasiado grande. La diferencia es que si
haces el color de selección, puedes verlo
automáticamente elige que este es un lingote que
tienes que enchufar en él Para los selectos, puedes
elegir lo que quieras. Puedes enchufar una enumeración
como lo hicimos antes, pero también puedes
enchufar esta y dirá verdadero o falso Y entonces puedes hacer
lo que quieras con él. Básicamente, puedes
usar ambos. Por ahora solo voy a usar Seleccionar
color. Seleccione color. Adelante y enchufa esto. Lo que va a
hacer es que va a decir es el
costo de la moneda para este artículo, es más grande que
cuántas monedas tienes? Si lo es, dice pick a. si esta
variable de lingotes es verdadera, va a escoger
a, significa monedas Si la cantidad de monedas
que costó este artículo aquí, si no tienes
suficiente para
comprarlo, en realidad va a seleccionar A. Necesitamos un color rojo
para la A y necesitamos un color verde para la carne porque aquí es
donde puedes comprarlo. Ahora para el color verde, sólo
voy a
copiarlo del diseñador por botón
porque ya lo hice. Voy a copiar el color lineal
hexadecimal. Voy a volver al mando
de reproducción. Pégalo para el, Pégalo aquí, da click para éste. Sólo voy a
seleccionar un color rojo aquí primero para poder ver
cómo se ve. Algo así. Y puedo copiar el color lineal. Simplemente haz clic en cancelar porque
no quiero cambiarlo aquí. De vuelta a la, el
color rojo. Y ahora lo tenemos. Se va a decir ¿ los artículos cuestan más grandes que
lo que tienes en monedas? Si eso es cierto, elige una, escogiendo el color rojo, si tienes suficientes monedas,
va a escoger el color verde. Lo va a enchufar
aquí y va a establecer el color del texto y compilar. Ahora tenemos que llamar a
esta función, porque aún
no lo hemos hecho, y queremos llamarla
cada vez que haga clic en reproducir, ya
quiero que todo
esto se actualice. La mejor manera de hacerlo es que hemos creado las tarjetas de artículos aquí.
Creamos todos ellos. Antes de mostrarlos, quiero actualizar los colores. Voy a
agregarlos aquí así. Actualizar compilar. Si haces clic en play,
ahora puedes ver que todas son rojas porque
no tengo suficientes monedas. No obstante, si cambio aquí en
el jugador cantidad de monedas, digamos ahora tengo 60 monedas y hago clic
en Compilar Play. Ahora puedo ver que
para las 60 monedas, en realidad
tengo
suficientes monedas para todas ellas, así que serán verdes. Puedo ver que este texto
no se muestra correctamente. Esto se debe a que tenemos que matar a un enemigo antes de que
realmente se muestre. De hecho, arreglemos esto. A lo mejor quieres una cantidad
inicial de monedas. La razón es que solo estamos ejecutando este código cada vez que
realmente matamos al enemigo. Si abro la base enemiga, tenemos esta cantidad de monedas. Si acabo de copiar esto, en realidad
puedes copiar esto cada vez
que abras el juego. Y esto viene del jugador. Si abres al jugador y vez de aquí en
la base de jugadores, puedes ver que hicimos esta
actualización cantidad de monedas. Solo necesitamos ejecutar este, actualizar la interfaz de usuario porque la
cantidad de monedas es correcta. Y también puedes ver esto si tomas la cantidad de monedas e imprimes cadena y acabas
de
imprimir la pantalla
y haces clic en Reproducir. Se puede ver
que aquí dice 60. Si lo viste. En la
parte superior izquierda, dice 60. En realidad
se muestra correctamente, o el número es correcto, pero no
se muestra correctamente. Copiemos esta interfaz de usuario. Solo necesitamos actualizar la interfaz de usuario, y arrastramos la cantidad de
monedas conectadas así. Ahora cada vez que hacemos clic en Play, también va a actualizar la
cantidad de monedas. Si hago clic en Reproducir, se
va a mostrar correctamente. Ahora todo es correcto y tenemos esto mostrado correctamente
cuando matamos al enemigo. También va a agregar
la cantidad correcta de monedas cada vez que consigamos
más y más monedas. Ahora podemos ver que
no está mostrando esto correctamente porque necesitamos
actualizarlo cuando
matemos al enemigo. Vamos a arreglar eso también. Si la cierro, me acerco a los enemigos, abro la base enemiga. Y hay que agregarlo aquí
cada vez que muera el enemigo. Y actualizamos la cantidad
de monedas. Vamos a hacerlo. Después de actualizar la
cantidad de monedas, usemos el controlador de juego. Y ya tenemos el mando de
reproducción aquí abajo. Arrástralo y di actualizar la tarjeta del artículo de la
tienda por color de texto. Adelante y
conéctelo conectado aquí. Y ahora debería funcionar. Ahora si haces clic en
play y yo mato, ya
puedes ver si
consigo 76 o más, realidad
va a
hacer que este sea verde. Si mato a este enemigo, ya
podemos ver que se vuelve verde. Si solo sigo matando, puede ver ahora esto se vuelve verde porque ahora
tengo suficientes monedas, esto está funcionando correctamente, y ahora podemos seguir adelante.
73. 8.09 Comprobando si el jugador tiene suficientes monedas: Ahora antes de que el jugador
pueda presionar el botón Por, también
necesitamos verificar si el
jugador tiene suficientes monedas, contrario realmente pueden presionar el botón By
y pueden comprar artículos sin que
tenga suficientes monedas. Tratemos de trabajar
con éste. Si abro el controlador
del reproductor, una vez más para el controlador del
reproductor, hagamos
algo también aquí en el color de actualización. Lo que podamos hacer dentro de
aquí, podemos arrastrar esto. Ahora tomemos el botón. Voy a la interfaz de usuario y
abro el artículo de la tienda y hago clic en este botón. Y sólo voy a llamarlo botón y convertirlo en
una compilación variable. Ahora si vuelvo
al mando de reproducción, arrastre desde aquí y digo botón. Y tomo este botón, lo que puedes hacer es que puedes
arrastrar aquí y decir habilitar. Ahora puedes ver que tienes
algo llamado Set está habilitado. Adelante y
selecciónelo, conectado aquí. Ahora puedes elegir cuando un botón debe estar
habilitado o no. decir, que si el jugador
puede presionarlo o no, siempre que este sea rojo, es decir, este es cierto, Esto significa que el jugador
no puede comprar este artículo, significa que no
tienen suficientes monedas. De hecho podemos arrastrar esto
y enchufarlo aquí. En realidad, no podemos,
porque esto va a ser cierto y éste
va a ser cierto, lo
que significa que está habilitado, y en realidad
queremos lo contrario. Voy a volver a arrastrar y
decir seleccionar para invertirlo. Sigue adelante y selecciona
este nodo Select y conéctalo aquí abajo. Ahora puede ser un
poco confuso ahora, no
tenemos suficientes
monedas siempre que el costo del artículo sea mayor que la cantidad
de monedas que tenemos. Esto quiere decir que esto va a
ser cierto siempre que sea cierto. Quiero configurar esto
para que se desactive porque no queremos comprar si no tenemos suficientes monedas. No obstante, siempre que esto sea falso, es decir, tenemos
suficientes monedas aquí, quiero configurarlo para que esté habilitado. Quiero tomar esto y decir que el botón está habilitado.
Puedes seguir adelante y comprar. Así es como lo invertimos, así que adelante y compile
y haga clic en play. Ahora podemos ver que el
botón está deshabilitado. Se puede ver que está
un poco descolorido. Además, ahora vamos a comprobar si el jugador tiene suficiente
cantidad de monedas. Vamos a cerrarlo. Vamos a
abrir la tarjeta del artículo. Vamos a darle click,
aquí abajo en la parte inferior. Vamos a hacer clic en el desclicked. Ahora cada vez que hacemos clic en este botón o
compramos el artículo, queremos verificar si el
jugador tiene suficientes monedas. Hagámoslo dentro
del jugador porque
ya hicimos la cantidad de monedas y el cálculo de
monedas así dentro del jugador. Déjame simplemente hacer una
función simple, llamemos a ésta. ¿El jugador tiene suficientes monedas? Lo sencillo que queremos
hacer dentro de aquí es que queremos comprobar si el
jugador tiene suficientes monedas. Arrastrando esta cantidad de monedas, déjame solo
aquí también para la entrada, déjame agregar un entero
y déjame llamarlo costo
del artículo es la cantidad de monedas que
tiene el jugador es mayor o igual Tenemos que tener igual
porque puede ser igual
al costo del artículo, lo que significa que
tienes suficientes monedas. ¿Es mayor o igual
al costo del artículo? Entonces podemos simplemente
hacer una nota de retorno aquí, si solo escribo devolver el nodo de retorno y
luego enchufar esto aquí, crea una variable para nosotros. Este es básicamente tiene suficientes puntos cuando
va a verificar esto, vamos a enchufar
el post del ítem y haciendo clic en esta función. Voy a ponerla pura. Porque recuerda,
siempre que tengas una función que solo
obtenga información, no
está configurando nada, entonces puedes configurarla en pura. Entonces se vuelve como esta función
verde aquí, porque solo está
obteniendo información. Ahora lo que podemos hacer es que
podamos tomar a este jugador y decir que tiene suficiente, o
lo llamamos , ¿el jugador
tiene suficientes monedas? Para que pueda arrastrarlo y decir
que sí tiene suficientes monedas. Y se puede ver que es
una función verde porque la configuramos en pura. Ahora podemos sumar en el
costo y luego podemos
salir de aquí y ver si en realidad
tenemos suficientes monedas o no. Hagámoslo. Tomemos la información del artículo, podemos romperla. Podemos tomar el costo del artículo
y enchufarlo dentro de aquí. Ocultar los pines no conectados. Ahora podemos arrastrar
desde aquí y hacer una rama y conectar
esta rama. Ahora en realidad hacemos esto, ahora
estamos comprobando
si el jugador tiene suficientes monedas antes de que el
jugador pueda comprar el artículo.
74. 8.10 Compra del artículo: Ahora que hemos comprobado que el jugador tiene suficientes monedas, repasemos y solo
compremos el artículo ahora. Ahora por comprar los artículos, creo que quiero hacerlo
dentro del jugador. Siempre que compres aquí
y tengas suficientes monedas, sigues adelante y
compras los artículos. Hagamos un nuevo
evento en el jugador. Hagamos un nuevo evento
personalizado llamado artículo de
compra como este. Ahora para este artículo de compra, obviamente
necesitamos primero
el artículo. Si no quieres hacerlo
ahora mismo, solo volvamos atrás y dentro de aquí,
tomemos al jugador, ya
tenemos la variable
player. Vamos a atacar desde aquí y decir comprar artículo y llamar a
este evento que acabamos de hacer. Si es cierto que
tenemos suficientes monedas,
sigamos adelante y
compremos el artículo. Obviamente, necesitamos
saber de qué ítem estamos hablando porque
necesitamos alguna información aquí. Solo voy a crear una
entrada y llamémoslo,
o llamémoslo la estructura de información del
ítem. Tenemos ese artículo,
solo lo voy a llamar artículo compilar Ahora podemos
volver a la tarjeta de artículo de la tienda. El artículo es obviamente
este artículo en el que estamos ahora mismo y
ya tenemos la estructura. Sólo voy a tomarlo
y enchufarlo aquí. Esta información del ítem
va a ir
a través del jugador. A partir de aquí ahora podemos
hacer las cosas con él. Lo que queremos hacer
es obviamente que necesitamos
restar la cantidad de monedas tiene
el jugador.
Tratemos de hacer eso. Ahora puedes hacerlo
tú mismo para practicar, porque creo que
puedes hacerlo tú mismo. Ahora bien, si no
recuerdas cómo hacerlo, hagámoslo juntos. Entonces puedes tomar la cantidad
de monedas que tienes
ahora mismo y luego decir
menos para restar Entonces tenemos el costo
del artículo aquí si
arrastras desde aquí y
dices break item info. Ahora tenemos el costo del artículo. Podemos decir la cantidad
de puntos que tienes menos el
costo por esto. Podemos tomar esta cantidad de
monedas y ponerla de nuevo a este nuevo precio o esta nueva
cantidad de monedas que tenemos. Sólo vamos a dar click aquí. Ocultar pines no conectados. Sólo tienes que seguir adelante y hacerlo
más estructurado así. También puedes imprimir una cuerda. En realidad no vamos a
imprimir una cadena. Simplemente podemos actualizar
la interfaz de usuario al instante. Hagámoslo
así aquí arriba. Yo sólo voy a copiar esto. Actualizar monedas, cantidad I.
voy a iniciar sesión
así. Vamos a compilar. Veamos qué pasa si hago
clic en play. Tengo 60. Si compro algo por 23, me quedan 37. Vuelvo a comprar por 34, me quedan tres. Y si hago clic aquí, pueden
ver que
no puedo seguir comprando. Porque recuerden, ya
comprobamos aquí si el jugador tiene
suficientes monedas o no. No podemos comprar el artículo si no
tenemos suficientes monedas. Eso está funcionando muy bien. Ahora, el problema
ahora mismo es cuando compro, se
puede ver que los botones
no se leen. Parece que todavía tengo suficientes monedas para esta,
cosa que no tengo. También actualicemos los botones. Si voy al controlador del
reproductor. Vamos a abrir el controlador
del reproductor. Y recuerda dentro de aquí
hicimos esta función llamada actualizar artículo de tienda por color de texto. Llamémosle a éste. Volvamos al jugador. Tomemos controlador Plegado aquí Llamemos a las actualizaciones tarjeta de
artículo de trabajo por color de texto. Déjanos enchufarlo aquí. Debe actualizarlo
cada vez que compramos. Ahora si hago clic en Play
y compro algo, puedes ver que se vuelven rojos. Y realmente no puedo
comprarlos. Y están discapacitados.
Si compro este, todos se vuelven rojos
porque no tengo suficientes puntos ahora que la lógica
está funcionando muy bien.
75. 8.11 Actualización de la cantidad de artículos comprados: Ahora es el momento de actualizar
cuántos artículos hemos comprado. Porque recuerden, hicimos
este llamado Artículos Comprados. Y necesitamos almacenar cuántos artículos has
comprado durante el juego. También aquí cuando hacemos clic en
play y compramos algo, realmente no
te muestra que has comprado algo porque
todavía es cero por aquí. Necesitamos actualizar esta
información para hacer. No recuerdo dónde
usamos este. Si solo quieres intentar recordar
dónde usaste algo, siempre
puedes escribir, dar
clic y encontrar referencias. Y podemos ver que dice que
no se han encontrado resultados. Y esto se debe a que
sólo está buscando dentro
de este plano Pero si haces clic en
este pequeño icono
, buscará en
todos los planos Haga doble clic en éste. Puedes ver que lo hemos usado aquí dentro de la tarjeta de artículo de la tienda para actualizar el texto aquí de
cuántos artículos hemos comprado. Lo hemos usado por aquí para actualizar cuántos artículos
hemos comprado. Solo volvamos al jugador y aquí cada vez que compremos
y actualicemos el botón. Antes de actualizar el botón, en realidad
voy a editar el mapa. Toma este mapa aquí, arrástralo y di Agregar. Ahora queremos agregar un artículo
más al mapa, porque ahora hemos
comprado un artículo. Lo que puedes hacer es volver a tomar esto, pegarlo, porque realmente no
puedes agregar
información en este momento. Lo que hay que hacer es que
encontremos y tengamos esta función. Lo que intentas
hacer es que estás tratando encontrar el artículo que
ya está dentro de él. Si solo escribes un número aquí, si escribes, por ejemplo, uno, va a sobrescribir la información que ya
tienes dentro de aquí Digamos que era
la corona dorada que estaba dentro de aquí.
Si solo escribes uno, será uno
para siempre porque cada vez
que el jugador compre será uno. Se anulará este artículo aquí. Tenemos que seguir actualizándolo
con una mayor información. Ahora necesitamos encontrar el
elemento primero dentro de la matriz o dentro
del mapa para encontrar el elemento. Recuerda, ya
tenemos el nombre. Si solo lo tomo
aquí ahora puedo usar este nombre del ítem y podemos encontrar este ítem
dentro de este mapa. Una vez que
encontremos el artículo, ahora sabemos cuántos de
este artículo tenemos hasta el momento. Esta cantidad aquí, lo que quiero
hacer es que quiero tomar este número más él con uno más uno. Ahora estamos agregando uno a los
artículos que ya compramos. Entonces puedes
enchufarlo dentro de aquí. Además, recuerda que también necesitas
enchufar el nombre aquí. Sólo vamos a arrastrarlo desde aquí. Conéctalo, y otra vez, solo haz algunas notas espejadas Se ve bien. Y yo sólo
voy a enchufar este de aquí así y
este de aquí abajo. ¿Bien? Lo que
básicamente estamos haciendo es que primero estamos
encontrando el elemento dentro
de este mapa, y luego sabemos cuántos
ya hemos comprado
y estamos agregando uno encima de él y luego lo estamos volviendo a poner en el mapa. No perdemos esa información. Das click en play
y pulsas
en por algo y ves
que sigue diciendo cero. Esto se debe a que no
hemos actualizado la interfaz de usuario. La interfaz de usuario está dentro del artículo de
la tienda, Cod, y es este texto aquí que necesitas
actualizar una vez más, porque esta parte de
aquí solo se actualiza cada vez que creamos el Cod
y ya no se actualiza. Podemos hacer un evento personalizado
aquí abajo y voy a
hacer un evento personalizado, actualizar los artículos comprados UI. Lo que podemos hacer aquí,
básicamente queremos
establecer el texto, este texto aquí. Yo sólo voy a controlar C, controlar V aquí abajo. Vamos a enchufarlo.
Básicamente, solo queremos hacer lo mismo
que nosotros hicimos por aquí. Solo controlemos x para sujetarlo y controlar V
para pegarlo aquí abajo. Yo sólo voy a
conectarlo aquí. En lugar de tener
este código aquí arriba, básicamente
podemos simplemente eliminar
este y agregar este. Actualizar elementos, en cambio
solo lo agrego aquí,
actualizo elementos I. Básicamente, la razón por que lo
escribimos
aquí en la
construcción de inicio, juego o evento es porque nos estamos asegurando de que tenemos
esta información correcta. Siempre que abrimos el juego
y echamos un vistazo a esto, esta es la razón por la que lo
sumamos ahí arriba. Porque si por ejemplo, digamos que tienes un sistema de
carga y guardado en el futuro y
cierras el juego cada vez que lo abres, esto volverá a correr
y actualizará tu información con
lo que hayas guardado. Eso es muy importante tenerlo. Bien, entonces tenemos estos elementos de
actualización, pero UI, necesitamos ejecutarlo desde el
jugador si regresas y
necesitamos ejecutarlo después de que
agreguemos el ítem a este mapa. Ahora lo que necesitamos es que
necesitamos una referencia a los widgets de
esta tarjeta de artículo de tienda porque ahora necesitamos
usar este. Actualizar elementos, poner la interfaz de usuario. Pero como pueden ver, en
realidad no tenemos una referencia a ello. Tenemos esta llamada tarjetas de artículos de
tienda y básicamente
podemos usarla para encontrar un artículo. Pero de nuevo, en realidad no
tenemos esta información
fuera de aquí. Necesitamos una forma de hacer
referencia a esta tarjeta. Ahora puedes hacer esto de dos maneras. Puedes o bien aquí en
el controlador Player, básicamente
puedes hacer
un evento personalizado llamado, por
ejemplo, sets, tarjeta de artículo de tienda
interactuada o como quieras llamarlo Básicamente solo agrega el
artículo artículo de la tienda, Cod. De nuevo, básicamente puedes
simplemente llamarlo desde aquí, usa el controlador del reproductor, Necesitamos tener una
referencia a ello aquí arriba. Básicamente puedes configurarlo
a través del controlador del reproductor. Y desde el jugador, podemos usar esta variable aquí para actualizar
realmente esta carta en lugar de hacerlo de esta manera. Por ahora, quiero
probar el otro método. El otro método básicamente, es que solo puedes volver al O al jugador aquí
para el artículo de compra. Solo agreguemos una nueva variable. Vamos a llamarlo comprarlo Cod. Siempre podemos cambiar de esta
manera si en el futuro nos
enteramos de que podríamos
convertirlo en algo mejor. Pero por ahora,
busquemos el ítem Cod. Sigue adelante y selecciónalo, vuelve a
compilar en el artículo de la tienda. Veamos por aquí
en el artículo de compra. Siempre que compramos algo, quiero establecer la
referencia a uno mismo y decir yo. Básicamente
estamos definiendo este cordón de artículo de tienda para que sea esta
tarjeta en la que estamos ahora mismo. Esto es lo que quiere decir yo. Ahora esta información, la tenemos cada vez
que compramos un artículo, cada vez que agregamos el artículo a los artículos pero mapa ahora
podemos llamar elementos de actualización pero
la interfaz de usuario arrastra desde aquí y
decir elementos de actualización. Pero sigo adelante y conecto, es así otra vez. Puede hacer doble clic para
hacer un nodo de ruta posterior. Siempre que se haga eso, esto ahora debería actualizar la interfaz de usuario. Y luego sigue adelante y enchufa esta actualización artículo de la tienda Cod por color de
texto de nuevo, guarda todo. Y ahora
vamos a jugar y a ver qué pasa si compro
una de las antorchas. Mira, tengo uno. Si vuelvo a comprar
uno, tengo dos. Ahora está calculando correctamente. Ahora si me doy
mucho más dinero, así que si vuelvo al jugador y dentro de aquí
la cantidad de monedas, solo la pongo a algo como mil o 10,000
100,000 o lo que sea. Aquí está. Ahora puedes
ver si solo sigo comprando, solo quiero ver si funciona
y está funcionando correctamente. Puedes seguir comprando. Y se puede ver que la interfaz de usuario
se queda igual. La interfaz de usuario no está cambiando la posición del
texto y así sucesivamente. Todo está funcionando
muy bien y también el dinero calculando correctamente. Entonces ahora eso está funcionando a pleno.
76. 8.12 Crea puntos de aparición de objetos: Ahora sigamos adelante y sumemos
los puntos de generación de artículos. Lo que quiero hacer es
que cada vez que compre algo, quiero generar estos
artículos en el mundo Y esta es básicamente la
misma idea que el licor de galletas. Es la misma idea donde compras algo y se genera aquí
en la pantalla, creo que es un poco
más interesante. Así que sigamos adelante y hagamos, o hagamos algunos puntos de pintura
dentro de aquí. Recuerden que ya hicimos un punto para el
enemigo que está por aquí. Solo usemos el mismo método. Entonces tenemos al enemigo y
tenemos la base del punto de desove. Esta es la clase padre, así que solo voy
a hacer clic derecho y crear una clase Looprint hijo Podemos llamar a éste
BP it, Spawn Point. Ahora bien, este es el punto puntual. ¿Qué artículo
vamos a engendrar? Básicamente podemos colocarlo en el mundo y
podemos simplemente establecer Y20, está en el frente y
solo voy a ponerlo en uno para que esté frente a las
fichas. Podemos ponerle algo aquí, guardar todo. Y sólo voy a sostener
Alt y arrastrar para copiarlo. Ahora puedes ver que
tenemos dos puntos de engendro, pero ¿cómo podemos elegir si es la corona de sujeción la que debería desovar aquí o si es otro elemento que
debería desovar Podemos hacer eso exponiéndoles
una variable. Lo que podemos hacer es
volver a la base del punto de desove
dentro de aquí Lo que podemos hacer es
crear una nueva variable. Podemos llamarlo nombre o también podemos simplemente llamarlo
en realidad nombre de punto de desove Creo que eso es un poco más descriptivo a este punto. Podemos cambiarlo en una cadena, guardar. Recuerda si haces clic en Instancia Editable
y Exponer en Spawn Ya usamos esto cuando
agregamos la información
a las tarjetas de artículos. Cuando haces esto
y compilas, puedes ver aquí
dentro del mundo, tienes este pin por aquí, el nombre del punto de desove Esta es la
misma variable que esta porque la
hiciste a instancia editable y exponer en
spawn . Aparece aquí arriba. Lo que podemos hacer con éste es que podemos
dar click en el primero, por ejemplo, podemos llamarlo, veamos qué elementos tenemos. Tenemos la P. sólo voy
a usar la pluma ligera. El primero debería
ser la luz. Escribe el nombre con precisión. Recuerde que este nombre debe
ser el mismo que el de
la tabla de datos. Sea cual sea el nombre
que tengas aquí, tiene que ser el
mismo que aquí afuera. El segundo es la antorcha. Ahora tenemos ambos puntos de desove. Ahora sabemos qué artículos
deben desovar dónde. Ahora solo nos
falta la lógica, y vamos a estar haciendo eso en
el próximo par de lecciones. Pero ahora al menos tenemos los puntos de
engendro con los que trabajar. Vamos a saltar a
la siguiente lección.
77. 8.13 Generación del artículo comprado: Bien, ahora sigamos
adelante y engendremos el artículo. Tratemos de trabajar al
revés a partir de ésta. Ahora, cada vez que engendro artículos, me gustaría trabajar hacia atrás
porque tiene más sentido cuándo o dónde necesitamos agregar nuestros eventos y funciones
para el desove Recuerda, uso el
Player Controller para generar cosas en el mundo Entonces si entro de aquí, ya
hicimos este actor
spawn aquí Actor de engendro. Mantengámonos consistentes y
hagámoslo dentro de aquí. Solo voy a
hacer directamente un nuevo evento personalizado. Llamemos a esto un elemento de generación. Bien, para este, de nuevo, necesitamos usar un actor
spawn de clase y seleccionado para el
ítem que queremos engendrar Realmente depende de cuál sea. Ahora bien, esto está recibiendo un error. Necesito desactivar esto. Dependiendo del artículo que compremos, este es el artículo que
queremos generar Realmente no podemos establecer
un valor estático, solo
necesitamos
arrastrarlo hasta aquí. Arrastra esto de nuevo, voy
a llamar a este único ítem. En cuanto a la ubicación del artículo, realmente no
necesito
usar una transformación. Entonces lo que voy a hacer
es voy a decir hacer. Siempre que digas make transform, esto es básicamente porque
quiero ver los valores de ubicación, rotación y escala. Es por ello que utilizamos make. Ahora puedes arrastrar esta
ubicación al evento. Por lo que crea una nota alfiler para ello. Y sólo voy a
llamarlo lugar de desove porque no me
interesa
realmente la rotación y la escala, va a quedar igual Solo me interesa
la ubicación en la que
quiero generar el artículo Ahora bien, este objeto de spawn, ¿
dónde tiene más sentido jugar
a este evento o llamar
a este evento El lugar sería cada vez que
compramos un artículo, calculamos el precio
sobre en el jugador. Siempre que compramos el artículo, lo
agregamos a la
variable o al mapa aquí y actualizamos los botones. Después de eso puedo
engendrarlo en el mundo. Básicamente el desove está
en el controlador Player, así que necesito el Player
Controller nuevamente. O puedes arrastrar desde
aquí si lo deseas. Y se puede decir spawn item,
provide and selective. Ahora hay que especificar de qué
ítem estás hablando. Ahora ya tenemos
esta clase de aquí. Sólo voy a romper
esta una vez más. Toma la clase,
conéctala aquí y oculta los pines no conectados Yo sólo voy a
acercarlo aquí, haga
doble clic para hacer un nodo. Ahora para la ubicación de desove, necesitamos ser más
específicos aquí Porque necesitamos haber visto o la ubicación
de este actor aquí, los artículos engendran punto Siempre puedes
volver al modo de juego y echar un vistazo a
cómo lo hacíamos antes. Si volvemos a la
jugada de inicio, usamos esta. Consigue actor de clase. Y recuerda esta función, consigue actor de clase, consigue cualquier cosa que ya esté engendrada en el mundo
cuando haces clic en play Porque si dices que
consigas actor de clase y tienes esto dentro
del nivel ahora mismo, te
va a dar una época. Recuerden, esta
función sólo consigue
al actor que ya está
engendrado en el mundo Ya los hemos engendrado. Así que en realidad podemos
usarlo, conseguir actor de clase. Vamos a hacerlo dentro de aquí porque
en realidad este no es el método que necesitamos
usar get actor de clase. Podemos tomar este
básicamente
decimos punto de generación
y podemos seleccionar
el punto de generación del elemento que podamos arrastrar desde aquí y decir
obtener ubicación del actor Ahora estamos obteniendo la ubicación del
actor, que es esta ubicación aquí. Y podemos enchufarlo Ahora
vamos a ver qué pasa. Sólo podemos hacer click en play y básicamente
trato de
comprar algo. Nada está desove y
en realidad es el correcto. Sólo me pregunto por qué no
es desove. Veamos si en realidad
agregamos los artículos. Este podría ser el
problema en estos momentos. Si lo abrimos,
vaya a la ventana, puedo ver que no tenemos ningún artículo En realidad voy
a hacer eso ahora. Para todos los artículos
que creamos anteriormente. Por ejemplo la Corona del Mal, necesitamos seleccionar
el sprite fuente Adelante y selecciónala aquí, así aparece aquí, compile. Vaya al siguiente
, Gran mago,
sombreros, haga clic en los componentes de
render seleccionados aquí, compile a continuación. Esta es la base de artículos, por lo que realmente
no necesitamos agregar nada aquí. Yendo a la Corona del Rey. Y en realidad podemos
hacerlo desde aquí en vez de hacer clic aquí arriba. El siguiente es
la Corona del Rey. Bien, este
fue el último. Ahora los he sumado todos. Y sólo voy a
seguir adelante y dar clic en Compilar para todos ellos para asegurarme de que
todo esté funcionando como se esperaba. Bien, cierra todo,
guarda todo. Y hagamos clic en Jugar de
nuevo por la Pluma Ligera. Ahora se puede ver que la
pluma ligera está desove. Y si compro la antorcha, la
antorcha también está desove. Ambos están respondiendo. Están desove
en el mismo lugar. Pero sabemos que este punto de
dolor está funcionando. Ahora en las siguientes tres lecciones, voy a
mostrarles tres métodos sobre cómo podemos
engendrarlos de manera eficiente Lo que quiero hacer, básicamente, es a partir de este punto, queremos generar
todos los artículos, pero por ahora, todo está bien Ahora bien, si quieres reducir el tamaño del ítem
que está generando, ahora aquí en la base de ítems básicamente
puedes hacer
es en esta escala, para este ítem, puedes hacer
click en el candado Cambia los tres
valores a la vez. Y si escribo 0.5 hago clic
en play y compro algo. Se puede ver que el
artículo es más pequeño ahora. Ahora para el Em, creo que
voy a ir con la escala de 0.25 porque los
iconos son muy grandes. Si hago clic en jugar ahora
y engendro algo, puedes ver que este es el tamaño que me gusta, el tamaño de este Siempre puedes tener un Bitloga, pero vamos a
tener muchos artículos Creo que este es un
buen tamaño para ello. Bien, vamos a guardar todo, y pasemos
al siguiente.
78. 8.14 Lógica de desove: Cómo en las siguientes tres
lecciones voy a mostrarte cómo podemos hacer
estos métodos de desove Ahora el primero
va a ser fácil y luego vamos a
algo intermedio, y luego algo avanzado. Espero que te quedes
conmigo por todos ellos. Empecemos con este,
que es el método fácil. Ahora para el desove, voy a hacer eso dentro
del modo de juego porque aquí
es básicamente donde estamos llamando a
los puntos de desove, donde los definimos Déjame abrir el modo de juego. Ya definimos el punto de pintura del
enemigo. Ahora es el momento de éste ahora. En lugar de hacerlo aquí, vamos a crear
una función para ello. Porque va a ser un poco más grande que solo
hacer esto aquí. Déjame simplemente hacer una
función fuera de aquí. Déjame llamarlo set
items, points. Normalmente tengo una delante
de ellos para función, y solo voy a
hacerlo aquí para mantenerme consistente para esta también. Compilar y guardar
ahora para éste. Lo que puedes hacer ahora antes de que
empecemos , solo para que no nos olvidemos, quiero llamar aquí a los
Spawtpoints, arrastrar la función hacia aquí, seguir
adelante y Y entonces ahora funciona, ¿de acuerdo? Entonces ahora tenemos que hacer algo
dentro de esta función. Lo que quiero hacer primero es que quiero conseguir todos los puntos de
St. Entonces para hacer eso, digamos
conseguir a todos los actores de clase. Recuerda esta función, solo
puedes usarla para cosas que ya están
engendradas dentro, fuera de aquí Y ya tenemos
puntos de St. dentro de aquí. Ahora de manera realista tendremos
un punto de St. por cada ítem. Entonces tendremos mucho más. Vaya, aquí vamos a tener muchos más puntos de España
como este Pero por ahora, solo
eliminemos todos esos. Y sólo me voy
a quedar con dos. Siempre que este método funcione, sólo
voy a
copiar todo esto. Y serán como
5 segundos de trabajo por ahora. Solo tomemos estos
dos y trabajemos con esos. Digamos que consigamos a todos los
actores de clase, y busquemos el punto de
spa de artículo, este. Y debería obtener
ambos de estos. Si quieres ver
lo que realmente obtiene, siempre
puedes imprimir cadena que puedes arrastrar desde aquí y
decir longitud, para que puedas ver. ¿Cuántos
puntos de desove obtuvimos? Debería decir dos. Si haces clic en play,
dice dos aquí arriba. Si lo puedes ver, sabemos ahora que obtiene ambos
puntos S. Impresionante. Lo que podemos hacer ahora es que podemos arrastrar de
aquí y decir cuatro cada uno. Ahora podemos hacer algo con
cada uno de esos puntos de spa. Lo que queremos hacer es que básicamente
queremos definir la ubicación. Porque necesitamos la ubicación
dentro del jugador. Cada vez que generamos un objeto, necesitamos la ubicación
del punto de generación para el
siguiente elemento que queremos generar Lo que quiero hacer es
que no quiero generar todos los artículos aquí uno
encima del otro Lo que quiero hacer aquí
es que quiero generar artículos en una línea. Quiero
generar el primer ítem aquí Quiero engendrar el
segundo ítem aquí. Tercer punto aquí, cuarto, quinto, seis, y así sucesivamente. Ahora, puedes hacerlo así, no
es un problema. Pero imagina si tienes 200
artículos para el primer artículo, tienes 200 para el segundo. Todo tu nivel va
a ser spam con actores. No creo que sea
un buen método, así que sólo voy a
eliminar todos esos. Pero básicamente esto es
lo que estamos tratando de hacer. Estamos tratando de generar
todos los artículos en una línea aquí.
Intentemos hacerlo. Volvamos ahora
al modo de juego, lo que podamos hacer dentro de aquí, realmente depende de qué
elemento necesitamos generar Recuerde, para cada punto de
desove hicimos la
variable de nombre de punto España que
expusimos y escribimos pluma
ligera Arrastremos de este y
busquemos el nombre del punto de generación. Adelante, consigue esa variable. Ahora arrastra desde aquí y
di switch on string. Ahora bien, esto es
igual que antes donde
usamos el switch on enumeration, switch on string,
puedes hacerlo también Haga clic en el signo más para agregar pines. El primero, el primer
elemento que tenemos es la antorcha, o en realidad la pluma ligera. Entonces tenemos la antorcha, tenemos estos dos compilados. Ahora lo que podemos hacer aquí, si
es la pluma ligera, queremos usar este punto. Es una antorcha, queremos
usar este punto punto. Empecemos con
una pluma ligera. Lo que queremos hacer es primero vamos a
crear una matriz. Porque realmente no podemos hacer esto sin una matriz para almacenar
las ubicaciones que encontramos. Déjame cambiar esto
en un vector. Déjenme llamar a esto puntos de desove de
padre ligero. Vamos a sacar esa de aquí. Ahora necesitamos cambiarlo
en una matriz porque serán múltiples
ubicaciones que necesitamos almacenar, que es esta fila aquí de
artículos que necesitamos generar En lugar de un vector,
puedes hacer clic derecho en él. Lo cambias a
un vector, o de nuevo, siempre
puedes hacer clic en él y cambiarlo aquí arriba
si así lo deseas. Ahora tenemos esta matriz. Y lo que necesitamos usar con
él es la función add. Entonces necesitamos agregar una ubicación y necesitamos
agregarla dentro de aquí. Bien, Ahora,
depende de qué ubicaciones necesitamos
agregar. ¿Cómo hacemos esto? ¿Cómo obtengo diferentes ubicaciones simplemente desde un punto de falla Porque no voy a
sumar más puntos de spawn. Este es el único punto de desove que
voy a agregar para
la pluma ligera, pero quiero muchos artículos
aquí que necesito desovar Lo que podemos hacer es
dejarme hacerlo y en realidad
puedes
ver lo fácil que es. En primer lugar, obviamente necesitamos la ubicación de
este punto de España. Primero, voy a arrastrar
esto y decirlo en el lugar. Ahora tengo la ubicación
de este punto de desove. Lo que podemos hacer
con este es que
puedo hacer un bucle de cuatro bucles. Podemos seleccionar este bucle de
cuatro aquí. Ahora depende de cuántos artículos quieras generar primero Empecemos
con cinco artículos. Aquí vamos a escribir cuatro. El motivo es que el
primer índice en un bucle es 00, viene como 101234 Es decir, cinco ítems, 0-4 Lo que tenemos que hacer es que necesitamos obtener
esta ubicación de Hechos Ahora tienes que pensar que
vas a generar los
artículos de esta manera Hay que prestar atención
a en qué eje se encuentra. Este es el eje x, la flecha
roja es el eje X. Si haces clic en él y
arrastras el ítem, básicamente
puedes ver
aquí abajo en la ubicación, en el panel de detalles
que vas en la dirección más
del eje x. Esto es básicamente lo
que estamos tratando de hacer. No quiero afectar a
la Z y tampoco
quiero afectar a la Y. Yo solo quiero afectar a la X. Es por eso que podemos
tomar esto y podemos decir break vector porque solo
queremos afectar al eje
x. También para éste. Como no puedo iniciar sesión
esto aquí, voy a arrastrar de esto
y decir make vector. Ahora también puedo ver los x, y, y z y básicamente podemos arrastrar en esta
información aquí. Ahora para la Y, para la z, no
quiero cambiar nada. No quiero afectarlos, solo
quiero afectar a la X. Ahora lo que puedo hacer es que pueda decir la pérdida X tal vez como diez unidades. Entonces básicamente lo que estamos
haciendo es que estamos tomando esta ubicación y luego
estamos agregando diez unidades. El siguiente ítem
estará aquí en su lugar. Volvamos. Estamos diciendo diez, y luego lo estamos volviendo a
enchufar Estamos tomando esta
ubicación, ya lo es. En este punto, estamos agregando diez a
la x y luego la volvemos a
enchufar y
esta es nuestra nueva ubicación Obviamente, no podemos simplemente enchufar diez y simplemente mantener
diez dentro de aquí, porque esto va
a ser lo mismo, básicamente
va a agregar
artículos a aquí
en su lugar, todos ellos. Lo que tenemos que hacer, necesitamos volver
a usar este índice. El índice va a ser
cero primero, luego 123. Lo que podemos hacer es
que básicamente podemos multiplicar este número aquí. En lugar de sólo escribir diez, podemos arrastrarlo,
multiplicarlo, seleccionarlo. Lo que podemos decir aquí es que podemos decir diez multiplicado
por índice aquí. Y eso debería funcionar bien. Lo que estamos diciendo es diez
multiplicado por cero primero, que será solo
este punto de engendro Estamos diciendo diez
multiplicado por uno, estamos diciendo x más diez. Entonces el siguiente ítem
estaría aquí. Ahora otra vez, va a
ir al índice de dos. Va a decir diez veces dos. Eso son 20. Va
a decir x más 20. El siguiente ítem
estará aquí, y así sucesivamente. Simplemente recorrerá y agregará
ubicaciones como esta aquí. Vamos a
eliminar todo esto. Y ahora podemos conectarlo. De hecho podemos probarlo y ver si eso funciona.
Si sólo guardo aquí. Y podemos intentar
engendrarlo en el jugador,
en el objeto spawn Obviamente necesitamos eliminar
esto ahora que creamos antes y necesitamos
agregar las ubicaciones
desde el modo de juego. Realmente no tengo
el modo de juego aquí, vamos a crear una referencia
rápida al mismo. Si digo obtener modo de juego, recuerda que esto está
en el Begin Play. Vamos a conseguir el modo de juego. Obtener referencia
del modo de juego porque recuerda que ya hicimos el
plano insterface Podemos hacer clic derecho,
promover esto a una variable llamada modo de juego como esta. Yo no lo conecté. Déjame reorganizar esto ahora. Podemos tomar el modo de juego. Sólo voy a
acercar esto. Podemos tomar los puntos
de desove de vuelo, podemos conseguirlos aquí. También podemos decir get porque
necesitamos conseguir el
punto España. Obtener una copia. Ahora, realmente depende del punto de generación
que
necesites obtener, porque depende de los
artículos que hayas comprado En realidad, lo
que tengo que hacer aquí es que solo tengo que decir encontrar. Porque va a encontrar
el artículo que has comprado. Corresponde al
ítem, el punto de giro aquí. Ahora encuentra el artículo
que has comprado. Y realmente depende de
cuántos artículos hayas comprado. Ahora ya que el artículo comprado siempre
será uno arriba, porque estamos plusing o
estamos agregando uno aquí Tenemos que tomar esto
y decir menos uno, porque recuerden que
empezamos en el índice cero. No empezamos en el índice uno. Cuando hayas comprado un artículo, necesitamos menos esto por uno
y luego enchufarlo, porque el primer artículo
se generará en el índice cero, siempre
necesitamos decir menos uno compilar y
luego simplemente enchufar esto Da clic en Play, intenta
comprar plumas ligeras. Ahora puedes ver que está funcionando. En realidad estamos
desove en una línea y ya no va
a desovar Porque se puede ver
que aparece aquí arriba. Eso es porque
solo lo definimos para que sea 0-4 Ahora siempre puedes escribir 99 y esto
generará 100 artículos Ahora irá a la derecha
100 veces antes de que se detenga. Ahora se puede ver que esto está
funcionando muy bien. Ahora bien, si quieres hacerlo
por todos los demás artículos, obviamente
tienes que
llevarte todo esto. Tienes que copiar y pegar. Y hay que hacer esto
aquí así antes. Siempre que
se complete el primero
aquí, también hay
que hacerlo para la antorcha. En realidad, también
necesitamos copiar esta. Y tenemos que hacer esto también. Se puede ver aquí, esto es
mucho copiado de pasta. Esto se puede hacer mucho mejor. Porque recuerda que tenemos, digamos que tenemos 50
artículos en el juego. Tienes que copiar esto 50
veces para todos los artículos. Se puede ver que esto no es realmente
una buena práctica de programación. Nunca haría
esto en mi juego. Yo sólo voy a borrar
esto. Esta fue la primera. Este es el
método más fácil en el que podemos hacerlo. Tengo un método que
es un poco más caliente. Sigamos
en la siguiente lección.
79. 8.15 Lógica de desove - Intermedio: Bien, así que ahora estamos de vuelta. Y lo que quiero hacer ahora, antes de cambiar todo
este método, quiero mejorarlo un poco. Porque vamos a
utilizar este método mejorado. No vamos a eliminar todas las cosas que
estamos haciendo ahora mismo. Simplemente continuemos con
lo que tenemos actualmente. Ahora, necesito
cambiar esto más tarde, pero por ahora solo
quedémoslo y
quedemos con todo esto. Pero lo que quiero
hacer ahora mismo es si hago clic en Jugar y comprar artículos. Yo también, siempre que llegue a
cierta cantidad de punto, quiero hacerlo
por en la siguiente fila. No compra en una sola fila, sino que también compra
en la segunda fila Ahora puedo ver este
errores porque
solo lo hemos establecido en
cuatro en el índice. Pero como pueden ver, si solo
sigo comprando en esta fila,
puede llegar demasiado tiempo. Lo que quiero hacer también
es que automáticamente va a la siguiente fila y compra
o genera artículos ahí Primero le agreguemos algo de
lógica, solo escribamos
cinco o cuatro aquí. Al igual que antes, necesito
saber cuándo está terminado este bucle. Vamos a hacer clic derecho sobre este. Podemos promoverlo a
una variable local. La diferencia entre una
variable y una variable local es
una variable local que está dentro de esta función en la
que se encuentra ahora mismo. Estamos dentro de esta función set
item spawn points. Si creo un punto España local y vuelvo
al gráfico de eventos, no
podré
ver la variable aquí porque solo existe
dentro de esta función. Básicamente necesitábamos hacer
algo de lógica dentro de aquí, pero realmente no
necesitamos que esté aquí afuera. Solo estamos usando esto para cuando el bucle esté
terminado o no, podemos hacer clic derecho aquí,
promocionado a una variable local. Normalmente los llamo
locales para empezar, llamemos a esto un
bucle, último índice. Debido a que este es el
último índice del bucle, también
necesitamos hacer
otra variable local. Voy a cambiarlo a un entero. Nuevamente, no es una normal
errante. El segundo,
solo quiero llamarlo local
cantidad de filas. Necesito saber en cuántas filas necesito que estén los artículos. ¿Lo necesito en una fila o lo necesito en dos filas,
tres filas, y así sucesivamente Por ahora, vamos a
sumar tres filas. Si compilo, haga
clic en la variable y por aquí en el
valor predeterminado, justo a la derecha tres. Ahora queremos tres filas. Lo que quiero hacer aquí es que
quiero tomar el bucle local. Último índice quiero decir, es esto igual al
índice ahora mismo de aquí? Porque este índice aquí
está contando hacia arriba. Y puedes ver que
si imprimes una cadena, siempre
puedes imprimir una cuerda
si hay algo que no
entiendes o hay
algo que quieres. Claridad cuatro, solo
puedes arrastrarlo hasta
aquí y hacer clic en reproducir. Ahora puedes ver que
imprime el número. Y si solo
lo hago más largo aquí para que
podamos ver lo que está
pasando y hacer que se lea. Haga clic en Reproducir.
Se puede ver en el número 01234 Cuenta hacia arriba
si esto es igual a este
índice perdido de bucle local, que es este. Si acabamos de compilar, se
puede ver que está establecido cuatro ahora mismo si
esto es igual a esto, sabemos que este es el último bucle por el
que ha pasado. Sólo tienes que conectar esta otra vez. Si eso es cierto, queremos
tomar esta cantidad de filas con las que
queremos compararla. ¿Cuántas veces se ejecutó
este bucle? Digamos que aquí necesitas
tres filas. Hay que ejecutar el
bucle tres veces, porque la primera vez que hace
bucles y bucles a esta fila, entonces necesita hacer un bucle
aquí y bucles aquí. Si hemos escrito la
cantidad de rosa para que sea tres, necesita hacer un bucle tres veces. Voy a hacer otra vez una
nueva variable. Llamemos a este contador de bucle
local. Tomemos este contador de bucle
local y digamos loss plus, porque necesitamos
incrementarlo uno cada vez que termine el
loop Este bucle aquí ahora está terminado. Si eso es cierto, necesitamos
agregar uno al contador de bucle
local. Tenemos que preguntar, ¿es este contador de bucle
local, es menor que la
cantidad de rosa? Si es menor, ahora mismo es menor
porque la cantidad de rosa es tres y esta
es sólo una. Volver atrás y bucle de nuevo. Si este contador de bucle
es ahora tres, no volverá
a hacer bucle porque este también es tres. Y vamos a detener el código. Solo sal y
conecta esto aquí. Ahora bien, si es menor que
la cantidad de filas, necesitamos volver a ejecutar el bucle. Tomemos esto cierto aquí y dejémoslo correr de
nuevo al bucle. Tomemos aquí este pin de
ejecución. Voy a hacer doble clic
para hacer una nota de ruta trasera. Así que en realidad puedo
verlo así. Ahora vamos atrás y volvemos a hacer un
bucle de esto. Ahora si haces clic en
jugar y compras. Se ve que no
pasa nada. ¿Por qué no pasa nada aquí? Pero en realidad se puede ver
que algo está pasando. Porque si compro cinco como aquí, y recuerdo establecer el
último índice en cuatro,
lo que significa que puedo generar cinco
artículos para el sexto No va a
faltar cinco por diez. No está molestando si F por 15, pero si compro 16, se
puede ver que se sale bichos. Lo que está pasando
ahora mismo es que estás generando los 15 artículos uno
encima del otro, no
vas a tomar la siguiente fila La razón es, recuerda
que necesitas afectar el valor z porque la fila es básicamente
el valor Z aquí, no
hemos afectado al valor Z. Necesitas hacer algo
con este valor z. Lo que tenemos que hacer
es ver en
qué dirección
queremos ir. Ahora bien, si hago clic y
arrastro esto hacia abajo, solo presta atención
al valor z aquí en el panel de detalles. Si empujo esto hacia abajo, va en el menos
de la z aquí. Lo que puedo hacer es tomar
el valor z. Puedo decir menos. Sólo tenemos que
hacerlo igual que antes. En realidad, si puedo tomar esto aquí y decir multiplicado
igual que antes, voy a mover esto,
en realidad voy a eliminarlo, porque
realmente no necesitamos este. Siempre podemos copiar y pegar este
aquí arriba si es necesario. Nuevamente, necesitamos
multiplicarlo
igual que antes. Digamos por diez. Y no es realmente
el índice porque realmente no queremos
multiplicarlo en el mismo bucle. Debido a que el primer
bucle, el valor z es el mismo todo el camino. En el segundo bucle, el
valor z es el mismo hasta el final. Aquí no va a cambiar
todos los índices. En lugar de hacer esto, necesitamos hacer otra variable local. Llamemos a este multiplicador
local del eje z. Ahora para el valor por defecto, se va a quedar
cero porque no
queremos multiplicarlo con nada. El primer bucle, entonces el primer
bucle, todo esto es correcto. Vamos a conectarlo aquí. Todo está conectado. Ahora,
dice que algo anda mal. El valor actual de un número
válido, válido. No sé por qué
está diciendo esto. Si haces clic en Archivo
y refrescas todas las notas, no
sé por qué está
molestando así Simplemente arrastra y di
multiplicar de nuevo. Voy a arrastrarlo
aquí abajo en vez diciendo diez Dios, Y conectarlo una vez más y compilarlo. Y
ahora está funcionando. No lo sé,
solo fue un error aleatorio. Ahora tenemos esto conectado. Básicamente lo que tenemos que
hacer es que necesitamos aumentar este multiplicador local del eje z. Porque para el primer bucle
queremos que la z sea la
misma hasta el final. Para el segundo
bucle queremos que la z sea la misma en todo
momento, y así sucesivamente. Cada bucle cambia la z. Podemos hacerlo por aquí.
Tomemos el multiplicador z local cuando sepamos que
vamos a repetir el bucle. Cuando esto es cierto,
solo aumentemos esto uno más más conectado en
uno más más conectado
y volvamos al
bucle así. Ahora debería funcionar si compilo
y si hago clic en play. Y si compro la
pluma ligera cinco veces seis veces, debería estar aquí abajo,
lo cual es correcto. Y se puede ver que todo
está funcionando correctamente. Ahora puedes ver
lo genial que es que generemos todos
estos artículos desde un
solo punto de España Ahora no tienes que hacer spam tu mapa con muchos puntos
de España. Esto está muy optimizado
porque esto solo
se ejecuta cada vez que
comienzas tu juego. Porque va a almacenar todos estos puntos
de España en una matriz que puedes
usar más adelante para generar
realmente los artículos.
Vamos a guardar todo. Eso fue por ahora
y vamos a ir en la siguiente y
hacerla un poco más avanzada. Espero que sigas conmigo, pero lo que simplemente
vamos a hacer es que nos
vamos a deshacer
de esta parte de aquí. Y te voy a mostrar cómo podemos hacer esto un poco más avanzado. Hagamos clic en Archivo, Guardar todo y
pasemos al siguiente.
80. 8.16 Lógica de aparición - Avanzado: Ahora mismo, vamos a mejorar el código que
hemos escrito aquí. Entonces esta es la última
parte lo que podemos hacer. En lugar de hacer todo esto, permítanme simplemente borrar esta parte
por ahora y también esta. Para este
punto de ítems que obtenemos, vamos a hacer clic derecho
aquí y promocionarlo a una variable local.
Llamemos a este único elemento
local, puntos de desove Ahora tenemos esos puntos de
desove también. Antes de hacer todo
esto,
asegurémonos de que no sea cero. Solo nos estamos asegurando de
que realmente tengamos algunos puntos de engendro y que el mapa realmente
contenga puntos de desove Entonces arrastra desde aquí
y decimos longitud, nos aseguramos de que esta longitud sea mayor que cero y luego
podamos hacer una rama. Guau, nos estamos asegurando de que
en realidad tengamos algunos puntos de generación Antes de hacer toda esta lógica, lo
contrario no tendrá ningún sentido. Vamos a apartar esto de esto por ahora y seguir adelante
y conectarlo Ahora, cuando le eches un
vistazo a este, tienes que pensar en
cómo puedes hacer que esto sea más pequeño que antes?
En lugar de tomar esta copia de código y luego
pegar aquí abajo, y luego conectarse
y luego continuar Cómo puedes acortar este método aquí para que no
tengas que copiar pegar lo que es diferente de este código a este código
que necesitas cambiar Ahora lo primero
que
me viene a la mente es que le echo un
vistazo a esta matriz porque primero hay que agregar las ubicaciones para los puntos de desove de
plumas grandes Entonces hagamos uno nuevo. Simplemente haga clic en este
control D para duplicar. El segundo son los puntos de desove de
antorcha, creo que el segundo
es la antorcha Sí, lo es. El segundo
es la antorcha. En realidad necesitamos
la antorcha aquí abajo
donde hay que agregar los
puntos de desove y no la pluma
ligera Esta es la única diferencia. Ahora bien, para
acortar esto nuevamente, recuerda usar el nodo select,
Un nodo muy importante y
potente que puedes arrastrar desde este
y luego decir select Ahora puedes seleccionar la pluma o puedes seleccionar la antorcha, dependiendo a
lo que conectes aquí. Ahora, ¿cómo sabemos cuál
seleccionar dónde está eso? Nuevamente, donde se puede
utilizar la enumeración. Si vuelvo en los
elementos que puedo escribir, haga clic en Hacer una nueva enumeración de
planos Y llamémosle a éste artículos. Vamos a abrir esta.
Solo agreguemos algunos artículos. Ahora sólo voy
a probar algo en. El primer artículo es pluma ligera. El segundo es Antorcha. Siempre podemos tratar de
ver si eso funciona. Si no funciona, realmente no
importa, entonces hemos aprendido
algo de ello. Si vuelvo ahora, tengo esta enumeración. De hecho voy a añadir
esta enumeración a este punto de España porque nosotros, nuevo, al igual que el
nombre, necesitamos
establecer la enumeración correctamente Vamos a abrir el punto de dolor de
ítems, porque anteriormente
agregamos esta variable item, o esta
variable de nombre de punto spain a esta base de
punto. aquí. Pero
realmente no tiene sentido agregar una enumeración de elementos a
la base de puntos de punto porque el enemigo realmente
no la necesita ¿Por qué lo agregarías dentro
de la base de punto punto? Porque recuerden el punto punto es el hijo de éste. No quiero agregar variables
innecesarias donde realmente no las
necesites en todos los demás actores. Sólo los necesitamos
dentro de aquí. Vamos a agregarlo dentro de aquí. En su lugar, agreguemos una
variable, llámala ítem. Déjame solo buscar artículos. Artículos. Así es
como lo llamamos. Vaya y selecciónelo. Compilar. Volvamos a guardar
todo. Exponer, Instancia, Editable. Exponer en spawn, compilar. Ahora si hago clic en él, puedo cambiar el artículo
a pluma ligera. Y al siguiente puedo
cambiarlo a Antorcha. Ahora tenemos esta información. Ahora si vuelvo
a mis planos, abre mi modo de juego Qué podemos hacer dentro de aquí
para obtener esta información. Recuerda, ya
tenemos esta información aquí. Para que pueda tomar mi ítem local, puntos
de generación, puedo decir que consigue Y sólo voy a
conseguir el primero, luego voy a decir ítem y luego voy
a encontrar mi enumeración Ahora adelante y
enchufa esto aquí. Ahora los puedes volver a enchufar. Ahora se puede ver
dependiendo de cuál sea este valor, va a seleccionar
esos arrays. Si es la
pluma ligera que has seleccionado aquí en
la exposición de un engendro, va a seleccionar la matriz de
plumas ligeras y así sucesivamente Puedo ver que va
a funcionar bien. También aquí abajo para la ubicación del actor
get, necesita un actor seguir
adelante y copiar pegar esto y
pegarlo por aquí. Así que eso funcionará igual bien después de que haya agregado los puntos de desove
para el primero aquí, para el primero necesita El segundo cuando llegue al segundo
por aquí. Ahora recuerda que preguntamos, ¿el contador de bucle local mayor que la cantidad de
filas que deseas tener? Más pequeño, más grande si es más pequeño. Si eso es cierto, simplemente seguimos
adelante y volvemos a dar vueltas. No obstante, si no es menor, significa que necesitamos detener
el bucle porque
hemos alcanzado la
cantidad máxima de filas para esta, tenemos que ir a la siguiente. Lo que podemos hacer es que podemos tomar
esto y podemos decir índice. Porque sabemos que
necesitamos eliminar índice cero porque básicamente
estamos usando el primer índice para que
básicamente engendremos los
elementos dentro de aquí, Eliminar el primer índice
que es el índice cero Antes de que volvamos
al siguiente punto de engendro, necesitamos asegurarnos de
que esto no esté vacío Porque ¿qué pasa si
llegas al último punto de desove? No queremos seguir dando un giro. Tenemos que arrastrar aquí
y decir que no está vacío. Porque queremos hacer un bucle
siempre que esto no esté vacío, hagamos una rama,
adelante y la conectemos. Si no está vacío, queremos volver a hacer un bucle. Ahora recuerda, necesitamos
restablecer el valor Z, porque de nuevo
estamos en una nueva fila. Necesitamos restablecer todos los
ajustes para el valor Z. Voy a ponerla a cero. Y luego para el contador de
bucle local también, porque ahora estamos iniciando
un nuevo contador de bucle, voy a ponerle 20 también. Déjame ver si hay
algo más que necesitamos cambiar. Ahora para el
índice de bucle local, en realidad, esto se queda
igual porque tenemos la misma cantidad
de elementos por fila. Realmente no necesitamos
cambiar nada. Vamos a compilar y
guardar todo. Ahora para este, básicamente
vamos a
enchufarlo de nuevo al bucle así. Nuevamente, haz doble clic
sobre él para que podamos ver lo que estamos haciendo ahora. Veamos si
realmente está funcionando. Ahora, antes de hacer clic en play
y tratamos de hacer esto, puedes ver que está desove uno
encima del otro No creo que sea
un error aquí, porque recuerda
en el jugador también eliges cómo
realmente llamas a esto. Solo teníamos el punto de
desove de plumas ligeras del que obtuvimos. Tú. En realidad también hay
que hacer esto un poco más dinámico. Ahora otra vez, recuerda que tienes que
obtener la ubicación aquí, la matriz, dependiendo de cuál sea
el ítem para hacer este acto. Porque aquí tienes una
cadena y lo que estás usando dentro del
modo de juego es una enumeración Realmente no se pueden
usar esos juntos. Tampoco se puede conectar una
cadena a una enumeración. Si lo sacamos aquí, tenemos que
convertirlo de alguna manera. Hagamos una nueva
función aquí arriba. Llamemos a éste,
consígalo puntos de desove. Esto sólo es obtener
información. Recuerda configurarlo en puro, así se vuelve como
una función verde. Aquí sólo estamos obteniendo
información. Ahora para éste,
lo que podríamos hacer, por ejemplo, podríamos
buscar artículos. Podríamos usar esta
enumeración como antes, y podemos decir
encender la enumeración Y básicamente podemos asignar los puntos de spawn dependiendo de
lo que estemos hablando, qué ítem hemos seleccionado El problema con esto es si
necesitamos usar este, Consígalo hijo puntos. Si compila y vuelvo
al jugador y tomo
el modo de juego y digo que lo llamamos consigue puntos spa. Consigue puntos de spa. Traté de usar este. Si trato de enchufar esto aquí, puedes ver que
dice que la cadena no es compatible con la enumeración de
elementos Ahora podríamos agregar la enumeración de ítems
dentro de la estructura Realmente no quiero hacer eso, pero puedes hacerlo si quieres. Ese también es un método
que puede funcionar. Pero lo que quiero
hacer, en lugar de convertir esto en una enumeración, vamos a
convertirlo en una cadena Seleccione una cadena en su lugar, y llamémosla nombre del elemento. Eliminemos esta. Entonces
podemos decir que encienda String. Vamos a agregarlos.
Haciendo clic manualmente en el más. El primer elemento es
la pluma ligera. El segundo ítem es
el marrón dorado. Lo que podemos hacer es si
es la pluma ligera, podemos hacer un nodo de retorno
escribiendo retorno aquí, seleccionarlo y simplemente
arrastrarlo hacia aquí. Sólo voy a llamar a
esto puntos de engendro. Lo que podemos hacer es
que básicamente podemos copiar y pegar esto aquí abajo, conectados y así. Bien, ahora tenemos que hacerlo
por todos los puntos de spawn, pero por ahora
solo veamos si funciona Y siempre podemos continuar. Si vuelvo al jugador, ahora tomo la
variable de modo de juego y digo puntos items, y digo obtener items spon points Ahora puedo obtener los puntos de España, dependiendo del nombre del artículo. Sólo voy a
arrastrar esto hasta aquí. Entonces estoy tomando los puntos de
engendro y luego arrastrándolo hasta aquí arriba. Ahora podemos eliminar esta parte porque ahora se agrega
dinámicamente. Y si hago clic en Play
y compro plumas ligeras, si compro antorchas, sigue en el mismo lugar Veamos qué está pasando
mal dentro de aquí. Entonces puedo ver que he escrito Corona de
Oro por error
y es Antorcha. Entonces este es probablemente el problema. Si hago clic aquí arriba,
derecha, Antorcha otra vez. Si lo conecto de nuevo en cuando
cambié el nombre y vuelvo a
hacer clic en jugar y compro las plumas ligeras
y compro la antorcha. Ya puedes ver que está
funcionando perfectamente. Ahora puedo ver que
también está desove en las tres filas que
he elegido Ahora probemos y veamos
si eso está funcionando. Si cambiamos la configuración, si voy al modo de juego, establecemos puntos de desove de elementos Si solo hago clic en
la cantidad local de filas y cambio eso
en dos filas, también para el contador de bucle. El último índice aquí, digamos que
quería diez artículos en una fila. Aquí escribo nueve, porque recuerden que el
índice de inicio es cero, Fycliconplay, compro
las plumas ligeras, Puedes comprar diez Y se va a quedar aquí, pero el número 11
va en la siguiente fila. Ahora se puede ver que
está funcionando perfectamente y puedo hacer
lo mismo con la antorcha. Lo bueno es que siempre
puedes eliminar uno y puedes
colocarlo donde quieras. Puede hacer clic en Control
Alt para duplicar. Puede volver a cambiarlo a
antorcha así salvo. No creo que necesitemos más este nombre de
punto para este. Probablemente lo vaya a quitar, pero volvamos a hacer clic en reproducir. Ahora puedes ver que están trabajando porque el
primero fue Antorcha. Ahora solo comprobamos que el
primero es Antorcha, el segundo es
Pluma, y así sucesivamente. Todos ellos están
funcionando correctamente. Ahora volvamos a la base de puntos de
España o ésta. Eliminemos la
instancia Editable y expongamos en spawn porque ya no la necesitamos. Volvamos al mando de
reproducción. Voy a borrar todo esto y movamos
todo esto juntos. Solo voy a
crear algunas
notas de ruta traseras para arreglar
esto mucho mejor. Bien, así que ahora lo
he reorganizado todo y acabo de hacer notas de
reencaminamiento. Se ve mejor. Entonces lo que necesitamos ahora es que todos
los demás puntos respondan. Sólo terminemos esta parte. Déjame borrar el
primero de aquí abajo. Empecemos
desde el principio. Lo que puedes hacer es simplemente arrastrar
aquí y tienes que hacer, obviamente a la cantidad
de artículos que tengas. Ahora mismo tenemos
diez. Yo sólo voy a bajar, esto es 234. Básicamente tenemos que
hacer un mapa más grande o tal vez necesitamos
hacer más espacio. Sólo tienes que seguir adelante y
copiar ocho de ellos. Bien, ahora
tengo diez de ellos. Haga clic en el primero,
asegúrese de que sea el primer elemento. Siempre puedes
repasar y ver
aquí cuáles
tienes en qué orden. El primero es la pluma
ligera. Entonces Antorcha seleccionando el primero
como pluma ligera, nuevamente, necesitamos tener la enumeración de
los artículos, Necesitamos agregarles los
artículos La pluma ligera
es la primera, Antorcha, y luego
necesitamos la ruina del tiempo. El protector. Sólo voy
a agregarlos todos aquí. El último para mí
es la corona del mal. Ahora que los tengo de
nuevo a todos, guárdalo todo. Ciérralo hacia abajo.
Vayamos por aquí. Y entonces tenemos que cambiarlos
todos aquí también. El primero es Antorcha. Se puede abrir esto. Voy a agregarlo a mi segundo monitor. Y ésta es la ruina del tiempo. En realidad, es justo
en orden aquí. Básicamente podemos simplemente
agregarlo en orden. El protector, así en el último, para mí aquí está la
corona del mal. Todo debería
funcionar bien. Ahora bien, si vuelvo
al modo de juego, abre el modo de juego. Vamos a abrirla aquí arriba. Ahora tengo todas estas entradas que puedo
enchufar valores en ellas. Duplicemos esta otra vez. Hay que hacer uno para
cada uno de ellos, por ejemplo. El siguiente es la ruina
de los puntos de desove del tiempo. Sólo tienes que seguir adelante y
hacerlos todos y
conectarlos aquí también. Este es el último para mí. El último es la corona
de los malos puntos de desove. Voy a seguir adelante
y agregar eso también. Nuevamente, solo
asegurándome de que todo genial, reorganícelos así, eso debería estar bien Bien, ahora que
tenemos esto agregado, vayamos al
jugador y además
asegurémonos de que no necesitamos hacer
nada dentro de aquí. En el jugador aquí
realmente obtener artículos, puntos de
engendro, tenemos
que hacerlo aquí también Sigue adelante y haz clic en el
más un par de veces. Una vez más, eche un vistazo a sus matrices aquí y simplemente
cámbielas en consecuencia. El tercero es Ruina del Tiempo. Asegúrate de haber escrito
todo correctamente porque esto
también se va a tomar de la tabla de datos Nombre ruina del tiempo. El otro es el protector. Sólo voy a agregarlos
todos de nuevo. Nuevamente, esta es la
última para mí, la corona del mal, y espero no haber escrito
mal ninguna de ellas otra vez, solo para copiar esto
un par de veces Esto es 678910. Entonces ahora los tenemos a todos. Sólo tienes que seguir adelante y
enchufarlos a todos aquí una vez más. Y éste es el
último para mí. Entonces adelante y
conecta a todos ellos. Este es el último. Solo asegúrate de verificar dos veces. Si tienes un error
aquí, solo tienes que
verificar aquí que has
hecho todo correctamente. Comprueba que
estás enchufando todo esto correctamente, así
juntos Y también asegúrate
de tener, en el conjunto de puntos
de engendro en los que has enchufado todo esto correctamente, has escrito los nombres correctamente
dentro de
la enumeración
en los ítems aquí, son correspondientes
a los nombres que
tienes dentro de la tabla de datos Solo asegúrate de que todo esto sea correcto porque eso es
muy, muy importante. Todo debería estar bien. Ahora si vuelvo al jugador,
todo debería funcionar. Si hago clic en play, ahora compro algo. Vamos a probarlos a todos. Si son engendrados, significa que están trabajando Ahora necesito hacer
el mapa un poco más grande, pero podemos hacerlo después. Pero ahora puedes ver puedo desovar la rosa que tengo
sólo para 20 artículos Para que lo veas caja
si tengo arriba de 20. Pero voy a aumentar el número
a mucho más adelante. Pero como pueden ver,
puedo comprar 20 de cada artículo. Se ve muy bien. Ahora ahora tenemos artículos desove a la cantidad
de artículos que estamos comprando Todo está calculando correctamente, todo
es perfecto. Ahora vamos a cerrarlo. Voy a reorganizar
esto también, y podemos pasar
a la siguiente lección
81. 8.17 Estructura de costos del artículo y tabla de datos: Bien, entonces ahora lo que
vamos a hacer, vamos a aumentar
los precios cada vez que compres algo
aquí en la tienda. Se puede ver cada vez que
compro algo en la tienda, el precio se mantiene igual. Y este no suele ser el caso en un juego ocioso o clicker, porque tiene que ser
cada vez más difícil contrario este será un diseño de juego
realmente malo y será un juego plano, así que necesitamos
aumentar el precio Esto en realidad también es lo que
sucede en Cookie Clicker, por ejemplo, si no lo
has probado antes Entonces, por ejemplo,
si compras más cursores, puedes ver los aumentos de precio y se pone más difícil Así que tenemos que hacer eso
también para nuestra tienda. Tenemos que cambiar
el precio estático. Vamos a cerrar esto. Ahora para esto, quiero hacer una nueva estructura que contenga
todos los precios. Si vuelves a los planos,
abre las estructuras. Hagamos una nueva
estructura de planos para ésta. Voy a llamarlo costo del artículo. Ahora vamos a abrir éste. Lo que básicamente tenemos que hacer, necesitamos especificar el costo
del artículo para cada artículo. Voy a cambiar
esto a un entero. Al primero que podemos
llamar costo de plumas ligeras. Solo tienes que enumerar todos
los artículos que tienes. Ahora puedes ir a
esta enumeración. Si no recuerdas los artículos, siempre
puedes simplemente
tenerlos aquí a un lado. Y puedes seguir adelante y escribir todos los nombres dentro
de la estructura. Agrega una nueva variable copia
esta pasada en. Agrega una nueva variable, copia
esta, pegarla. Voy a hacerlo
por todos ellos. Bien, este es
el último para mí, y voy a
agregar el último, y ahora los tenemos todos. Déjame cerrar este y guardar todo. Ahora lo que tenemos que hacer, vamos crear una tabla
de datos a partir de esta. Siempre es bueno tener uno. Hagamos clic derecho,
vayamos a Blueprints, hagamos una tabla de datos miscelánea
en realidad y seleccionemos el costo del artículo Haga clic en Ok. Llame a un costo de artículo DT. Vamos a guardar todo ahora. Tenemos que ir a Google Sheets. Por aquí en Google Sheets,
teníamos esto antes. Vamos a crear uno nuevo. Déjame duplicar éste. Duplicar esto. Déjame llamarlo aquí abajo, DT costo del artículo. Ahora lo que necesitamos es, simplemente
eliminemos todo esto por ahora. Lo que necesitamos aquí
en esta tabla de datos es el costo de cada artículo. El primero es el costo de las plumas
ligeras. Por ejemplo, el artículo número uno costará
algo así como diez. El artículo número dos
costará algo así como 15. El artículo número tres podría costar
algo así como 25 y así sucesivamente. Y vamos a escribir todos los
nombres para los artículos aquí. Ahora los he escrito todos, todos los artículos. Ahora hay que especificar un precio para todos ellos. Por
ejemplo, éste. El primer artículo podría
costar diez para la antorcha, podría costar 15. Quizás 2030, 40.60
digamos 7510125, y tal vez como 150 Nuevamente, lleva tiempo
hacer todo esto. Yo solo voy a seleccionar igual, tomar la primera una vez
1.2 tal vez solo siga adelante
y arrastre un par de ellas. Ahora puedes ver lo poderoso es
esto porque puedes
crear fórmulas en, en hojas de Google y en
realidad puedes importar
estos números que básicamente
se hacen por fórmula para tu juego,
y puedes usar eso. Esto también es lo que usé en Farm Tail cuando la desarrollé. Redujamos la cantidad de decimales porque de decimales porque realmente no necesitamos
decimales. Vamos a eliminarlos todos. Sí, podemos hacer esto. Haga clic en
arrastrar también para los números, la cantidad de puntos de artículo, realmente depende de
cuántos artículos pueda comprar. Pero para este juego, digamos que puedes comprar 50 artículos. El ítem 50 cuesta esto, solo
podemos arrastrarlo al ítem
50, algo así. Tienes que hacerlo para
el resto de ellos. Creo que puedo hacerlo
así. Sí, de
hecho puedo seleccionarlos todos aquí y puedo
arrastrarlos aquí así, y todo va a estar
bien así. Bien, ahora tengo todos
estos números. Se puede ver lo rápido que es
al usar una hoja de datos. Así que ahora puedo hacer clic en Archivo, hacer clic en descargar,
descargar archivo CSV. Ahora para esto, podemos seguir adelante otra vez y
cambiarle el nombre así. Ahora puedo volver al motor. Dentro del motor,
vayamos a la carpeta de tablas de datos. Hagamos clic y arrastremos
esto aquí. Se actualizará toda la
información como podemos ver aquí. Ahora estamos listos para usar
esto. Vamos a guardarlo todo. Antes de terminar esto, vamos a crear también
la función de biblioteca. Voy a abrirla
solo para mantenerme consistente. De hecho voy
a cambiarles a F al principio porque suelo hacer eso para mis
funciones así. Bien, hagamos una
nueva función ahora. Llamemos a
éste, Obtener costo del artículo. Ahora el costo del artículo
depende de cuántos artículos
hayamos comprado. Porque como puedes ver aquí, si volvemos, realmente depende de cuántos
artículos hayamos comprado. Porque si hemos
comprado un artículo, necesitamos obtener el
artículo dos costo. Aquí. Si ya hemos comprado
ocho artículos, necesitamos obtener el
costo del siguiente artículo,
que es el artículo número nueve, en lugar de
tenerlo como cadena, como solíamos hacer para
todos ellos aquí. En realidad usamos
un entero aquí. Vamos a usar un entero
aquí también. Déjame agregar un entero de entrada. Déjame llamar a esto una
cantidad de artículos comprados. Cantidad de artículos comprados. Ya tenemos esa información dentro del mapa del jugador. Lo que podemos hacer es que
realmente no necesitamos tener este número, pero hay que agregarle uno. Debido a la cantidad de
artículos que has comprado, digamos que has
comprado tres artículos. De manera realista, queremos obtener el precio del artículo número cuatro No usarías este número, pero necesitas agregarle
uno porque necesitas tener el siguiente, el precio de este más uno. Y entonces podemos decir obtener fila de tabla de
datos como lo
hemos hecho todo el
camino para obtener una fila de tabla, necesitamos usar la tabla de datos de costo de
elemento. Ahora podemos enchufar esto aquí, pero ahora puedes ver que no
son compatibles, pero necesitas
transferirlo a una cadena, dos cadenas, y luego
de una cadena
puedes convertirla en
una variable de nombre. Así que adelante y conéctalo. Ahora podemos hacer un nodo de retorno, agregar una devolución, agregar
esto aquí y llamar a este artículo info de costo. Recuerda hacer clic en él y
convertirlo en una función pura, porque de nuevo, solo estamos
obteniendo información de ella. Ahora, vamos a probarlo
antes de terminar esta lección. Sólo para que sepamos que en realidad
está funcionando. Si voy al modo de
juego blueprints, por ejemplo, aquí en la gráfica puedo
decir obtener información de costo de artículo Y aquí está. Y
podemos usarlo como queramos. Bien, hagamos esto, compilemos, guardemos y pasemos
a la siguiente lección.
82. 8.18 Función de costo de artículo: Ahora lo que podemos
hacer es hacer una nueva función llamada
get item cost. Intentemos hacer eso dentro
del jugador porque
tendría más sentido. Porque aquí tienes
la cantidad de monedas y estamos trabajando con
monedas dentro de aquí. En realidad voy a
hacer una nueva función. Voy a llamar a este
Obtener costo del artículo. Tratemos de ver qué
tenemos que hacer aquí. De nuevo, voy a
cambiarlo a un puro porque solo estamos obteniendo alguna información para
el costo del artículo get. Acabamos de hacer esta
tabla de datos y biblioteca de funciones diciendo obtener costo del artículo y
podemos usar esta. Necesitamos la información de cuántos artículos
hemos comprado hasta el momento. Recuerda, ya
tenemos este mapa. Entonces podemos hacerlo fácilmente
diciendo encontrar. Al igual que antes necesitamos
encontrar el artículo correspondiente, en realidad
necesitamos el nombre del artículo. Necesitamos una variable
dentro de aquí. Ahora, en lugar de
tener solo el nombre del elemento, vamos a
hacer clic aquí arriba. Porque sé más adelante
aquí si rompemos esto, también
necesitamos seleccionar el precio del artículo Si
acabo de hacer una devolución, para que realmente puedas
ver lo que está pasando, hago un nodo de retorno aquí. Tenemos que devolver el
costo del artículo, porque este es todo el
objetivo de esta función. Necesitamos saber el costo del artículo. Ahora necesitamos esto dependiendo de, hagamos un nodo selecto aquí. Depende de qué artículo estemos hablando y
podemos enchufarlos. Pero el problema es que no podemos
enchufar una cuerda dentro de aquí. Porque si hago una cuerda, ahora hago una cuerda y trato de enchufarla, no
es compatible. Creo que en realidad necesitamos
agregar la enumeración que
creamos a nuestra estructura de ítem o a la estructura
de la información del ítem Ahora, dije antes, podríamos estar
necesitándolo dentro
de la información del artículo y creo que realmente lo hacemos. De hecho, hagamos eso ahora. Esto es muy fácil porque ya
tenemos
todo lo que necesitamos. Si sólo recuerdo
en la enumeración, ya
tiene esta enumeración de
ítems Vamos a las estructuras, abrimos la información del ítem. Y la razón por la que
necesitamos agregarla dentro de aquí es por aquí. Solo puedo decir artículo
aquí, información del artículo. Y solo puedo agregar
el ítem así, porque ahora tenemos el nombre del ítem y también
tenemos la enumeración Vamos a agregar la enumeración
a esta estructura. Vayamos por aquí. Agregar una
nueva variable llamada item. Cambiemos esto a
la estructura del ítem que creé anteriormente. Compila o simplemente guarda, déjame moverlo
aquí arriba debajo del nombre. Guarde todo de nuevo. Ahora lo que tienes que
hacer es tener que volver
a la tabla de datos. Tienes que
abrir la información del artículo. Ahora obviamente hay
que agregar aquí una nueva columna a la derecha
y llamar a este ítem. Sólo tienes que copiar y pegar
todo esto por aquí, y ahora ya terminaste. Sólo tienes que seguir adelante y descargar el archivo CSV y
cambiar el nombre de éste. Ahora ya tengo esta, así que voy a eliminar esta. Voy a cambiarle el nombre
a item info y luego voy a volver
al motor dentro de aquí. Vamos a las tablas de datos, y vamos a arrastrar esta
a aquí. Y ahora tenemos toda
la información que necesitamos. Bien, vamos a guardarlo todo. Ahora volvamos al jugador. Y lo que podemos hacer es
que podemos descomponer esto. Ahora podemos agregar el nombre M. Tenemos eso, déjame simplemente
moverlo todo hasta aquí. Ahora podemos agregar el
nombre del artículo. Eso está hecho. Ahora podemos enchufar esto aquí. Entonces esta es la cantidad
de artículos que compramos. Por lo que va a
encontrar automáticamente el precio del siguiente artículo. Porque dentro de esta función, recuerda que le agregamos una. Por lo que automáticamente va
al siguiente ítem para echar un vistazo a cuánto
cuesta. Entonces ahora tenemos esto. Vamos a seleccionar
el precio del artículo, dependiendo de qué artículo
estamos hablando. Ahora que tenemos
esta enumeración, sólo
podemos darle click y
arrastrarla aquí y agregarla. Ahora ya sabemos de qué
ítem estamos hablando porque
ahora lo hemos definido dentro de nuestra tabla de datos. En la tabla de datos sabemos de qué
ítem estamos hablando. Se va a seleccionar
automáticamente el valor correcto
dependiendo de cuál sea la enumeración Sólo tienes que seguir adelante y conectar
todos esos juntos. Y automáticamente
va a seleccionar un valor dependiendo de cuál sea el valor
de este de aquí abajo. Bien, ya terminamos
con esta función. Ahora, antes de que
terminemos esto, repasemos y en realidad
hagamos algo un poco mejor. Si vuelvo a la modalidad de juego. Recuerda que hicimos todo esto dentro del conjunto
que genera puntos En realidad, ya usamos
la enumeración de elementos, pero en los puntos de generación get it usamos este switch on string De hecho, podemos
hacerlo un poco mejor ahora que tenemos
la enumeración. Permítanme simplemente borrar esto y decir que en realidad cambien
éste a ítems. Adelante y selecciónelo, Este es el nombre del artículo, Eso está bien. Podemos decir switch on, tenemos switch on enumeration lugar de switch on string Es mucho más fácil
porque automáticamente te da todos los valores que has escrito dentro
de la enumeración De nuevo, sólo tienes que seguir adelante y agregarlo. Ahora puedes ver durante el desarrollo
del juego, hay algunas cosas que
podrías necesitar en el futuro. Por ejemplo, antes no
quería agregar esta enumeración, pero ahora mismo, mucho más sentido
tenerla en el juego Siempre es agradable volver a tus mecánicas anteriores
que has hecho y agregar cosas
que son mejores
si empiezas a necesitarlas
durante el desarrollo. Ahora que tenemos conseguir
artículos, un punto. Recuerda que también tenemos que
ir al jugador. Entonces si abro el jugador incluso grafico porque
ahora tienes una era. Porque recuerden, este es el problema
anterior que teníamos antes. No podemos agregar una cadena
a una enumeración, pero ahora tenemos la enumeración
dentro de la estructura Podemos simplemente arrastrarlo hasta aquí. Deja este pin y
sigue adelante y compila. Sólo tienes que seguir adelante y hacerlo
más estructurado así. Ahora bien, si solo hacemos clic en el plato
para probar el juego para ver si todo está
funcionando como puedo ver, todo está funcionando
bien como antes. Bien, ahora esto es mucho mejor. Hemos hecho que nuestra nueva
función obtenga el costo del artículo, y podemos usarla para cambiar
el costo del artículo. Pasemos al siguiente.
83. 8.19 Aumento del costo del artículo: Bien, bienvenido de nuevo. Entonces ahora estamos listos para
actualizar el costo del artículo. El costo del artículo se muestra
dentro de la interfaz de usuario. Vamos a abrir la
tarjeta del artículo de la tienda aquí por el precio. Vamos a la gráfica. Hasta ahora lo que estamos haciendo es que solo estamos fijando
el precio para que sea estático aquí en la construcción del
evento donde establecemos el precio. Hagámoslo de nuevo
dentro de un evento personalizado, igual que lo que hemos estado haciendo por la cantidad de artículos. Permítanme hacer clic aquí, hacer un nuevo evento personalizado personalizado. Llamemos a esta
actualización Costo del artículo. Ahora el costo del artículo, el objetivo aquí es básicamente solo
establecer el texto. Así que solo voy a tomar el
texto del conjunto de precios del artículo igual que antes. Esto es en última instancia
lo que tenemos
que hacer ahora para el texto del ítem. Nuevamente, depende de qué
ítem estemos hablando. Déjame
hacer clic aquí. artículo costó porque ahora hemos creado esta biblioteca de funciones. Podemos tomar esto y
descomponerlo. Pero ahora se puede ver el problema ahora es que no sabemos
cuál usar. Recuerda, en lugar
de usar este, acabamos de hacer uno
dentro del jugador. Usemos éste en su lugar. Si tomo el peón jugador y
tomo esto aquí y
digo obtener costo del artículo, tenemos esta función
del jugador Ahora simplemente solo necesitamos
enchufar el ítem, porque hemos hecho
todo esto dentro de la lección anterior
donde seleccionamos este, dependiendo del ítem que le
demos. Volvamos al artículo Cod. Permítanme borrar
éste de aquí arriba. El info del artículo, ya
tenemos eso, así que sólo voy
a enchufar eso. Ahora. Tenemos el costo del artículo. Ahora puedes ver lo súper fácil que es obtener el costo
del artículo así. También se ve mucho más limpio cuando conviertes
las cosas en funciones. Déjame reorganizar
todo esto aquí. Ahora tenemos el costo del artículo. Ahora en vez de tenerlo establecido
como un valor estático aquí arriba, solo
voy a eliminarlo. Da clic en este y oculta los pines
no conectados aquí arriba. Lo que podemos decir es
actualizar el costo del artículo. Y básicamente solo llama a
la función que somos, el evento que
creamos aquí abajo. Así que actualice ese también. Bien, entonces eso está funcionando ahora. El problema es que también necesitamos actualizarlo como
el precio también, para todos los demás artículos u otros lugares hemos
utilizado el costo del artículo antiguo. Porque si solo
destaco esto, si solo hago clic derecho en
esta información del artículo, recuerda que tenemos este costo de artículo
o costo de monedas dentro de aquí. Y realmente ya no lo
necesitamos porque lo
estamos obteniendo de esta. Lo que podemos hacer es que podemos hacer
clic derecho en este, Buscar referencias. Y voy a dar click en
el pequeño icono de aquí abajo, porque necesito encontrar
las referencias en todos los planos.
Al hacer clic en el primero, lo que estoy haciendo ahora mismo es
simplemente echarle un vistazo y ver dónde estoy usando este costo de monedas porque necesito
cambiarlo por esta. Nuevamente, tomemos al jugador, digamos obtener el costo del artículo. Enchufe el artículo que es
este. Conéctalo aquí. En lugar de usar este costo de artículo, podemos usar este
en su lugar. Borremos esto. Tienes que
cambiarlo porque este es el costo correcto del artículo
que estás usando en este momento. Volvamos a nuestras referencias y hagamos clic en la siguiente. No muestra nada
porque este es solo el nombre del artículo.
Haga clic en el siguiente. Nuevamente, este es el costo
del artículo nuevamente. En realidad, veamos
si podemos copiar esto. Déjame copiar esto para
no tener que escribirlo otra
vez sobre el artículo. Ya tenemos esa
información aquí. Conéctalo,
conéctalo, elimina esto. Pongámoslo
por aquí, compila. Vamos a abrir las referencias. Una vez más,
da clic en el siguiente, nada aquí. Haga
clic en el siguiente. Ahora estamos dentro del jugador, así que solo podemos
tomarlo de aquí. Consígalo. Costo. Y
el artículo está aquí. Y el costo, podemos simplemente
enchufarlo de nuevo aquí. Nosotros no usamos este
. Haga clic en él. Ocultar pines desconectados como este. Compilar. Volver a las referencias otra vez.
Da click en el siguiente, Nada aquí. Vuelva a hacer clic en
el siguiente. Y aquí tampoco usamos
el costo del artículo. Ahora podemos dar click en Placa
para ver qué pasa. Ahora si hago clic en Por,
puedes ver que el
costo del artículo no se actualiza. Eso es porque
por supuesto, necesitamos
llamar a este evento
actualizar el costo del artículo. Esto tiene sentido
cada vez que compramos un artículo. Si voy al
jugador y vamos
a ir a este
artículo de compra, llamémoslo aquí. Llamémoslo siempre que
hayamos agregado a este mapa y
actualizamos la cantidad del artículo que hemos comprado
antes de actualizar el color del
botón de compra o por color de texto. De hecho, vamos a agregarlo aquí. Si solo arrastro de aquí
y digo actualizar el costo del artículo, conectémoslo así. Eso debería funcionar bien. Recuerda que este pin es
del artículo de la tienda porque
teníamos una referencia del mismo. Y permítanme simplemente
dar click en éste. Ocultar pines no conectados,
compilar, hacer clic en reproducir. Ahora cuando compro, puedes ver que
el precio del artículo va en aumento. Está aumentando
dependiendo de
lo que haya escrito dentro
de la tabla de datos. Ahora, solo para
asegurarme, déjame abrir la tabla de datos y ver si
he hecho las cosas correctamente. Ahora, el artículo número 15
debería costar 128. El artículo número 15 cuesta 128 y eso es correcto.
Ahora se puede ver, y eso debería funcionar
para todos ellos. Por lo que este último, artículo número 11, debería costar 929 artículo número 11 es éste, para el último cuesta 929, así que eso es correcto Ahora sabemos que esto es correcto y también está
calculando correctamente. Porque ahora puedes ver si
haces clic en el último, debería
restarle 929 Y si presionamos aquí,
ese también es el caso, todo está funcionando bien. Guardemos todo, y pasemos
al siguiente.
84. 8.20 Diseño del widget de información sobre herramientas: Lo que quiero hacer a continuación
es cuando hagamos clic en Jugar y coloquemos el
mouse sobre estas cartas Quiero tener algunos, una punta de
herramienta que te muestre cuánto DPS obtendrás o daños por segundo
obtendrás cuando compres este artículo Sigamos adelante y
creamos una punta de herramienta. Hagamos clic derecho aquí en la interfaz de usuario y creemos un
nuevo widget, blueprint Llamemos a esta punta de herramienta WB. Punta de herramienta, así. Y
vamos a abrirla ahora. Nuevamente, necesitamos agregar
un lienzo como de costumbre, antes de comenzar a diseñar. Entonces creo que sólo
voy a entrar aquí. Voy a copiar esta, esta superposición y esta imagen. Voy a controlar C y
controlar V dentro de aquí. Voy a dar click
aquí arriba en la pantalla de llenado. Y de nuevo seleccione deseado
en pantalla en su lugar. Para el sensor de punto de anclaje, justo 0.5 en la
alineación para la x e y , luego haga clic en Tamaño
para contenido también. Y las posiciones x e
Y deben ser cero. Y cero, ahora está en el medio. Bien, ahora
empecemos a diseñarlo. Yo sólo voy
adelante y borrando esta imagen así como
esta caja horizontal. Sólo voy a arrastrar
el texto aquí arriba. Eliminar la caja horizontal. Ahora para éste, voy a reducir el tamaño de este texto. Creo que es demasiado grande, quizá. Intentemos 18 en su lugar. Para el desplazamiento de sombra. Déjame escribir dos en su lugar aquí. Bien, ahora para esta imagen, en vez de que la imagen
sea de cierto tamaño, solo
voy a escribir
32 que es el valor predeterminado. Y podemos simplemente
dimensionarlo al contenido revés de éste.
Empecemos con el texto. Para el texto, lo que tenemos
que decir es, por ejemplo, cada antorcha da cinco DPS Eso es lo que quería decir. Ahora en lugar de solo
tenerlo como texto, en realidad
quiero
agregar un cuadro vertical porque necesito algún
otro texto debajo de él. Agreguemos una caja vertical. Agrega el texto a éste. Y solo sigue adelante y controla D para duplicarlo aquí abajo. Quiero decir al parecer haciendo, por ejemplo cero DPS aquí arriba, te
va a decir cuanto DPS, este ítem te da Y DPS, por cierto,
si no lo sabes, es daño por segundo Entonces, ¿cuánto daño por segundo va a
hacer
este artículo cuando lo compres? ¿Cuánto estás
haciendo actualmente? Esto es cuando, por ejemplo, 15 de esos, debería
decir 15 por cinco. Y te dirá
cuánto DPS estás haciendo por el color del mismo. Yo sólo voy a copiar este
color que tenemos aquí. Pégalo a éste. Y pegarlo a
éste también. Ahora creo que le voy a dar
algo de espacio también. Por ejemplo, aquí podemos darle un espaciador entre los dos textos. Vamos a darle un espacio
de diez y la Y.
Y también vamos a darle algo de espaciado a la caja
vertical. Vamos a escribir 30 y el relleno, así que tenemos algo de espaciado
ahora para el DPS También quiero cambiar el color del texto porque
creo que se ve mejor si cambiamos la cantidad de DP como el color del texto aquí, porque se vuelve
más fácil de leer Ahora bien, realmente no podemos
hacerlo con un
solo texto porque de lo contrario
cambiará el color
de todo el texto. En cambio, lo que tenemos que
hacer es duplicar este
haciendo clic control D. Vamos a agregarlo
a una caja horizontal, porque necesitamos que
esté uno al lado del otro. Añadiendo esos dos
al cuadro horizontal, voy a eliminar los cinco DPS de este,
del otro Voy a borrar
todo el otro texto excepto los cinco
DPS así Recuerda agregar un espacio aquí. Entonces hago clic en este espacio publicitario. Ahora bien, así es como se ve. Ahora puedes ver que el espacio
es un poco demasiado grande. De hecho voy
a borrar el espacio, y voy a añadir
un espaciador en su lugar, porque ahora podemos controlar cuánto espacio hay
entre los personajes. Y voy a
escribir cuatro en la X. Creo que eso
se ve mucho mejor. Hagamos
lo mismo aquí abajo. Voy a
duplicar ésta. En realidad, borra
el de aquí abajo. Tira hacia abajo debajo
del espaciador así. Entonces podemos escribir, por ejemplo, cero DPS aquí, aquí abajo. Podemos escribir actualmente
haciendo cero DPS. Por ejemplo, quiero
asegurarme de que el, esta caja horizontal esté
alineada al medio
así como esta otra caja
horizontal alineada al medio también. Ahora cambiemos el color de
los cinco DPS o el texto
DPS aquí arriba. Voy a cambiarlo a
algo morado como esto. Puedes intentar encontrar
el color que más te guste, tal vez
algo así. En cuanto a la saturación, no
quiero que
esté demasiado saturada lo
contrario es un poco
difícil de leer. Voy a ponerla
en algo así como 0.42 Eso es para el
volumen, uno está bien Haga clic en Bien, Este es
un texto diferente. Ahora puedes darle un
poco más de saturación. Por ejemplo, 0.445
También puedes copiar esto en el
otro. Ahora lo que también quiero
hacer es cambiar el color de sombra debajo ella porque ya
no cabe. Yo sólo voy a copiar esto aquí
arriba basado en esos dos. Cámbialo para que sea algo
muy oscuro como esto. Tal vez 0.4, algo
así como 0.4 la coca. Entonces sigue adelante y copia esto más allá del color de la sombra
y échale un vistazo, y creo que
se ve mucho mejor. Ahora, permítanme cambiar este
de aquí arriba a 0.4 en su lugar. En la saturación, sólo
voy a copiar este
color aquí abajo. Y voy a copiar
el color del contorno aquí
abajo también. Ahora puedes ver que es de
un color diferente y es mucho más fácil de leer. Creo que hemos terminado de
diseñar este. Pasemos al siguiente.
85. 8.21 Actualización de la información sobre herramientas: Ahora sigamos adelante y actualicemos
la interfaz de usuario de Tooltip por aquí. Vamos a la gráfica y actualicemos de
hecho la información. Voy a borrar todo esto. Y hagamos clic derecho
una vez más y hagamos
un nuevo evento personalizado llamado
actualizar la interfaz de usuario de información sobre herramientas Ahora para éste, lo
que básicamente queremos
hacer es que queremos cambiar
el texto de esos. El primero, ver aquí, dice el nombre del ítem. Aquí necesitamos un valor dinámico, necesitamos el nombre de cada ítem. Da click en este, solo
voy a llamarlo da PS. Este texto aquí arriba. Lo que
solo voy a llamarlo es ¿cuánto DPS te va a dar este
artículo ¿Cómo va a hacer DPS este
artículo? O cuánto
vas a hacer aquí arriba. Yo sólo voy a
llamarlo da PS. A éste sólo lo voy a llamar igual, da cantidad de DPS Esta es la cantidad aquí abajo. Sólo voy a
llamarlo haciendo PS. Esta es cantidad de PS. Bien, vamos a compilar
y
digamos, volvamos ahora a la gráfica. Empecemos con el
da P, el primer texto. Sólo queremos poner el texto
como de costumbre así. Ahora recuerda lo
que dije antes. Anteriormente dije que si tienes un
texto dinámico como este, necesitas usar un formato de texto. Escribamos desde aquí
y digamos formato de texto. Sólo escribamos
la misma frase. Dice cada uno para dar. Lo que necesitamos
escribir aquí es cada uno. Y luego necesitamos abrir el corchete porque la
antorcha es un valor dinámico, solo
vamos a
decir nombre del elemento y cerrarlo con los
corchetes enter, puedes ver que aparece una entrada cada uno y el
nombre del ítem da así. Y ahora podemos enchufar el nombre del artículo,
en realidad
necesitamos la información
del artículo. Ahora para hacer esto,
vamos a agregar un pin aquí, cambiarlo a la
estructura de información del artículo, llamarlo ítem. Ahora podemos tomar esto, podemos romperlo, y podemos tomar el nombre del artículo y
enchufarlo aquí. Y se va a
actualizar correctamente. Bien, eso está terminado. Veamos lo siguiente
es esta cantidad de DPS. Tomemos, da cantidad de PS
y pongamos texto una vez más. Ahora de nuevo básicamente
necesitamos un formato de texto
igual que antes. Así que adelante y toma esto. Ahora en vez de decir esto, podemos decir cantidad EPS
y podemos decir DPS, el número aquí, y luego
el texto DPS Ahora necesitamos enchufar la cantidad de DPS. Ahora no
tenemos eso. En realidad necesitamos agregarlo y debemos
agregarlo al artículo,
porque cada artículo que compremos debe tener su
propia cantidad de DPS Vamos a las estructuras de
planos y abramos la información de TM Agreguemos una nueva
variable llamada DPS, o daño por segundo Eso depende de usted.
Cambiarlo en un flotador ,
Guardar, guardar todo. Ahora recuerda que
también tienes que
agregarlo a la tabla de datos a
través de Google Sheets. Pero por ahora solo
voy a abrir la M info. Aquí puedes simplemente escribir
lo que quieras. Sólo voy a escribir 10.20
y 30 o tal vez como 50. Sólo voy a escribirlo
para los tres primeros solo para probar. Realmente lo
necesito ahora mismo. Solo necesitábamos el valor
aquí en la información del artículo. Ahora tienes este DPS, adelante y conéctalo aquí Y eso debería funcionar bien. Ahora para el resto,
tomemos el DPS haciendo. Ahora. Es el texto aquí abajo. Se va a decir
actualmente haciendo. Ahora puedes ver
aquí que no tenemos ningún valor dinámico y realmente
no necesitamos cambiar este texto. En realidad no necesitamos
manipular este texto. Sólo tenemos que cambiar esta. Volvamos y llevemos el que
se llama regalos, cantidad de PS. En su lugar, establezca el texto. Tenemos que fijarlo a la cantidad. Yo sólo voy a copiar esta. Y éste va a mostrar la cantidad total de DPS para
este artículo que puedes hacer Solo voy a escribir aquí cantidad
total de DPS y
luego solo DPS Yo no lo conecté.
Ahora, la cantidad total de DPS depende de cuántos
artículos hayas comprado Y recuerden, ya tenemos
eso dentro del jugador. Necesitamos una referencia
al jugador. Hagámoslo. Aquí, personaje
jugador, por cierto, intenta hacerlo
tú mismo si puedes. Porque creo que puedes hacerlo. Ya tenemos la variable, la variable de mapa dentro
del reproductor que
necesitas usar, digamos que es
referencia del jugador desde la interfaz del
blueprint Adelante y conectado. Ahora
se llamaba Item Spot. Adelante y consigue este mapa aquí. Ahora a partir de este mapa, necesitamos
encontrar el artículo con el que
estamos trabajando. Voy a arrastrar
aquí y decir encontrar. Y tenemos que encontrar el artículo. Y cuando encontremos el artículo, nos
va a decir
cuántos de este artículo
hemos comprado. Vamos a arrastrar este
todo el camino hasta aquí. Ahora tenemos la cantidad
de artículos que hemos comprado. Para calcular el DPS total, tienes que multiplicar la cantidad
de artículos que has comprado con cuántos DP o
cuánto DPS está haciendo cada artículo Tomemos este y
lo multipliquemos por la cantidad de
PS que hace cada ítem. Y luego con eso tenemos la cantidad total de DPS
que podemos enchufar aquí Adelante y enchufa esto
también aquí. Ahora estamos realmente terminados, así que adelante y haz clic en
este ocultar pines desconectados Sigue adelante y
haz doble clic en estos para hacer notas
re art y
organizar tu código. Bien, ahora que
está organizado y con eso terminado adelante y
compila, guarda todo. Y ahora ya terminamos de
actualizar el doble tip I.
86. 8.22 Visualización del widget de información útil: Ahora es el momento de mostrar este widget de punta de herramienta
que hemos creado. Para ello, tenemos que hacerlo dentro del artículo de
la tienda, Cod. Porque recuerda cuando
hacemos clic en play, queremos que aparezca esta punta de
herramienta. Cada vez que pasamos
el cursor sobre estas tarjetas, en
realidad está dentro del artículo de
la tienda. Nosotros hacemos eso. Vamos a entrar aquí. Quiero mostrar este widget. Siempre que pase el cursor sobre
cualquier cosa sobre esta tarjeta, solo
voy a hacer clic en
esta superposición y hacerlo aquí Esto significa que dondequiera que flotemos sobre esta
tarjeta, aparecerá Haga clic en esta superposición. Voy a bajar aquí en el Comportamiento y dar
clic en Avanzado. Aquí abajo se ve este
llamado Widgets de Sugerencia de Herramientas. Sigue adelante y haz clic en Enlazar
y crea una encuadernación. Entonces adelante y amplía esto. Ahora necesitamos obtener el
widget que creamos, el widget información sobre herramientas de
la tienda No hemos creado
una referencia a ella, porque normalmente creamos referencias a la interfaz de usuario dentro
del control de reproducción. Sin embargo, para este widget realmente no
hemos
creado nada. No quiero crearlo dentro de aquí como lo hemos estado haciendo. Porque el, no es algo
que puedas abrir y cerrar. Es simplemente algo que aparece cada vez que pasas
el mouse sobre las tarjetas En lugar de hacerlo por aquí. Lo que voy a hacer es que
suelo hacer mis eventos que dentro de mis juegos
se llaman capa de inicialización Dentro de este evento,
agrego todo lo que
necesito que debería suceder
cada vez que abro el juego. Por ejemplo, este
widget de sugerencia de herramienta necesita ser creado, Digamos crear widgets. Y sigue adelante y selecciona
el widget de información sobre herramientas, este Comprar información sobre herramientas Y adelante y promociona esto a una variable llamada tooltip de tienda Por ejemplo, herramienta de tienda, Bien. Ahora que se crea, y también
recuerda sumarlo aquí arriba. Voy a hacer eso antes de crear las tarjetas. Ahora
realmente no importa. Pero solo para estar limpio aquí. Jugador inicializado. Ahora estamos llamando a
este evento aquí abajo, poner en conectado,
lo que sea que tenga que pasar. Cuando abra el juego, voy a agregarlo al evento inicial
del jugador. Ahora tenemos una referencia
a este widget Tooltip. Entonces, lo que podemos hacer ahora
dentro de la tarjeta, podemos obtener el controlador del jugador,
obtener el controlador del jugador. Entonces podemos dirigir
desde aquí y decir obtener referencia
del controlador del reproductor
desde el plano del widget Ahora podemos tomar este
y decir consejo de herramienta, y podemos obtener este
widget que acabamos de crear. Ahora para este widget,
lo que necesitamos llamar es,
si vuelvo a la tienda de widgets, punta de
herramienta dentro de aquí, recuerda que hicimos la
actualización de la interfaz de usuario de tooltip Llamemos a esta punta de
herramienta de actualización que conecté. Ahora necesita un ítem
porque lo usamos para actualizar básicamente toda
la información que tenemos. Eso porque estamos dentro
del artículo de la tienda Cod, y hemos creado esta información
del artículo anteriormente, que también usamos dentro de aquí para actualizar la información del artículo. Tomemos este
y lo conectemos aquí. Y luego conecta esto. Además, recuerde conectar
esta herramienta de widget a Putt al nodo final aquí De nuevo, puedes hacer
doble clic aquí. Se organizaron así. Bien, eso debería funcionar. Si compilamos y
guardamos todo. Y si hago clic en Reproducir, ahora
puedes verlo en realidad se muestra con el
nombre correcto para el ítem. Se puede ver que dice cada tirada
de artículo o cada serie de tiempo, y el protector protege los cascos de
cada rey, la corona de
cada rey y así sucesivamente. Ahora
también muestra
la punta de
la herramienta con la información correcta. Ahora hay un problema. Ahora si
vuelvo a hacer clic en reproducir y compro algo, se
puede ver que dice cero DPS y nada se está mostrando
realmente. Ahora para esta,
intentemos cerrarla y vamos a revisar
la tabla de datos si hemos escrito
las cosas correctamente. Si abro la
información del artículo, el primer DPS, la pluma ligera debería
ser 1020, luego 50 Y si hago clic en play, y compruebo el
primero debería ser 1,020.50 Y no puedo ver
nada se muestra Pero puedes ver aquí, cada
vez que compro algo, en realidad
se muestra correctamente. Si muevo el mouse y vuelvo a
pasar el cursor sobre él, y dice 20 DPS Echemos un vistazo a
dónde sale mal. Si abro el widget de herramientas de
tienda, la información
aquí me da, primero se llamó da DPS Este da
cantidad de DPS. Eso es correcto. Echemos un vistazo a
la cantidad da DPS, cómo se está configurando Comprobemos también la
otra parte del código, y aquí es realmente
donde sale mal. Porque uso la cantidad
da DPS, en lugar de hacer cantidad de DPS, eso es lo incorrecto Aquí, permítanme simplemente borrar
éste y compilar. Haz clic en Reproducir y si
pongo el cursor sobre él, ahora se muestra correctamente Esto fue porque aquí dije mal
el texto. Texto haciendo EPS es el correcto y da
DPS fue correcto también Bien, ahora si compro algo, se
puede ver que sigue mostrando
cero en el actualmente haciendo. Pero si me alejo de
él y me muevo a él de nuevo, se
puede ver que se
muestra correctamente. Si me alejo, muevo a
él, se muestra correctamente. En los 30 DPS que están haciendo actualmente, necesitamos actualizar realmente
los
DPS que están haciendo actualmente como otro lugar también, porque no se está
actualizando instantáneamente Lo que podemos hacer es que puedo llamar a esta actualización ToolPi cada
vez que compre un artículo Si cierro todo su, vuelvo a los planos Abre el jugador aquí. Hicimos este artículo de compra. Lo que podemos hacer aquí con el artículo de compra es que solo
puedo actualizarlo aquí. Al final, necesitamos
el controlador del reproductor. Voy a tomar el
controlador del reproductor y estoy recibiendo el widget de punta de herramienta
que creamos. Luego ejecutemos la
interfaz de usuario de información sobre herramientas de
actualización cada vez que
compremos un artículo ¿Y cuál es el artículo? Es esta la que
tenemos entrada aquí. Tomemos esto y lo
conectemos de nuevo. Simplemente organízalo así. Y vamos a compilar y dar clic en Reproducir y
ver qué pasa. Ahora si compro, puedes ver que actualiza la cantidad de daños por segundo instantáneamente y también se está actualizando correctamente
dependiendo del GPS que estemos creando. Ahora para terminar esto,
abre tu Google
Drive dentro de aquí,
encontremos la información del nivel, la
información del artículo aquí, la información del artículo y después del costo de
las monedas. Agreguemos DPS. Para el TPS, solo voy
a escribir para el primer ítem, va a hacer cinco DPS y
luego solo digamos iguales Yo solo voy a hacer que los números
aleatorios se multipliquen por 1.5 solo voy a
llevarlo hasta aquí abajo. Sólo voy a quitar todos
los decimales porque
no los necesito. Y podemos hacerlo
algo así. También se puede
decir multiplicado por 1.8 En realidad hacemos
más daño así. ahora y
descarguemos este archivo CSV, y recuerde cambiar el nombre de éste, cambiando el nombre de T item info Adelante y
abre el proyecto. Vaya a las tablas de datos, luego continúe y luego
continúe e importe la información
del artículo a aquí. Verifiquemos la información del
artículo para
asegurarnos de que TPS esté
ahí. Y lo es. Y así ahora puedes ver cada ítem tiene la
cantidad correcta de DPS visualizados Y si compras algo, va a mostrar correctamente el DPS que
está haciendo actualmente Obviamente, en realidad
no estamos haciendo ningún DPS en estos momentos porque
no tenemos daños automáticos. Pero al menos nuestro sistema ahora está funcionando para que podamos
continuar el rumbo.
87. 9.01 Aplicación automática de daños: Ahora es el momento aplicar
daño
automáticamente al enemigo. Y esto suele ser
lo que se hace en juegos
clicker cuando compras esto Y hace daño por segundo. Debería hacerlo
automáticamente en lugar de que sigas haciendo clic en el enemigo. Sigamos adelante y hagamos eso.
Hagámoslo en el jugador. Volvamos y
entremos en el jugador. Ahora ya hicimos algo con los daños dentro de aquí. Dentro del jugador, o
en realidad fue dentro
del enemigo donde
aplicamos algo de daño aquí. Ahora vamos a aplicar algún daño
dentro del jugador. Este es ahora el
jugador que hace daño. Vamos a hacer clic derecho y
hacer un nuevo evento personalizado. Llamemos a este Daños Auto. Va a
hacer daño automáticamente por éste. Ahora para hacer el daño automático, necesitamos algo en bucle Necesitamos un código de bucle
que siga funcionando y nunca
se detenga y le
esté haciendo daño Tienes algo
llamado temporizador. Tenemos algo que se llama evento. Configura el temporizador por evento. También tienes algo llamado
set tim por nombre de función. Ahora son similares. Estas dos funciones,
son similares. Por lo general los usamos cuando
necesitamos algo en bucle. Usamos el nodo delay
siempre que necesitemos
retrasar algún código y luego
hacer algo después. Recuerda para el nodo de retardo, usamos eso dentro
de la base enemiga. Si entro de aquí, usamos eso para retrasar realmente este código porque
esperábamos a que se acabara la voltereta. Retrasamos el código por la
longitud del libro volteo, y luego verificamos
si el jugador o el enemigo estaban muertos o no. Aquí usamos el retraso. Si necesitas algo que esté en bucle, el código necesita estar en bucle Es mejor usar un temporizador. Tenemos un temporizador por
nombre de función y temporizador por evento. Ahora bien, en realidad no
importa cuál
uses porque son
casi idénticos. En realidad, utilizo ambos, así que en realidad no
tengo preferencia. Te puedo mostrar cómo usarlos
para la T. Primero usemos el
temporizador por evento. Déjame poner esto por
aquí, retrasar este. Conectemos este
primer temporizador por evento. Tienes que decírselo al cronómetro. ¿Qué tan rápido quieres hacer loop? Por ejemplo, quiero hacer un
bucle cada 0.1 segundo. Esto significa que el código se va
a ejecutar cada 0.1 segundos. El código aquí va a
correr diez veces por segundo. Voy a ponerla en
bucle. Ahora necesitamos un evento. Voy a arrastrar
esto aquí abajo, justo en un evento personalizado. Llamemos a este bucle
de daño automático. Cualquiera que sea el código que escribas,
está fuera de aquí ahora va a bucle. Por ejemplo, si arrastre
desde aquí y escribo una cadena de impresión y debería
decir hola y compilo. Ahora bien este auto daño, obviamente
tienes que correr
a alguna parte y yo sólo voy a ejecutarlo
al principio. Juega aquí arriba. Y escribamos hacer daño. Ahora estamos llevando a cabo
este evento aquí. Y va a ejecutar este
temporizador que enlaza el código. Compilar Clic Play. En realidad ejecuta este código
y sigue funcionando. Como puedes ver aquí, corre, o dice hola diez
veces cada segundo. Si escribo 0.04 por ejemplo, haz clic en Reproducir, puedes
ver que es mucho más rápido Ahora bien, si no eres
fuerte en matemáticas, siempre
puedes
calcularlo diciendo, por ejemplo, 1/0 0.04 Significa que el código se está ejecutando
25 veces Ahora una garrapata,
quizá conozcas esta que siempre
te digo que no uses evento. Este muy malo en realidad se está ejecutando
en, si tienes razón, 1/0 0.02 esto es en realidad 50 veces este tick de
evento corre 60 veces Éste en realidad ni
siquiera es suficiente. Está funcionando tal vez
0.18 o incluso más bajo. Como puedes ver, el tick de evento
es súper, súper rápido. En realidad se está ejecutando así. El com play, este es el evento. Se puede ver que el temporizador es mucho, está mucho más optimizado. Puedes ejecutar el código
no tan rápido, pero aún puedes obtener los
mismos resultados si lo ejecuto por 0.05 Esto significa que estoy ejecutando el código
20 veces por segundo. Esto a veces es
necesario porque si ejecutas el código demasiado lento, va a sentir que
la barra de salud está rezagada porque está restando
salud Esto es si ejecutas
el temporizador demasiado lento. Y en realidad podemos ver eso
cada vez que hacemos todo esto. Ahora el temporizador establecido
por nombre de función. La diferencia entre esos dos es que esto va a hacer un
bucle de una función, una función que creamos aquí fuera. De hecho voy a
usar este porque mayormente quiero
usar este porque
mantiene el código limpio. No tengo que escribir o enviar spam a mi gráfico de eventos con eventos
aleatorios. De hecho, puedo simplemente hacer una función y se
esconde fuera de ahí, y es mucho más limpio
para esta función Llamémoslo daño auto. Hagamos también
esta función aquí. Hace un bucle de esto sea cual sea el
nombre que escribiste por aquí. Va a hacer un bucle de
esta función. Ahora recuerda que tienes que
escribirlo precisamente como lo
has escrito aquí. Para que funcione, voy
a subir 0.05 o vamos subir
0.14 Ahora vamos a intentar eso.
Permítanme borrar esto. Permítame borrar esto también. Déjame conectarlo,
vamos a escribir esto, Promocionarlo a una variable, que podamos detener el
temporizador si lo necesitamos. Yo solo
lo voy a llamar manija de daño automático, porque si sostienes
el mouse sobre
ella, dice que esta es una manija de temporizador o
mango de daño. Podemos usarlo para detener el
código o detener el temporizador. Ahora básicamente este daño, quiero jugarlo aquí arriba en el evento o comenzar a
jugar para el jugador. Siempre que empezamos el juego, empezamos a hacer el Orodamage. Obviamente no hacemos daño si aún no hemos comprado
ningún artículo. Vayamos a la función O
daño aquí. Al igual que antes,
quiero aplicar daño y ahora el
actor dañado es el enemigo. Y recuerda
que tenemos una referencia
al enemigo dentro
del mando de juego. Tomo el
controlador del jugador y busco enemigo
engendrado porque lo
hemos convertido en una variable y seguimos
adelante y lo conectamos Ahora en cuanto al daño base, vamos a trabajar con
él en la siguiente lección. Por ahora, sólo voy a escribir cinco y eso debería
funcionar bien. Ahora Flic juega. Ya puedes ver que el enemigo está siendo dañado
automáticamente. Y se ve bien. Pero obviamente tenemos que arreglar algunas
de las animaciones aquí. Ahora quiero mostrarte
que se siente rezagado, si lo dijiste esta vez O juego demasiado lento, se ve rezagado, se
ve de baja calidad Sin embargo, si
lo configuras en algo así como 0.04 que en realidad
quiero configurarlo en 0.04 se ve mucho
más Cuanto más bajo lo
pongas, más se va a
quedar limpio, así. Se puede ver aquí
va mucho más suave. No obstante, recuerda,
cuanto más bajo lo pongas, más vas
a hacer loop este temporizador, y cuantos más recursos
vas a utilizar en tu juego, y menos
optimizado estará. Quiero decirte
aquí que cuatro temporizadores, tratan de ponerla lo más
alta posible sin sacrificar
el aspecto del juego Si pienso 0.05 a Leggy, lo
pondré en 0.04 y estaré satisfecho
con ese número De nuevo, puedes entrar
aquí y decir lo que es 1/0 0.04 Eso significa que mi código está funcionando 25 veces. Eso es bueno. Eso está bien. Mucho mejor
que el tic del evento, que es 60 veces por segundo. Bien, ahora hemos terminado con todo esto y pasemos
a la siguiente lección.
88. 9.02 Cálculo del DPS total: Para aplicar la
cantidad correcta de daño, tenemos que calcular cuánto daño por
segundo tiene el jugador. Debido a que el jugador puede
comprar todos estos artículos, necesitamos
armar todo y luego aplicarlo como
daño automático al enemigo. Hagámoslo
creando una nueva función. Y a éste se
le va a llamar actualización total EPS. Primero, necesitamos todos los artículos que el jugador ha comprado. Tomemos este mapa.
Para ello, tenemos dos funciones. Tenemos dos nodos. Podemos usar una llamada claves. Qué son las claves, son la
primera columna aquí, la cadena, Esto se
llama claves. abajo y digo valores, entonces puedes obtener los
valores de esas claves. Tenemos claves por aquí
que son las cadenas, y luego tenemos los valores. Ahora necesitamos todos los artículos
que el jugador ha comprado, así que necesitamos usar las llaves. Voy a tomar
estas llaves aquí. Ahora tenemos todos los
elementos en una matriz. Voy a
recorrer todas ellas. Por cada bucle, para
cada uno de esos ítems, queremos saber cuánto
DPS están haciendo Para el DPS, recuerda
que tenemos el get item info, obtenemos info que hicimos de
la biblioteca de funciones Sigamos adelante y consigamos
eso para el nombre del artículo. Vamos a enchufarlo aquí. Y ahora podemos romper esta estructura. Y ahora
tenemos la cantidad de DPS. Ahora de nuevo, la cantidad de DPS, también
depende de
cuántos artículos hayamos comprado de este
artículo seleccionado que tengamos ahora mismo También necesitamos usar los valores. Voy a copiar
esto aquí y decir valores porque
necesitamos saber
cuánto compramos realmente de esos artículos. Para los valores, voy
a dirigir desde aquí y decir get porque ya estamos haciendo bucle aquí, así que
no necesito hacer bucle Entonces sólo voy
a decir que consiga una copia. ¿Qué índice quieres obtener? Sólo voy a seguir los índices o
índices para éste, así obtenemos la
cantidad correcta de ítems para el ítem correspondiente. Ahora lo que podemos hacer con esto, podemos decir que esta es la cantidad
de artículos multiplicados por DPS Por ejemplo, si
tenemos cinco del ítem, va a decir cinco veces. Por ejemplo, diez DPS son diez. Entonces necesitamos una nueva variable
para almacenar el DPS total. Voy a hacer una nueva
variable llamada DPS total. No lo cambio en una carroza. Ahora lo que podemos hacer es la
antigua cantidad de DPS, los, el DPS que tenemos ahora mismo
que hemos calculado, podemos fijarlo
al nuevo DPS Si no hacemos esto, si
solo muevo todo esto, si solo hacemos esto y hacemos
esto aquí y lo conectamos, esto significa que cada
vez que calcule, en realidad
va a poner
este EPS a este número. Y no queremos eso porque estamos recorriendo todos
los elementos y básicamente estamos
apilando todos los números Y seguir multiplicando y
multiplicando y sumando En lugar de
establecerlo en un valor estático, necesitamos sumar
la antigua cantidad
del DPS total a este Y aquí obtenemos la nueva cantidad, y básicamente podemos
establecer el DPS total aquí Ahora tenemos el DPS total. Y también tal vez podríamos obtener un número o no realmente un dólar, pero mostrar un dólar
donde sigue calculando y
tal vez el número se esté mostrando mal en
cierto punto. Lo que quiero hacer, en lugar
de usar el DPS total, en realidad
voy a
hacer una nueva variable, una local llamada DPS total
local Esta es una variable local que solo existe dentro de esta
función en la que estamos ahora mismo. En realidad voy a usar la variable local aquí
para establecer la cantidad de DPS Ahora recuerda que
las variables locales, no
pueden salir fuera
de las funciones. La próxima vez que intentes
calcular el DPS, éste va a ser cero Estas variables locales, se
eliminarán cada vez que
intentes ejecutar esta función. Es por ello que no puedes usar esto
fuera de esta función. Básicamente lo que tenemos que hacer
es cuando completemos el bucle y tengamos esta
cantidad total de DPS establecida, podemos tomar esta cantidad
local de DPS y podemos establecer el DPS
total aquí abajo Puedes hacerlo de esa
manera, o
básicamente puedes hacerlo
directamente aquí arriba. Realmente no
importa, pero me
imagino que en el futuro hay una
caja expositora. Si no está todo bien, solo
puede enchufar
el DPS total aquí en lugar del local Yo sólo lo voy a
hacer de esa manera. Y ahora tenemos
el conjunto total de DPS y podemos guardarlo todo. Podemos dar click aquí, Ocultar pines
desconectados si así lo deseas, Y nuevamente, reorganizar todo Ahora que tenemos
el número correcto de TPS que estamos haciendo, pasemos a
la siguiente lección y terminemos el daño oral
89. 9.03 Aplicación de la cantidad correcta de daño: Ahora que tenemos la cantidad
correcta de daño calculada
o el DPS total, volvamos a la función de
daño automático una vez más, y hagamos la
cantidad correcta de daño Ahora en vez de escribir
aquí o en lugar de simplemente arrastrar el DPS total
y aplicarlo aquí, esto está mal, porque haces clic en jugar ahora y
compras Y puedes ver
aquí, no está haciendo daño en este momento
porque en realidad
necesitamos ejecutar esta
actualización, DPS total De hecho hagamos eso dentro
del jugador cuando
compremos un artículo, porque tenemos que actualizar
el DPS Para el DPS, en realidad
voy a hacer eso después o antes de
generar el artículo. Y vamos a arrastrarlo. Vamos a arrastrar el DPS total de
actualización para asegurarnos de que se actualiza cada
vez que compramos algo Y si hago clic en Reproducir ahora
y compro algo, puedes ver que hace
el daño por segundo. Lo que quiero hacer ahora
es que se pueda ver aquí, aunque el
daño por segundo, así que para el primero debería
ser cinco si compro uno solo. Pero como se puede ver, no está haciendo cinco daños por segundo. Cada segundo está
haciendo mucho más. La razón es que estamos
ejecutando nuestro temporizador. Si vuelvo al gráfico de eventos, estamos ejecutando nuestro temporizador a 0.04 No
lo estamos ejecutando una vez por segundo Entonces como puedes ver aquí,
cinco por la pluma ligera. Ahora vamos a hacer cinco daños por segundo,
lo cual es correcto, pero lo estamos ejecutando a
0.04 Realmente necesitamos hacer alguna división para obtener el número
correcto por segundo Hagámoslo dentro
del daño auto aquí. Lo que tenemos que hacer
es básicamente decir hizo igual que lo que hicimos
antes donde dijimos aquí, recuerden 1/0 0.04 y
eso nos da Básicamente, este código
se ejecuta 25 veces por segundo. Necesitamos dividir el DPS total con 25 para obtener el
número correcto. Hagámoslo. Digamos 1/0 0.04 Aquí, voy a tomar, solo haz clic derecho aquí,
divide y elige esa Vamos a decir 1/0 0.04 Básicamente 0.04
tenemos eso en De hecho, promovamos
esto en una variable. Vamos a promoverlo a
una variable llamada Auto Damage Tim Time. Ahora podemos usar
este dentro
del auto daños y seguir adelante
y enchufarlo aquí. Y dividir por 11 dividido por
el tiempo del temporizador de daños auto, que es 0.04 Eso nos da 25. Como vimos aquí,
eso nos da 25. Lo que tenemos que hacer es el DPS
total dividido por 25, eso nos da la
cantidad correcta de daño por segundo Ahora va a hacer cinco
daños por segundo correctamente. Si compilo ahora y
hago clic en Reproducir, y ahora hago clic en Por
para la pluma ligera, en realidad
va a hacer cinco daños por
segundo correctamente. Sólo di 75 cuando esté terminado. Y en realidad decía 75 aquí. Porque recorremos
5 segundos y cinco por cinco es 25. Eso es correcto. Pero puedo ver que el número aquí se muestra con decimales, y eso no me gusta mucho. Vamos a arreglarlo. Vamos a
cerrarlo. Volvamos a la interfaz de usuario. Vamos a abrir la barra de salud. Y aquí dentro de la
gráfica para la barra de salud, solo
enchufamos el flotador. Por eso es
jugar aquí con decimales cuando
golpeas al enemigo. En lugar de hacer eso, lo que
puedes hacer es
arrastrar desde aquí. Si no conoces las funciones, básicamente
puedes escribir flotadores Puedes intentar mirar a
través de todos estos. Pero básicamente lo que
quiero usar es el piso o el sello. Básicamente qué es
piso y sello, puedes sostener el mouse sobre él y puedes ver lo que dice. Dice que redondea
hacia abajo, se puede ver. -1.6 se convierte en -2.1
0.6 se convierte en uno. O eso o puedes usar
sello. Creo que voy a usar sello. Por lo tanto, este básicamente 1.6 se convierte en dos en lugar de uno. Voy a usar
Seal, y puedes ver que lo cambia
en un entero. Y recuerda que un entero
no tiene decimales. Voy a sostener al Alt. Haga clic aquí para desconectar esto y luego conectar
éste en su lugar. Entonces ahora tenemos un entero. Y si hago clic en Play y
compro la pluma ligera, ahora puedes ver que hace
cinco daños por segundo. No está mostrando lugares
anti decimales, todo está funcionando correctamente. Pero como puedes ver aquí,
todos los efectos, no
quiero que este
efecto suceda. Saltemos en la siguiente
lección y arreglemos todos esos.
90. 9.04 Arreglo del efecto de golpe: Bien, ahora terminamos
con el daño auto. No obstante, puedes ver aquí
que tenemos este efecto. No quiero que este
efecto esté aquí. Así que tenemos que eliminar
algo del código. Como puedes ver,
tampoco es reproducir la animación de la muerte
lo que está mal también. Sigamos adelante y
arreglemos todo esto. Abramos al enemigo porque el daño
está dentro de aquí. Ahora se está reproduciendo el efecto de golpe, porque cada vez que le
hacemos daño al enemigo, va a jugar
el efecto de golpe. Sigamos adelante y desconectemos
esto y veamos qué pasa. Hago clic en play y
compro algunos daños. Aquí puedes ver que
está funcionando correctamente. No obstante, la animación de la muerte es por alguna razón que no se reproduce. Yo creo que eso es porque estamos looping el código muchas
veces y se mantiene Ahora bien, si acabo de copiar
este evento de muerte y trato de enchufarlo aquí, ahora realmente no
tiene sentido porque vamos a matar al enemigo instantáneamente
cada vez que hacemos clic. Y como puedes ver aquí, ese no es el enfoque
correcto. Lo que podemos hacer aquí
es preguntarnos, está muerto el enemigo? Probemos aquí. ¿Está muerto el enemigo?
Porque en realidad no queremos que
pase por el efecto hit. Si acabo de conectar esto e
intento hacer click en Play, y compro un par de tomos, ahora se ve correcto Y si el enemigo muere, se
puede ver que el enemigo
está muriendo correctamente. Bien, entonces todo está funcionando. Hemos desactivado el efecto hit y todo está funcionando. Ahora si hago clic yo mismo, puedes ver que no
tengo ningún efecto de golpe. Entonces necesito arreglarlo
también para el efecto hit. Ahora cuando hago clic en él, así que este es el clic del mouse, podemos agregar el
efecto hit aquí arriba en su lugar. Y si hago clic en jugar, ahora golpeo con el ratón, se
puede ver al jugador, el enemigo golpea, pero también
se puede ver que la
animación está reservada. Se puede ver aquí cuando hago clic, a veces el enemigo
se detiene. E intenté hacerlo otra vez. Pero este creo que
el segundo reservado eso es porque
si hago clic demasiado rápido, puedes ver este. La animación de la muerte tenía un libro. Esto se debe a que aquí en
el está muerto en realidad está reproduciendo esta
animación de muerte también para el clicker automático así como para ti Al hacer clic en la animación de la
muerte básicamente
se reproduce dos veces. Y esto va a reservar la
animación porque sigues enviando spam a este temporizador aquí y nunca
se reproduce correctamente Lo que podemos hacer, esta solución
muy sencilla, es el daño que aplicamos. Porque tenemos algo
llamado un tipo de daño, básicamente
podemos especificar, es el auto daño el
que está haciendo daño, o es el clic o el
mouse el que está haciendo daño? Para ello, muy sencillo, vayamos a los planos Y aquí déjame solo escribir
Click Ir a clase de planos, podemos buscar tipo de daño Si solo buscas daños, puedes verlo
aquí abajo, tipo de daño. Adelante y selecciona esto,
solo llámalo daño automático. Ahora bien, en realidad no vamos a entrar en cosas de daño
dentro de aquí. Básicamente solo necesitamos
esta clase de planos. puede pensar en ello como trabajar con enumeraciones
donde tenemos una lista básicamente usando esta clase y un tipo de
enumeración Regresemos y
vayamos al jugador. Como puedes ver aquí
en el jugador, cuando hicimos el daño aplicado, podrías establecer una clase de daño, ahora podemos configurarlo
al auto daño que acabamos de crear compilar. Lo que quiero hacer aquí es que quiero jugar esto siempre que sea, el auto daño que
está haciendo el daño. Ahora lo que podemos hacer
dentro de aquí por el daño o el enemigo, es que podemos tomar este
tipo de daño y básicamente podemos buscar un nombre y
podemos obtener la visualización. Ahora puedes seguir adelante
e imprimir una cuerda y ver qué hace si
simplemente desconecto esto, guardarlo, y puedes
escribir una cadena de impresión. Adelante y conéctalo. Y
conecta éste también. Sólo mira lo que
aporta a la pantalla. Si hago clic en play y compro
algo para hacer Daños auto, se
puede ver que básicamente muestra el nombre
del plano y
dice Auto Damage Así es como
lo llamamos. Puedo usar esto a mi favor tomando esto
y buscando contiene. Sólo voy a ver si esta cadena contiene
algo que estoy buscando. Y si solo
busco daños en auto porque es parte del
nombre del plano Si este tipo de daño que
hice sí contiene auto
daños en el nombre, puedo hacer una sucursal aquí. Puedo salir y conectar esto
también o básicamente
lo que puedes hacer. También puedes seguir adelante y decir si no quieres las
dos ramas aquí, puedes tomar esto
y decir lingotes Básicamente puedes
tomar esto aquí en su lugar y conectar este. Se puede eliminar el
otro lingote. Si el nombre contiene daño
y el enemigo está muerto, puedes seguir adelante
y jugar este. Vamos a seguir adelante y
compilar y Guardar. Ahora puedes ver si hago
clic en play y
compro algo aquí, Daños. Se puede ver que todo
está funcionando correctamente. Nada se está empantanando. Además, si hago clic en play y
trato de matar al enemigo, todo está funcionando
perfectamente como antes. Y si compro o daño
así como hago clic en el enemigo, dos
estamos haciendo algo. Se puede ver que
sólo se está jugando una vez. Y tampoco hay dólar
en el código. Ahora sabemos que el código
está funcionando a la perfección. Adelante y reorganice
todo esto, y pasemos
a la siguiente lección
91. 10.01 Diseño de la pantalla de nivel: Lo que tenemos que hacer ahora es
igual que en Clicker heroes, donde podrás ver el nivel
que has alcanzado aquí arriba Tenemos que hacer lo mismo
para este clicker también. Volvamos a la interfaz de usuario y vamos a agregarla
aquí en la u principal, sobre el lado dentro
de los widgets principales. Yo sólo voy a
copiar esta parte aquí. Yo sólo voy a dar click
sobre esta superposición y copiar y básicamente todo
el asunto aquí, controlar C. Y luego dar click en el panel de lienzo control
V. Tan solo pegarlo aquí arriba. Ahora para ésta la vamos
a colocar a un lado. Voy a dar click
en el punto de anclaje y colocarlo a la derecha para el desplazamiento. Yo sólo voy a
escribir cero en la X. El malestar inferior también
es cero. Ahora puedes ver que está
fuera de la pantalla, en
realidad está en el costado aquí. Lo que tenemos que hacer es básicamente la alineación aquí para la x, necesitamos empujarla hacia adentro Es sólo escribir uno
aquí en la alineación, Ahora está en la pantalla. Lo que tenemos que hacer ahora
es para la posición x, solo
necesitamos
alejarla del borde de la pantalla otra vez, igual que antes,
puedes pincharla en esta. Si no recuerdas
lo que has hecho, lo
alejaste a 30 píxeles. Hagamos lo mismo
aquí para mantenernos consistentes. Al hacer clic en la superposición,
voy a empujarlo 30 en el
desplazamiento x , en realidad, -30 de
lo contrario irá por el otro lado Y 30 compensados desde la parte superior. Y otra vez 30 desde
abajo también. También necesito algo de texto
aquí arriba donde dice nivel. Vamos a copiar
este texto aquí arriba, Control C y luego controlar
V. Aquí abajo en la superposición. Lo voy a poner
encima de la caja de desplazamiento. En realidad, necesitamos
agregar una caja vertical, lo
contrario estará en el medio. Busquemos una caja vertical. Adelante y agrégalo. Después agrega el texto y el
cuadro de desplazamiento en el cuadro vertical. Al hacer clic en el cuadro vertical, continúe y
continúe y llénelo aquí
horizontal y verticalmente. Y también el
cuadro de desplazamiento que necesitas llenar
para dar click en Rellenar aquí. Ahora tenemos que darle un
poco de relleno también, porque como puedes ver, el texto también
está en la parte superior de los bordes. Y también para el tamaño frontal, creo que voy a reducir un poco más
el frontal, así que tal vez escribiendo
24 aquí en su lugar. Ahora lo que podemos hacer es que básicamente
podemos aquí
para el cuadro de desplazamiento, voy a escribir
cero en el padding, porque ahora voy a agregar
padding a todo el asunto. click sobre esta caja vertical, le
voy a dar un relleno de, comencemos con 50 y
veamos cómo se ve. Bien, eso se ve bien. Y también necesito aumentar, tal vez el overlay ligeramente para poder ver cómo se ve a la derecha y a la izquierda. No creo que necesite
darle tanto un agregado a la
derecha y a la izquierda. Voy a escribir 35 en su lugar. Así, estoy dando click en estas líneas para eliminarlas.
Para ver cómo se ve. Obviamente necesito
agregar un espaciador entre el texto y el cuadro de
desplazamiento aquí abajo. Agrega un espaciador de tal vez
como 15 y la y. ahora tenemos esta
pantalla lista aquí arriba. Vamos a escribir solo nivel en su lugar. Vaya a y compile y solo
hágalo un poco más grande. También necesitamos arreglar el tamaño, dependiendo de qué tan grande sea
la tarjeta de nivel. Por ahora, todo
se ve bien. Pero pasemos ahora a la siguiente lección y
diseñemos la tarjeta.
92. 10.02 Diseño de la tarjeta de nivel: Para diseñar la tarjeta de nivel, hagamos el mismo método que hicimos aquí con
la tarjeta de artículo de la tienda. Así que déjame hacer clic aquí, ir a la interfaz de usuario
y hacer una nueva. Llamemos a esta tarjeta de un nivel. Vamos a abrirlo otra vez. Adelante y agrega un
panel de lona antes de que hagamos nada, También cambia esto a deseado
en pantalla. Ahora ya estamos listos. Lo que quiero hacer es básicamente
la tarjeta va a ser un botón porque va a ser un montón de botones aquí para
cambiar de nivel. Dependiendo del nivel al que
quieras cambiar, en realidad solo
voy a copiar este botón
que hicimos aquí. Al hacer clic en esta
superposición y botón y texto y haga clic en el control C. Vuelva a la tarjeta de nivel
y controle V por aquí. Ahora para la superposición,
estoy haciendo clic en Tamaño al contenido también para el texto. En realidad, antes de hacer eso
por aquí para la superposición, cambiemos el punto de anclaje
para que esté en el medio y 0.5 en las alineaciones
y 00 en la x e y
Ahora está perfectamente
centrado para este texto. Ahora está perfectamente
centrado para este texto Sólo voy a
escribir uno por ahora. Entonces esto va a mostrar el nivel así como
para este tamaño de botón. Creo que lo voy a reducir un poco, no
necesito que sea así de amplio. Al hacer clic en él, podemos
reducir el tamaño en la x. Creo que voy a
escribir 100 aquí. Solo asegúrate de copiar este tamaño de imagen y
pegarlo en el florecido también y en el prensado
también. Para este color de texto. Sólo voy a cambiarlo de
nuevo a este color predeterminado. Así que adelante y copia este color. Vuelve a la tarjeta de nivel y
pegarla por aquí también. Ahora básicamente este está listo. Echemos un vistazo a cómo
se ve si vuelvo al menú principal o a la interfaz de usuario principal. Y hago clic aquí, y esta
se llama la lista de artículos. De hecho voy a
cambiar el nombre de esta caja vertical
a una lista de niveles. Compilar. Ahora
busquemos la tarjeta de nivel aquí
arriba y arrástrala
a la lista de niveles. Y sigue adelante y
duplícalo un par de veces para que veas
cómo se ve. Lo que quiero arreglar aquí un poco es el tamaño
de esta superposición. Si solo lo empujas
hasta que esto desaparezca aquí, solo trata de hacerlo así, pequeño
posible, pero sin tener que pinchar así También la barra de desplazamiento. Quiero iniciarlo aquí en
el borde de este botón. Entonces haciendo clic aquí arriba, bajando la barra de desplazamiento, encontrando la barra de desplazamiento que
se dirige a la parte superior. Sólo voy a escribir
algo como ocho. Eso es bueno. Creo que también necesitamos
eso para la
parte inferior. No estoy seguro ahora mismo. Pero siempre
podemos duplicar esto un par de veces y echar un vistazo y hacer
clic en la última. Y eso también lo necesitamos.
Para las palmaditas en el fondo También voy a
escribir ocho también. En realidad, necesita menos. Escribamos en vez de ocho, escribamos algo así
como cinco en su lugar. Siempre podemos
volver aquí si necesitamos cambiar más
cosas con la interfaz de usuario. Pero por ahora, todo
se ve bien, y si hago clic en jugar, espero que el mouse sobre ellos,
todo está funcionando. Lo que puedo hacer ahora es
simplemente seguir adelante y eliminar todo para que quede limpio y solo tenemos
esta lista de nivel. Compila, guarda todo
y sigamos adelante.
93. 10.03 Cómo establecer el nivel: Ahora sigamos adelante
y
cambiemos dinámicamente este nivel
para este botón. Ahora esto va a ser muy
fácil porque vamos a hacer clic en este texto y vamos a
renombrarlo a compilar a nivel de texto. Y ahora vamos a la gráfica. Ahora vamos a
hacerlo igual que antes con el artículo de la tienda. Siempre que lo agreguemos a la lista, va a cambiar
esta información dentro de la construcción del evento. Básicamente va a actualizar el costo del artículo y todo
esto para éste,
nuevamente, tomemos
este constructo de evento. Lo único que tenemos que
hacer es básicamente establecer esto el nivel que necesitamos
para establecer el número. Ahora en cuanto al nivel, vamos a hacer una
nueva variable aquí, y vamos a usar un entero. Llamemos a esto un nivel. Vamos a
darle esta información. Siempre que creamos este widget, siempre
puedes volver al controlador
del reproductor si
no recuerdas lo que
hiciste con la tienda de artículos. Ves aquí si bajas, lo que hicimos es básicamente crear
esta variable de información del ítem. Y hicimos clic en
exponer en spawn e Instancia Editable y pudimos
alimentar información En realidad vamos a hacer
lo mismo aquí para la instancia de nivel
editable, exponer en spawn Básicamente podemos simplemente
hacer clic y arrastrar esto aquí así y en
realidad ya terminamos aquí. Podemos darle a esto alguna información cada vez que
engendremos la carta, y lo vamos a hacer
en la siguiente lección
94. 10.04 Desbloquea un nuevo nivel: Bien, ahora sigamos adelante y demos a esto alguna información. Nuevamente, estamos trabajando con UI, así que en realidad voy
a crear esto en el controlador Player aquí abajo. Hagamos un nuevo evento personalizado. Y llamemos a este nivel
de desbloqueo. Podemos usar este para
desbloquear el nivel o mostrar esta pantalla de nivel
por aquí. Siempre que el jugador
le gane a un enemigo. Este nivel desbloqueado, básicamente crea este
widget a un lado. Para que podamos ver el nivel. Básicamente el botón ahora mismo, tiene una era porque conecté esto
sin ningún tipo de información. Si hago clic en Reproducir, básicamente aparece
un botón cada vez que
superas un nivel. Y esto es lo que queremos hacer. Básicamente crea el widget. ¿Qué widget crea? Es la tarjeta de nivel
que necesitamos crear. En cuanto al nivel, podemos decirle más adelante
qué nivel desbloquear. Así que sólo voy a hacer click
y arrastrar esto hacia aquí. Quiero agregar este
botón a mi lista de niveles. Si vuelvo a la UI, abro la Ui principal, a
esta le llamamos Lista de nivel VB. Aquí es donde queremos
agregar la tarjeta. Si vuelvo al mando de
reproducción, puedo ver lo que tengo.
Tengo este WB main, así puedo agregarlo desde aquí y buscar la lista de niveles.
Adelante y da click en él. Ahora podemos decir sumar dos, y puedes elegir esta. Añadir niño a la caja vertical. Básicamente, puedes agregar este
widget que acabas de crear a tu cuadro vertical y seguir
adelante y compilar. Ahora estamos empezando por
el nivel uno. Y el nivel uno debería
estar ahí por defecto porque este nivel en el
que estamos ahora mismo, solo
desbloqueemos el nivel uno por defecto aquí en el Controlador
del Jugador. Siempre que iniciemos el juego, voy a escribir nivel de desbloqueo y
básicamente podemos escribir uno aquí. Estamos desbloqueando el nivel uno por defecto y haciendo clic en play Ahora puedes ver que el nivel uno está desbloqueado y se muestra. Y necesitamos desbloquear todos
los demás niveles cada vez que
derrotemos a un enemigo. Sigamos adelante y hagamos eso
dentro del modo de juego, porque en el
modo juego, si volvemos, hace mucho tiempo que no hicimos
esto aquí en el modo de juego, pero aquí hicimos este
incremento de nivel actual Vamos a desbloquear el
nivel aquí en su lugar. Siempre que aumentemos el nivel y aún no lo hayamos desbloqueado, podemos seguir adelante y desbloquearlo Vamos a llamarlo, está dentro
del controlador del reproductor. Entonces necesitamos el
controlador del reproductor aquí. Y podemos
buscar nivel de desbloqueo. Y adelante y toma esto aquí. Lo que tenemos que hacer
aquí en lugar de simplemente desbloquear este nivel
actual Porque en realidad podríamos
estar jugando un nivel inferior, si queremos
entrar en un nivel superior, no
queremos volver a
desbloquearlo. Imagínese si estoy jugando aquí
y si estoy en el nivel cinco, pero elijo volver a hacer clic en el nivel uno y
juego el nivel uno. No quiero volver a desbloquear nivel dos porque
ya lo desbloqueé. Necesitamos una nueva variable aquí para guardar el nivel previamente
desbloqueado. Vamos a hacer una nueva
variable y
llamarla nivel previamente desbloqueado, convertirla en un entero. Aquí lo que podemos decir es, es el nivel actual, ¿es más alto que el nivel
previamente desbloqueado? Por ejemplo, si
estamos en el nivel uno y el
nivel previamente desbloqueado es el nivel cuatro, realmente no
necesitamos
desbloquear el nivel tres y así sucesivamente. Nuevamente, porque ya estamos en el nivel cuatro, nuestro nivel máximo, hagamos esta rama si el nivel actual es
superior al nivel previamente
desbloqueado. Si hemos alcanzado el
nivel cinco y
desbloqueamos el nivel cuatro
antes, si eso es cierto, vamos a tomar este nivel
previamente desbloqueado, vamos a establecer en
cualquiera que sea el nivel actual, que ahora es el nivel
cinco en lugar de cuatro. Y podemos simplemente enchufar
esta información aquí abajo. Ahora si compilo y hago clic en jugar y podemos
derrotar a este enemigo. Se puede ver que el nivel
dos ya está desbloqueado. Si derroto también a este enemigo, se
desbloquea el
nivel tres y así sucesivamente. Entonces ahora todo eso está
funcionando correctamente. Sin embargo, de nuevo,
realmente no hemos recubierto el botón, así que no podemos volver de nivel. Y vamos a
trabajar en los siguientes.
95. 10.05 Cómo establecer el nivel actual: Lo que queremos lograr
ahora mismo es que queremos
evitar que el enemigo
desove, cambiando
automáticamente
un nivel como este Lo que queremos hacer es
que queremos
cambiar manualmente los niveles cuando hacemos
clic en esos botones. Sigamos adelante y
trabajemos con eso a continuación. Ahora aquí estoy dentro
del modo de juego, y vamos a empujar
esto un poco hacia abajo. Aquí estoy por debajo del incremento del evento actual
que creamos anteriormente Lo que quiero hacer aquí
es un nuevo evento personalizado. Hagamos esto, llamemos a
este conjunto de nivel actual. Vamos a usar
este evento personalizado cada vez que hagamos clic en esos botones de
nivel aquí. Vamos a establecer el nivel manualmente configurando
el nivel actual. Obviamente necesitamos
el nivel actual aquí y tenemos que fijarlo. Y tenemos que enchufar
esto a los eventos, porque entonces podemos
configurarlo manualmente otros lugares. Ahora estamos fijando
el nivel actual aquí para el nivel actual, sólo
voy a decir un nivel. Estableciendo el nivel que elegimos
al nivel actual. Entonces nosotros, nosotros, cambiamos un nivel. Queremos asegurarnos de
que se elimine al enemigo que está en este nivel actual en el que
nos encontramos, lo contrario van a desovar uno
encima del otro Recuerda que está en el controlador de
placa, así que solo voy a copiar
el controlador de placa aquí. Consigue la variable enemiga engendrada. Haga clic derecho y diga convertir
a un get validado. Porque ahora podemos
decir si es válido, podemos seguir adelante y
destruir el Acta. Entonces después de destruir el Acta, queremos engendrar al nuevo enemigo Básicamente, en realidad puedo
copiar esto aquí arriba. Sólo puedo copiarlo, pegarlo y conectarlo así. Ahora bien, si el enemigo ya
no es válido, solo
podemos seguir adelante y
engendrar al nuevo enemigo Porque la única razón por la que agregamos esta parte es para asegurarnos de que el enemigo actual
sea destruido y enemigo
actual no exista. Podemos simplemente seguir adelante y
engendrar al nuevo enemigo. Ahora en realidad somos capaces de establecer el nivel actual
usando esta lógica. Así que vamos a compilar
y guardar todo. Ahora volvamos a la interfaz de usuario. Aquí en la interfaz de usuario, si hago clic en la tarjeta de nivel y hago
clic en este botón, baje al botón y haga clic, haga clic en, haga clic en el más aquí
para crear un evento aquí. Cada vez que haces clic en el botón se llama por botón y no
es realmente correcto. Sólo voy a
renombrarlo botón. Voy a
llamarlo compilar de nivel. Regresemos al nivel del botón. Siempre que hagamos clic en él,
queremos cambiar el nivel. Queremos llamar a este evento
aquí en el modo de juego. Sigamos adelante y hagamos eso. Digamos que haga clic derecho aquí
y digamos obtener modo de juego. Entonces arrastremos
desde aquí y digamos obtener referencia del modo de juego, el de la interfaz del
blueprint Golpeemos desde
aquí y digamos establecer el nivel
actual porque así
es como lo llamamos. Ahora ya tenemos
esta información de nivel porque la enchufamos aquí Vamos a enchufarlo así. Vamos a compilar. Y
hagamos clic en Comp y veamos qué pasa cuando
mato a un enemigo. Yo también mato al siguiente. Mata también al siguiente. Ahora veamos si
puedo cambiar el nivel. Si presiono en dos, puedo
cambiarlo, presionar en uno. Y puedo ver que
en realidad puedo cambiar entre los niveles y
todo está funcionando. El temporizador se está reiniciando
cada vez que cambio los niveles,
lo que queremos evitar Ahora, tienes un error
aquí, por ejemplo. Si
matas al enemigo en el nivel uno, podrás ver que
cambia automáticamente al nivel dos. Realmente no quiero hacer eso. Queremos
cambiar manualmente los niveles. Sigamos adelante y
trabajemos en eso a continuación.
96. 10.06 Prevención de la aparición automática de enemigos: Ahora para evitar que los enemigos engendren
automáticamente o
cambien al siguiente nivel, abramos el modo de juego Una vez más, tenemos que o reescribir este llamado
Increment Current Level, porque recuerda que usamos eso en la muerte enemiga cada vez que
vamos a la base enemiga Dentro de los eventos de muerte, incrementamos el nivel cada
vez que matamos al enemigo Tenemos que hacer algo al
respecto ahora en vez de
incrementar el nivel actual, porque en este juego nunca lo
harás, nunca lo incrementará En cambio, en realidad voy
a llamarlo nivel de desbloqueo. Desbloqueamos el nivel y luego cambiamos manualmente
al siguiente nivel. Esto se hace en los
juegos clicker porque por lo general tal vez el siguiente nivel es demasiado
difícil y hay que
ir un nivel atrás para ganar
más dinero para comprar cosas, y luego puedes ir
al último nivel Has desbloqueado, por
eso está hecho. A este también se
le llama nivel de desbloqueo. Recuerda que esto es en
el Control de Jugador donde agregamos el nivel. De hecho
cambiemos el nombre de éste para no confundirnos. En lugar de
llamarlo nivel desbloqueado aquí en el controlador del jugador, llamémoslo un botón de
nivel, UI. Aquí es donde agregamos
el botón a la lista. Vamos a llamarlo así en su lugar.
Y volvamos al modo juego para que
no nos confundamos ahora. Se llama así. Bien,
este nivel de desbloqueo. En realidad queremos
seguir ejecutándolo aquí. Siempre que el enemigo esté muerto, queremos desbloquear el nivel. Pero solo quieres desbloquear el nivel siempre que
estés en el último nivel. Siempre que estoy en este
nivel y estoy jugando, quiero desbloquear el siguiente nivel. No quiero desbloquear el nivel
si estoy jugando el
nivel uno en estos momentos, porque ya he
desbloqueado el nivel dos. Para evitar esto, pasemos al modo
de juego y aquí
en el nivel desbloqueado. Antes de hacer todo
esto, lo que podemos hacer es que podamos tomar el nivel
actual. Podemos preguntar, ¿es esto igual
al nivel desbloqueado? En lugar de
éste, tenemos donde se llama nivel previamente
desbloqueado. En realidad necesitamos
cambiar este código. Déjame cambiarle el nombre aquí abajo. En lugar del nivel anterior
desbloqueado, voy a llamarlo Compilar de nivel
desbloqueado. Asegúrate de que el nivel
desbloqueado sea uno por defecto porque
ya tienes el nivel uno. El nivel actual también es uno. Tenemos el nivel uno
desbloqueado por defecto. Si el nivel actual es
igual al nivel desbloqueado, Si eso es cierto, queremos seguir
adelante y desbloquear el siguiente nivel. Porque esto significa que
si el nivel actual, que es uno en este momento, es igual al nivel desbloqueado, que es uno en este momento, entonces en realidad estamos jugando
en el último nivel. Y queremos desbloquear el nivel cada vez que matemos a este enemigo. Sigamos adelante y encerremos eso. Nuevamente, queremos
aumentar el
nivel actual si esto es cierto. Ahora estamos preguntando,
es esto menor o igual al nivel máximo
Si eso es cierto. Ahora realmente no
queremos engendrar al enemigo porque sólo estamos
desbloqueando el nivel, No
estamos cambiando En lugar de engendrar
al nuevo enemigo, en realidad
voy a eliminar Elimine esto aquí también. Este también podemos eliminar. Y éste también. simplemente seguir adelante y enchufar esto. Déjame arrastrar esto para que puedas
ver todo el asunto. Ahora lo que estamos diciendo es, es el nivel actual igual
al nivel desbloqueado, Esto solo comprueba que en
realidad estamos en el último nivel. Hemos desbloqueado previamente, si eso es cierto y
hemos derrotado al enemigo, sigue
adelante y desbloquea, o simplemente toma este
nivel actual y agrega uno a él. Cuando hagas eso,
este nivel desbloqueado, solo
eliminemos este, porque ahora
solo podemos enchufar esto a aquí, Bloquear o desbloquear. Pero va a
agregar un botón para el último nivel
del nivel actual, porque le hemos agregado uno, en lugar de ser el nivel
uno ahora es nivel dos y va a agregar el botón para un nivel dos. En realidad, esto es suficiente. Ahora, básicamente estamos desbloqueando el nivel
con este evento Y entonces estamos fijando
aquí abajo
este nivel actual para engendrar al enemigo
aquí antes de continuar Este nivel actual en realidad
es incorrecto, porque queremos establecer
el nivel desbloqueado aquí. Porque es el nivel
desbloqueado lo que queremos sumar, no
el nivel actual. Porque de nuevo, no
queremos cambiar el
nivel automáticamente. Quiero quedarme en
el nivel actual en el
que estoy ahora mismo, pero solo quiero aumentar
el nivel desbloqueado. También aquí abajo, enumere este, y peguemos el nivel
desbloqueado. En cambio, vamos
a agregar un botón para el nivel desbloqueado
que es todo correcto. Ahora ahora para asegurarnos de que
todo está funcionando aquí, vayamos también a
la base enemiga y
también nos aseguremos de que
el código sea correcto. Ahora estamos en el evento de la muerte, y aquí en el evento de
muerte
queremos desbloquear el nivel
que es correcto. Y recuerda, el
nivel desbloqueado sólo va a funcionar si el nivel actual es
igual al nivel desbloqueado. Nos estamos asegurando de
que estamos en el último nivel, nivel desbloqueado, pero también tenemos que
asegurarnos de que queremos
establecer el nivel actual porque esto está generando a nuestros enemigos Volvamos a
la base y
llamemos al nivel actual establecido. Sigamos adelante y conectémoslo aquí. Conectado aquí también. Tomemos el nivel actual, y esta es la variable aquí. Vamos a establecer el
nivel al nivel actual. Adelante y compile ahora, el nivel actual va
a cambiar cada vez que
presiones el botón. Si vas a la interfaz de usuario, vas
al código de nivel y
presionas este botón, va a cambiar el valor del nivel
actual. Va a cambiar
este nivel actual establecido. Sigamos adelante y probemos
eso. Vamos a hacer clic en Reproducir. Voy a matar a un enemigo. Ahora podemos ver que
no está cambiando de enemigos automáticamente porque básicamente
estamos, si vuelvo al código, estamos matando al
enemigo y luego
estamos engendrando al enemigo
para el nivel actual Recuerden que hicimos esta función, solo
estamos tomando
el nivel actual que no estamos incrementando. Sólo estamos incrementando en uno
el nivel
desbloqueado si estamos en
el nivel actual Entonces, si vuelvo y
sigo jugando, puedo pasar al siguiente. Ahora puedo matar a este enemigo y voy a
desbloquear el siguiente nivel. Puedo volver al nivel
uno o dos o tres. Para que pueda volver a uno, por
ejemplo, matar a este enemigo. Y puedo seguir
recibiendo dinero de este enemigo hasta que sienta que
soy lo suficientemente fuerte como para
comprar algunas cosas aquí. Y luego puedo pasar al
siguiente nivel y puedo ver que puedes cambiar de
enemigos como quieras. Y sólo va a
agregar un botón si derrotas al último enemigo. Bien, así que terminamos
aquí. Así es como se evita el desove
automático. Solo asegúrate de echar un vistazo si tienes tal vez
un pequeño error, asegúrate de que sea
el nivel actual el que sea igual
al nivel desbloqueado. Y también es el nivel
desbloqueado que estás agregando aquí, agregando, compilando,
guardando todo, y pasemos
al siguiente.
97. 10.07 Añade iconos de calaveras a los jefes: Haremos que el juego sea un
poco más interesante. Quiero agregar un
icono de calavera a los autobuses. Recuerda dentro de
la tabla de datos, seleccionamos que algunos de
los enemigos son autobuses. Éste, el Mago, por
ejemplo, y el caballero Rogan. Lo que quiero hacer es agregar un icono de calavera a
la pantalla de nivel. Pasemos a la interfaz de usuario, abramos la tarjeta de nivel, sobre en realidad en el
diseñador. Empecemos por aquí. Vamos a agregar una imagen. Arrastremos esta
imagen aquí abajo a la superposición para esta imagen. Cambiémoslo a un icono de calavera. Recuerda que en realidad podemos usar el que está en los objetos
assets. El aquí es sprites. Sólo voy a usar
la textura o el cráneo. Si solo buscas una calavera y deberías
poder encontrarla aquí, solo
voy a usar la
textura en lugar del sprite Sigue adelante y edita para el tamaño. Probemos 50 por 50 así
como para la posición de la misma. Voy aquí abajo
a la transformación y a editar la
traducción para ello. Por ejemplo, para la x
podemos decir menos seis, y eso irá por aquí, y luego menos seis, y eso subirá de esta manera. Zoom, creo que se ve bien. Siempre podemos
cambiarlo, pero se ve bien. Ahora bien este icono de aquí, por defecto, quiero que se oculte
porque no
quiero que aparezca aquí
por cada botón. Lo que quiero hacer es
aquí en la visibilidad, vamos a configurarlo para
compilar oculto ahora en la gráfica, solo
agreguémoslo a
los enemigos que son autobuses. Recuerda dentro de
aquí lo que podemos hacer es que siempre podemos
decir obtener información del enemigo. Necesitamos primero el nombre del enemigo. ¿Tenemos el nombre del enemigo? Nosotros en realidad, si
recuerdas en la biblioteca, si vuelvo a bibliotecas
y lo pongo, si dices obtener información de nivel, recuerda la estructura get
level info. Si abro la estructura de información de
nivel, tienes el nombre enemigo
que ahí genera De hecho, puedes usar
esto a tu favor. Entonces se puede decir obtener información de nivel. Ya tenemos el nivel aquí. Podemos tomarlo y romperlo. Cuando lo rompemos,
tenemos el nombre del enemigo, que podemos enchufar aquí. Haga clic aquí, Ocultar pines
desconectados. Entonces puedes arrastrar desde aquí. Y descomponerlo también. A partir de aquí ahora
tienes el tipo enemigo. Vamos a arrastrar desde aquí.
Digamos que ¿esto es igual? Y no vamos
a seleccionar éste. Vamos a seleccionar esta porque es una enumeración. Este igual a un jefe. De nuevo, da click en éste.
Ocultar pines desconectados que podemos arrastrar desde aquí
ahora, y hacer una rama Si es cierto que es un jefe, simplemente
queremos
mostrar esta imagen. Tomemos esta imagen. Ahora no lo
hemos convertido en una variable. Cambiemos el
nombre de la misma a imagen. El cráneo es variable. Ahora podemos ir a la gráfica. Podemos sacarlo y
decir establecer visibilidad. Y establecer la visibilidad de la misma. Podemos configurarlo para recordar,
no golpear comprobable. No bloquea
el botón porque visible va a
bloquear los clics del mouse. Por lo que no podemos hacer clic en el botón. Golpea comprobable mejor.
Eso debería ser. Si compila y
hago clic en play, ahora se puede ver nada que hay aquí. Si compro algo aquí para poder matar al enemigo mucho más rápido, podemos cambiar a los niveles, podemos ver que todo está
funcionando a la perfección. Si cambio al nivel cuatro, y debería aparecer
aquí en el nivel cinco, puede ver que hay un icono
y está funcionando perfectamente. Solo voy a hacer que la interfaz un poco más grande para
que no se baje. Yo solo minimizo esto. Vuelvo a la interfaz de usuario principal aquí, déjame solo agregar un nivel. Si solo agrego un gato de nivel, puedo ver lo que estoy
haciendo así. Ahora podemos hacer click en el
overlay y podemos
hacerlo solo un poco más grande para que
no corte nuestro icono de calavera. Compila y juega.
Y aquí vamos. Todo debería
funcionar bien. Adelante y borra esta
otra que va a fallar. Como una cosa extra.
Antes de que terminemos, agreguemos también un icono de calavera junto
al nombre del jefe. En el nombre del jefe, está
aquí en la información enemiga. Entonces básicamente necesitamos
agregar uno aquí. Al igual que antes,
voy a buscar imagen, en realidad
necesitamos
una caja horizontal porque aquí no tenemos
nada. Yo sólo voy a
buscar primero una caja horizontal. Agrégalo aquí abajo.
Busca la imagen. Agrégalo también para la imagen. Justo como antes, voy
a cambiarlo a la partitura, una talla es, vamos a conducir 60 por 60. De nuevo, creo
que fue 60 por 60, o tal vez fueron 50. Si solo vuelvo
aquí, eran 50. Vamos a hacerlo 50 por 54. Ahora permítanme agregar este texto
en el cuadro horizontal. Estos dos elementos
están dentro de aquí. click en el cuadro horizontal, voy a hacer el
ancla al medio, 0.5 en las alineaciones para
asegurarme que está en el medio Y además la posición
es cero por cero, lo que está perfectamente
en el medio. El tamaño al contenido es cierto. Básicamente cambiar el tamaño de la caja horizontal a
cualquier contenido que tenga. Bien, entonces ahora lo tenemos
aquí. Ahora para el icono. Sólo voy a agregar algo de relleno al
fondo, tal vez dos. Lo empujamos un poco hacia arriba. En realidad, en lugar de un relleno, en realidad
quiero escribir cero. En realidad, quiero
cambiar la traducción aquí
abajo. Para que puedas cambiarlo. En lugar de agregar un relleno, puede cambiar la traducción. Iba a decir menos dos, así que está empujado un poco hacia arriba. Bien, igual que antes,
voy a hacer que la visibilidad se oculte y vaya a la gráfica aquí para la
actualización de información enemiga. Justo como antes. Ahora
tenemos el nombre del enemigo, así que sólo voy a
decir obtener información del enemigo. Ya tenemos el nombre del enemigo. Entonces podemos
romper esto, igual que antes, podemos tomar el tipo
enemigo y decir, esto
es igual a nosotros? Si ese es el caso, adelante y
vuelve a mostrar este icono, igual que antes. Cambiemos el
nombre a imagen cráneo. Vamos a establecerlo es variable. Tomemos la imagen del
cráneo y fijemos visibilidad para ser golpeada comprobable. Una vez más, da clic en éste. Ocultó pines desconectados. Golpea esto, tal vez un poco más cerca. Vamos a probarlo
y ver qué pasa. Hago clic en jugar en el juego. Compro un par de estos para
poder dañar mucho más rápido
y avanzar a los niveles. Ahora aquí está el enemigo, y se puede ver que el
icono ha aparecido. Está funcionando a la perfección. Pero se puede ver aquí,
en realidad acabo notar que este nombre
es empujado a un lado. No está en el
centro de este enemigo. Esto se debe a que el icono
del cráneo en realidad está ahí. Simplemente está oculto. En lugar de poner el cráneo
a oculto en este caso, en este caso estuvo bien
porque solo está ahí. Este en realidad está
empujando el nombre. Lo que podemos hacer es establecer
en lugar de oculto, puedes configurarlo en colapsado. Es como si minimizaras un menú. Ya no está en tu opinión. Configurarlo para colapsar
debería funcionar bien. Ahora bien, si solo cambio nivel rápidamente solo para
mostrártelo, ahora este muere. Si voy ahora se puede ver esqueleto estaba aquí antes de que
el texto comenzara aquí. Ahora se inicia en
la posición correcta. Colapso es mucho mejor
para usar en este caso. Bien, genial. Entonces ahora tenemos
esta calavera desplegada. Se ve más fresco que antes. Y también, puedo ver que se
está estirando un poco, la alineación, voy a
ponerla en el medio en su lugar. Adelante, compilar,
guardar todo, y continuemos.
98. 10.08 Adición de iconos a las tarjetas de compras: Lo siguiente que quiero
hacer aquí es agregar también los íconos para los autos,
para los gatos de la tienda. Pero porque se puede ver
aquí, se ve bien. Pero creo que se verá mejor
si tenemos un icono
al lado de este texto De hecho, sigamos
adelante y agreguemos eso. Vamos a abrir la
tienda por aquí. Agreguemos el icono
al lado de este texto. Ahora está dentro de
una caja o vertical. Necesitamos una
caja horizontal aquí abajo. Solo busco de nuevo
un cuadro horizontal, y lo agrego aquí abajo,
justo encima del texto. Agrega el texto al cuadro
horizontal. Y luego agrega una imagen a
la caja horizontal también, justo encima del texto aquí. Ahora para este icono, vamos a
cambiarlo al icono del ítem. Pero por ahora, sólo tienes que
seguir adelante y seleccionar un icono aleatorio para la alineación. Adelante y colóquelo
en el medio para que no se estire por el
tamaño de este icono. Creo que 32 por 32 está bien. No creo que
necesitemos más que esto. Probablemente necesito un pequeño
espaciador entre esos. Haz que se vea mejor,
solo agregando en la x, Tal vez cuatro y apenas
así. Sí, se ve bien. Bien, sigamos adelante y hagamos
clic en esta imagen, llámalo elemento de imagen. Cambiemos esta
a la variable Is. Ahora vayamos a la gráfica
y hagamos las cosas con ella. Ahora aquí en el gráfico de eventos, echemos un vistazo a dónde
podemos hacer esto mejor. Tenemos el ítem de actualización spot I. Tenemos la actualización, el costo. También tenemos el constructo del
evento. Siempre que se agregue esta tarjeta, este sería el mejor lugar. Siempre que se agrega la carta
Desde el controlador del jugador, simplemente
seguimos adelante instantáneamente
y agregamos el icono también. Déjame alejar esto. Después de actualizar el nombre del texto, quiero tomar el icono de la imagen
y digamos set brush. Así es como estableces una textura
dinámicamente o una imagen. Fije el pincel a partir de la textura. Adelante y selecciona éste. Esto básicamente significa
establecer esta imagen a partir de una imagen que he
importado a este motor. Fije el pincel a partir de la textura. Ahora, ¿qué textura necesitas? Ya tenemos los
íconos, creo, y en realidad no lo tenemos. Sigamos
adelante y agreguemos eso. Sólo tenemos el
sprite aquí abajo. Ahora para continuar, tenemos que agregar esta miniatura a la información del artículo Regresemos, vayamos a los artículos, en realidad agreguemos la
información de la estructura del artículo por aquí. Agreguemos una nueva variable
llamada thumbnail nail. Vamos a agregar esta o
cambiarla a una textura dos D, que es solo una textura que
importas o una imagen. Y seguir adelante y seleccionar referencia de
objeto. Voy a mover esto hacia arriba justo encima de la miniatura
o el nombre del elemento Recuerda, ahora tienes que ir
a tu archivo de Google Sheets. Ahora por aquí, voy
a ir a la información del artículo aquí a la derecha. Sólo voy a hacer click derecho
aquí arriba e insertar
columna a la derecha. Llámalo miniatura. Lo mismo que la variable. Ahora podemos agregar la
miniatura por aquí, referencias. Ahora
volvamos a, veamos si los
tenemos aquí en
los objetos en realidad solo
aquí en las texturas, solo
puedes usar
esos como referencias, porque esos son los elementos. Lo que quiero que hagas
es abrir la mesa. El primero es
la pluma ligera. De nuevo, al igual que antes de la
luz clic derecho referencia. Vuelva a su
documento. Pegado en siguiente es el clic
derecho aquí, Referencia pegada para la antorcha Y adelante y
hazlo por todos ellos. Esta fue la última para mí. Voy a
seguir adelante y volver a hacer clic en Descargar
archivo
como archivo CSV. Entonces voy a importar
esta otra vez a, mi
carpeta de tablas de datos. Adelante y portarlo, y deberías tener
toda la información. Ahora volvamos otra vez y
trabajemos y continuemos con el trabajo. Volvamos a abrir la tarjeta
del artículo de la tienda. Ahora tenemos esta miniatura. Esta miniatura la podemos
enchufar aquí. Voy a hacer clic para hacer un nodo de reendirección como este
y dar clic en Y ocultar
los pines conectados, compilar y guardar. Ahora todo
debería estar funcionando. Si hago clic en play, ahora puedes ver que se
han agregado todos los iconos. Nuevamente, necesito hacer este
panel un poco más grande para que no se corte si solo agrego una tarjeta para
poder visualizarlo mejor. Entonces, si agrego una
tarjeta de artículo de tienda a la lista de artículos, puedo hacer clic en la caja vertical y luego puedo
hacerla un poco más grande aquí. Entonces no está
cortando así. El cumplir ahora se puede ver que
todo se ve bien. Se ve mucho mejor
si tienes un ícono al lado de los artículos de tu tienda. Sí, así es como
los agregas y debería ser así. Sólo tienes que seguir adelante y ahorrar.
Solo asegúrate de nuevo, haz clic en este icono. Asegúrate de que has dicho la visibilidad para
no golpear comprobable. No bloquees nada. Sí, sigamos
al siguiente.
99. 11.01 Añade el cursor del ratón a la tienda: Bien, ahora es el momento agregar algo con
el cursor del mouse. Hasta el momento hemos estado
trabajando con los ítems, Pero ahora hagamos algo con
respecto al cursor del mouse. este momento, haces clic en
el enemigo y haces 15 de daño por clic.
Eso es bueno. Sin embargo, cada vez que
avanzas por los niveles, digamos que tenemos
este clicker automático y avanzamos
por los niveles Te das cuenta de que los enemigos ganan mucha
más salud que antes. 15. El daño realmente no les
va a hacer mucho, sobre todo si estamos, por
ejemplo en el nivel 20, tenemos que mejorar
nuestro daño de cursor. Sigamos adelante y hagamos eso.
Pero primero tenemos que agregar el elemento click a la tienda para que podamos comprarlo
y actualizar el cursor. Sigamos adelante y
hagamos eso primero. Por cierto, puedes intentar
hacerlo tú mismo si lo deseas. Esta es una práctica muy agradable. Intentemos hacerlo juntos. Si no estás muy seguro
de cómo agregar uno, abramos las enumeraciones Y recuerda que tenemos todos
los artículos listados aquí arriba. Agreguemos una nueva enumeración y llamemos a esto un clic del mouse Sólo voy a agregarlo como primer ítem porque
quiero que esté en la parte superior. Este es el clic del ratón.
Vamos a cerrarlo. A continuación tenemos que ir
a la tabla de datos. Abre tus
Hojas de cálculo de Google una vez más, dentro de aquí, vamos a
abrir la información del artículo. Quiero agregarlo
como primer ítem. Adelante y llámalo
clic del ratón. Haga clic aquí también. Ahora para la miniatura que te
he dado en los materiales del
curso, si solo vuelves a los activos y los objetos
y las texturas aquí, te
he dado dentro
de los materiales del curso Si vas a objetos, este cursor para seguir adelante
e importar este, haz clic
derecho sobre él, conviértalo, o aplica papel a la configuración. Ahora para este clic derecho y conviértelo en un sprite de sprite Y arrástralo dentro de los
objetos de aquí. Ahora haga clic en los objetos. Ahora ya tenemos configurado este sprite. Sigamos adelante y
guardemos todo. Volvamos a la tabla de datos. Ahora para la miniatura, vamos a ir a las texturas click
derecho, copiar referencia Para esta edición en miniatura, el elemento se llama
clic del mouse para el elemento Esta es la enumeración. Solo recuerda
agregarlo a la enumeración. También necesitamos una cláusula para ello porque necesitamos
engendrarlo al suelo En realidad, vayamos a
planos y hagamos eso. Ahora si voy a Artículos y
voy a la base de artículos, puedo hacer clic derecho en la base de elementos, Crear un plano infantil Claus Llámalo clic del ratón. Y vamos a abrirla. Hagamos clic en los Componentes de
Render y agreguemos el único
sprite en el cursor Compilar y guardar. Recuerde, también agregamos los nombres de los
elementos para cada elemento. Aquí puedes ver el nombre del ítem, Nosotros escribimos eso, recuerda,
para cada ítem. Entonces hay que
escribir eso, de lo contrario no
se leerá de
la tabla de datos. Recuerda hacer clic en los valores predeterminados
de clase aquí. Vamos a llamarlo clic del ratón. Lo mismo que
lo llamaste dentro de la tabla de datos. Ahora tenemos esto creado, y para obtener una referencia al mismo, igual que antes, vamos copiar éste. Pégalo aquí arriba. Sólo voy a cambiar el nombre esta pluma ligera
a clic del ratón. Y éste
también. Clic con el ratón. Bien. Ahora para el sprite, de nuevo, vayamos a los objetos assets Podemos hacer click derecho sobre
este sprite y
podemos copiar la referencia
pegada Ahora tenemos que establecer
lo que cuesta. Digamos que cuesta tal vez
diez o algo así. Siempre podemos cambiarlo después. Ahora vamos a hacer clic en Archivo, descargar, descargar archivo
CSV una vez más. Ahora voy a arrastrarlo a la
carpeta de tablas de datos. De nuevo, arrástralo y
sigue adelante y guarda todo. Solo asegúrate de que toda
la información sea correcta
aquí, Todo se ve bien. Ahora si hago clic en Reproducir, puedo ver mi clic del mouse. Y lo puedo ver también aquí, puedo dar click en Por. En este momento se está diciendo cero
por el costo de este rubro. Algo anda mal aquí. Recuerda que esto es porque
aquí en la información del artículo, realidad ya no
estamos usando
este costo de monedas. No
nos confundas más. Vayamos también a la información del artículo y eliminemos el costo de las
monedas de aquí. Adelante y guarda todo ahora asegurémonos de que
lo eliminemos de la tabla de datos. Haga clic derecho y elimine columna, aquí también está. Vamos al costo de los artículos ahora, porque aquí es donde realmente
tenemos el costo, vamos a cambiarlo. Déjame hacer clic
aquí y agregar una nueva
columna a la derecha. Llámalo mouse haz clic aquí. Básicamente, Digamos
que comienza con 18, solo porque quiero
un número
diferente al de todos los demás, digamos que es igual a este uno por 1.2 Vamos a
arrastrarlo hasta el final. Ahora bien, esto obviamente
va a necesitar mucho
trabajo en el diseño de juegos si
quieres que todos estos
números tengan sentido, pero por ahora solo estamos probando. Sólo voy a
descargar esta tabla de datos de
costos de artículos aquí en el motor. Sigamos adelante e
importémoslo una vez más. Ir a tablas de datos, importar el costo de los artículos. Ahora no se puede encontrar la propiedad de
clic del mouse en costo ST. De hecho, echemos un
vistazo a esto juntos. Si hago clic bien y
solo voy al costo de STM. Si voy a la interfaz de usuario, en realidad a la estructura, abro el costo del artículo. Esto se debe a que nos falta esta variable dentro de
aquí. Permítanme agregar uno nuevo. Llámalo clic del mouse, conviértalo en un entero. Simplemente arrástralo todo
el camino hasta aquí. Y sigue adelante y haz clic en Guardar todo. Ahora para este artículo costo también. Recuerda en el jugador,
si voy al jugador, tenemos una función
llamada sin embargo cuesta. Si hago clic en él, tenemos que
vincularlos juntos, lo
contrario no funcionará
igual que antes. Adelante y vincularlos entre sí. Compila si
quieres asegurarte de que no
te has perdido
ningún otro lugar. Además, haga clic derecho
sobre este ítem Costo, continúe y haga clic en Buscar
Referencias, solo para asegurarse. Y da click en el pequeño icono, y esto te mostrará todas las referencias
que has utilizado para ello. Al hacer clic en este, en realidad no
hemos hecho
nada aquí. Todo debería
funcionar bien. Ahora volvamos a las tablas de datos y
voy a volver a importarlo, así es correcto así. Ahora está bien. Ahora
vamos a hacer clic en play. Ahora, mi motor se estrelló y suele
hacerlo
a veces cuando
editas cosas dentro
de una estructura e intentas hacer clic
en play, se bloquea Pero cuando abres por
segunda vez, debería funcionar. Ahora bien, si hago clic en Reproducir y
a veces puedes ver
cosas como esta, en realidad
puedes arreglarlo. A veces necesita refrescarse. Si abre el
control de reproducción y hace clic en archivo, actualiza todos los nodos y vuelve a hacer clic en reproducir,
debería funcionar. No sé por qué hace
que a veces suele hacer eso para mis
otros juegos también. Pero puedes salir y refrescarte
y funciona bien. Bien, ahora puedes ver que el clic
del mouse está funcionando bien. Y si compro más y más
, también está funcionando bien. Me está enseñando el precio. Ahora necesitamos agregar un
punto de span para este clic del mouse. Y hagámoslo
en la siguiente lección.
100. 11.02 Adición del punto de aparición del cursor del ratón: Para agregar el mouse.
Entonces punto de desove, sigamos adelante y hagamos eso aquí Vamos a abrir los puntos de engendro. Ahora tenemos los puntos de generación de este
artículo, así que realmente no necesitamos
crear niños, recuerda que solo usamos este Podemos hacer clic en el primero y asegurarnos de que sea clic del mouse. Es por defecto porque hemos reorganizado la
enumeración previamente. Al hacer clic en este
clic del mouse, ahora abre tu enumeración
y solo asegúrate de
que todos estos sean
correctos en orden Creo que uno de ellos se equivoca porque
todavía tenemos diez y tenemos el
click del ratón como uno de ellos, falta
uno de estos artículos. Solo asegúrate de hacer
clic en todos
ellos y asegúrate de que sea correcto. Yo sólo voy a
copiar este de aquí arriba. Déjame asegurarme de que es la misma distancia que todas
las demás y
es así. Me aseguro de que este
sea clic del mouse. El siguiente es pluma ligera. Y sólo pasa por ellos aquí. El siguiente es Antorcha y así sucesivamente. Bien, ahora están en
el orden correcto. Adelante y salve a todos
cuando estén. Ahora bien, si haces clic en play
e intentas
engendrarlo, no va a engendrarlo Recuerda
que establecemos algunos que necesitamos cuidar. Si abres el modo de juego y recuerdas lo que hiciste
con los puntos items, creamos esta función
aquí llamada set items pon points y get items points. Vamos a abrir este,
Set items pinpoints. Tenemos que hacer uno
para los clics del ratón. Voy a duplicar esta. Voy a llamarlo puntos click
del mouse. Adelante y agrégalo hasta aquí arriba. Vamos a asegurarnos de que no
tenemos nada más. Vamos a compilar. Vayamos al Get items, pin
points también. Déjame copiar y
pegar esto aquí. Elimine este y agregue los clics del mouse en su lugar.
Adelante y conéctate. Compilar. Creo que
esto debería ser. Da click en este, podrás
ver que está funcionando correctamente, al
igual que los demás elementos. Ahora bien, esto está funcionando bien. Ahora, hay un problema en estos
momentos con esto, porque
no debería mostrar cero DPS, y además no debería mostrar
actualmente haciendo cero DPS El problema con
este, ahora mismo, el mouse no es realmente
daño por segundo, el mouse es daño por clic. En lugar de mostrar
daño por segundo, necesitamos mostrar
daño por clic. este momento está diciendo cero
DPS porque en la información del artículo, no
hemos especificado cuánto daño por
segundo debería tener Por ejemplo, se podría decir cinco. Y si hago clic en Play, puedes ver que dice cinco. Pero nuevamente, realmente no nos interesa el daño por segundo, nos
interesa más el daño por clic. Entonces sigamos adelante y arreglemos
esto como lo siguiente.
101. 11.03 Visualización correcta del texto de daños: Para hacer que el texto
se muestre correctamente? Obviamente, tenemos que ir ahora
a la interfaz de usuario y echar un vistazo a la descripción emergente.
Vamos a entrar aquí. Abrámonos
ahora para el DPS solo para asegurarnos de que el texto se muestre correctamente Ahora por el daño, solo
voy a escribir algo como
40 para asegurarme que esto que estoy viendo
es el falso o estático. I. Me estoy asegurando
cuando hago clic en play, en realidad
estoy viendo lo real aquí solo para asegurarme de
que no tengo una era. Ahora, aquí en la gráfica, tenemos que asegurarnos de
que dice para el mouse, dice
que cada clic del mouse da cinco daños por clic. Y actualmente
haciendo, por ejemplo, cinco daños por clic en
lugar de DPS El primer texto, recuerda
cómo se llaman. El primero se
llama, da DPS y el segundo
es da cantidad de DPS Ahora bien este
realmente no necesitamos cambiar, solo
necesitamos esto da DPS y haciendo cantidad de DPS
, volvamos Este da cantidad de DPS. En vez de decir éste, voy a desconectarlo. Voy a dirigir desde
aquí y decir Select. Ahora necesitamos usar
un nodo selecto. Ahora, ¿para qué
vamos a seleccionar? Vamos a seleccionar para si se
trata de un clic del ratón o no. Recuerda que tenemos
la información del artículo aquí. Y si solo escondo esta miniatura porque
no la necesitamos. Pero muestro este ítem podemos
arrastrar desde aquí y decir igual,
igual enum si esto es igual a clic
del mouse y
enchufarlo aquí abajo Ahora lo que podemos decir es, recuerda que necesitamos
usar un formato de texto. De nuevo, voy a arrastrar
aquí y decir formato de texto. También voy a usar uno aquí
abajo, formatear texto. Ahora para éste, si no
es un clic del ratón, sólo debería decir
lo mismo que decía antes. Adelante y pegarlo en Enter para ver esto. Ahora bien, esta es la
cantidad de DPS, igual que antes. De hecho voy a
arrastrar esto de nuevo a aquí, y en realidad
voy a
alejar esto así que tengo algo de
espacio como este. Ahora para éste, si es cierto que este es
el clic del ratón, lo que quiero decir aquí
es en lugar de DPS, digamos solo cantidades de daños Digamos daño por clic. Ahora voy a decir
daño por clic. Básicamente, el daño por es este DPS aquí Este DPS, podemos
elegir configurarlo a cantidad de daño que debe hacer o darle cada vez que
compre en la tienda Si acabo de compilar
y vuelvo a mi tabla de datos solo para
asegurarme de que sea correcta, abra la información del artículo en realidad no
costo del artículo para esto. Sólo voy a
decir que me da 25 daños cada vez que actualizo. Y también asegúrate
de ir a tus Hojas de cálculo de Google
y cambiarlo aquí, de lo
contrario va a estar mal. Cada vez que
importes esta tabla, asegúrate de que es,
por ejemplo, 25 aquí. Ahora dentro de aquí,
volvamos
al Tooltip y continuemos. Esto debería ser correcto.
Puedo borrar este y puedo empujar todo a lado para poder tener
estos en la vista. Bien. Simplemente
reorganizo las cosas amablemente Ahora bien, esto es correcto.
Ahora continuemos. Lo siguiente es este
texto haciendo DPS. Este antes puedes arrastrar
desde aquí y decir Seleccionar. Entonces justo antes de formatear
para el primero, formatear texto, formatear sexo
para el segundo. Nuevamente, debe elegir si
es el clic del mouse o no. Sólo voy a
arrastrar esto aquí igual que antes. Si no es el clic del mouse, en realidad solo
agreguemos este que teníamos antes.
No lo cambiamos ahora. No obstante, si
es el clic del ratón, lo que queremos decir es la
cantidad total de daños aquí. Por ejemplo, esta es la cantidad
total de daños. Éste básicamente va
a decir que actualmente está haciendo, por ejemplo, 60 daños. También puedes llamarlo daño por clic si
quieres mantenerte consistente. Llamémoslo daño por clic. Ahora para el daño, no
es realmente este DPS lo que agregamos aquí, pero es más correcto agregar
la variable de daño del cursor Recuerda dentro del jugador, si vuelvo, esto
es hace mucho tiempo. En realidad desde el
inicio del curso, creamos aquí este flotador de
daño del cursor, en realidad
podemos agregar este. Vuelvo a la punta de la herramienta, ya
tenemos al
jugador si puedo arrastrar
del jugador y decir daño
del cursor. Ahora podemos agregar esto aquí y debería
funcionar bien. De nuevo, voy a eliminar
este para este número. De nuevo, enchúfelo aquí
para que no se equivoque. Esto era lo que teníamos antes. Sólo voy a
reorganizar las cosas amablemente. Bien, igual que esto y seguir adelante y compilar
y guardar todo. Hagamos clic en Reproducir y veamos qué pasa si sostengo
un mouse sobre él. Dice que cada clic del ratón
da 25 daños por clic. También puedes llamarlo DPC, creo que es un término en
realidad, en lugar de DPS, puedes llamar a DPC
por daños por clic si compras Se puede ver que en realidad
no está diciendo
nada y esto es porque no
lo estamos actualizando como todos
los demás que estamos haciendo. Esto es en realidad
lo siguiente que tenemos que hacer. Necesitamos actualizar lo que
se está haciendo actualmente, porque en realidad
te está dando 25 daños por clic. Pero no puedes
verlo porque
no estás actualizando el
texto debajo de él. No está actualizando esta variable de daño
del cursor. Pasemos a la
siguiente lección y hagamos eso.
102. 11.04 Daño al cursor del ratón: Ahora es el momento de actualizar el mouse cuando haces
clic en jugar y comprar. El mouse hace clic
aquí puedes ver que está haciendo daño
automático, lo cual no se supone que
suceda porque el
clic del mouse es básicamente
donde haces clic sobre el enemigo y
debería hacer más daño. Sigamos adelante y actualicemos el daño del mouse en lugar
del DPS automático Vamos a cerrar esto. Y eso lo hicimos
dentro del jugador. Si abres al jugador y volvemos al gráfico
del evento, si quieres decir organizar, siempre
puedes
hacer clic derecho aquí arriba y cerrar pestañas a la derecha que no tengamos que
ver todas estas. Cuando compramos la
M, recordemos que lo que hicimos anteriormente es que
actualizamos el DPS total, que era esta función
dentro de aquí En lugar de actualizar
el DPS total cuando compramos un clic del mouse, hagámoslo aquí Queremos actualizar
el mouse en su lugar. Aquí está el derecho
en las funciones, podemos hacer clic en el más. Hagamos una nueva función
llamada aumentar el daño del cursor. Lo único que va
a hacer aquí en la entrada, voy a agregar un flotador y
llamar a este daño para agregar. Tomemos el daño del cursor que creamos antes. Vamos a agregar más el daño que queremos agregar. Entonces volvamos a ponerlo
en esta variable. Entonces ahora tenemos este
nuevo daño del cursor. Esto es básicamente lo es
la función de
esta función aquí, es que solo agrega la
cantidad de daño que queremos
agregar al daño del cursor y lo
establece aquí como un nuevo valor. Volvamos al gráfico de
eventos y usemos este aumento del daño
del cursor en lugar del DPS total para el mouse Ahora para saber si es el mouse del que estamos
hablando o no, recuerda aquí en
la estructura del ítem, podemos dar click en la info del ítem y podemos esconderlo
todo por ahora. Por aquí en el ítem, recuerda en la enumeración
hicimos la enumeración de
clic del mouse, voy a hacer, da clic aquí y voy
a arrastrar desde Y entonces voy a decir
igual, igual enumeración. Y luego seguir adelante y seleccionar
este ratón haga clic aquí. Si esta enumeración es
igual a clic del mouse, si este elemento del que estamos
hablando es igual al clic del mouse La forma en que sabemos que
dentro de la tabla de datos, aquí es donde estableces
tu información. Si abres la información del elemento y abres el clic del mouse, recuerda que configuramos el elemento como
un clic del mouse aquí, así que va a saber
qué has elegido. Si ha seleccionado
algo mal aquí, obtendrá un
error si el ítem aquí es clic del mouse y
podemos arrastrar desde aquí y
luego podemos hacer una rama. Ahora voy a agregarlo.
Después de que genere el artículo, en realidad
voy a
desconectar este Y vamos a arrastrar esos aquí. Ahora, antes de actualizar la IU, porque necesitamos hacer esto
antes de actualizar la IU,
la IU se actualiza correctamente. Necesitamos agregar la información, vamos a generar el ítem, y luego vamos
a conectar esta rama Bien, este es el clic del ratón. Si el ítem es el clic del mouse, queremos aumentar
el daño del cristal. Si no lo es, queremos
actualizar el DPS total. Entonces recuerda
conectarlos de nuevo a aquí. Si quieres mantenerte un
poco más organizado, siempre
puedes hacer doble clic este en un nodo de
ruta trasero como este. Y puedes tomar esto y enchufarlo aquí,
así se ve mejor. Ahora queremos agregar el
daño que queremos agregar aquí. Solo tomemos el DPS. Si hago clic por aquí, hago clic en el DPS y
puedo arrastrar esto
hasta la función así De nuevo, voy a crear
algunos nodos de ruta trasera para ello. Y justo así, Bien, ahora tenemos bloqueados los DDPS Ahora, cada vez que vamos
a actualizar el clic del mouse, lo
vamos a agregar al mayor daño
del cursor en lugar del
DPS total . Ahora si compilo y hago clic en reproducir y
actualizo aquí, ahora
puedes ver mi UI es
o actualizando correctamente. Si hago clic en el enemigo, también
está haciendo la cantidad
correcta de daño. Si hago clic en él, dice 65. Si vuelvo a actualizar, dice 90. Vuelvo a actualizar un
par de veces. Dice 240, y
debería decir ahora 340. Y ves que está haciendo la cantidad
correcta de daño. Ahora hemos terminado de
actualizar el cursor.
103. 11.05 Diseñar el widget de cursor para ratón: Para que sea un poco
más interesante,
sigamos adelante y cambiemos
el cursor del mouse porque
puedes ver que tenemos el cursor normal del mouse de
windows. Pero vamos a cambiarlo
en otro icono, así que se ve un poco
mejor para hacerlo. Te he dado aquí
en los materiales de costo, te
he dado
algunos cursores de ratón que en realidad
usé en Farm Tail, pero ya podemos usarlos. Aquí, vamos a la
interfaz de usuario y a los iconos. Vamos a arrastrar estos
íconos hacia aquí. Ahora no es necesario
aplicar papel a estos ajustes porque no
son los lotes de píxeles. Volvamos a la interfaz de usuario. Y vamos a hacer clic derecho aquí, hacer una nueva
interfaz de usuario widgets. Adelante y haz clic
aquí. Llamemos a este cursor de un ratón. Vamos a abrirlo dentro de aquí. Lo que quiero hacer
primero, quiero agregar un panel de lona. Vamos a
arrastrar eso hacia abajo. Lo único que queremos
añadir es una imagen. Y este será el cursor. Lo que voy a hacer de nuevo, voy a dar click
aquí arriba y decir deseado en pantalla para esta imagen. Podemos darle una talla. Ahora para el tamaño de la imagen, depende del tamaño del cursor del
mouse. Si voy a iconos y le echo
un vistazo a este cursor del ratón, es 93 veces 101. Así que escribamos eso, 93,100.1 Como puedes ver, el tamaño de la imagen no está cambiando Esto se debe a que hay que
hacer clic en Size To Content, y ahora será correcto. Bien, esto es correcto. Ahora lo que queremos
hacer es que
queremos centrarlo
también en la pantalla. Y no estando aquí arriba, voy a cambiar el
ancla al medio. Y voy a escribir
00 aquí en la x e y. y no queremos escribir
0.5 en las alineaciones porque en realidad
el mouse
va a hacer click en medio de este lienzo Esto es correcto hasta el momento.
Al hacer clic en este widget, cambiémoslo al cursor. Y esta es la predeterminada. El cursor del ratón aquí. Y vamos a compilar y ahorrar. Creo que tenemos que hacerlo más pequeño porque va a ser
muy grande en el juego. Pero tenemos que probarlo
primero antes de que sepamos. También para esta imagen, quiero configurarla para que
no golpee comprobable, para que no afecte al juego Ahora está listo para ser utilizado. Volvamos al controlador del
reproductor. Dentro del controlador del reproductor, igual que con lo que hemos estado trabajando con la interfaz de usuario anteriormente, queremos trabajar con este de aquí
arriba en el reproductor
inicializado Ahora no vamos a abrir
y cerrar un widget aquí. No tiene sentido
acreditar aquí. En cambio, vamos a
agregarlo al jugador inicial. Sólo voy a
copiar estos widgets. Y busquemos nuestro cursor del ratón. Vamos a
golpear haga clic aquí. Promociona esto a una variable
y llámalo cursor del mouse. Ahora si arrastras desde aquí, y solo
buscas mouse y ves algo llamado Set
mouse cursor widget. Esta es una función predeterminada
dentro de Unreal Engine. Si haces clic en él, lo que quieres hacer aquí es
básicamente seleccionar Default. Este será nuestro cursor predeterminado. Ahora hemos definido
que este widget acabamos de crear es ahora
el cursor predeterminado. Si haces clic en jugar, ahora
puedes ver que este es el mouse. Podemos usarlo para hacer clic, y se puede ver que
es muy preciso. Ahora voy a
empujarlo un poco hacia arriba, porque como pueden ver, está
dando click un poco hacia arriba. Si volvemos al widget, ahora creo que lo haré un poco más pequeño porque a
lo mejor es demasiado grande. Volvamos y arreglemos esto. Volvamos a la
interfaz de usuario, abre el cursor. Siempre puedes hacer click
aquí y decir por ejemplo, menos cinco aquí,
menos cinco aquí dentro. Menos cinco inter también. Creo que volveré a decir menos cinco
aquí, menos cinco. Si hago clic en play
y le echo un vistazo, creo que puede ser un poco más pequeño. Nuevamente, menos diez,
quizás menos diez aquí. Haga clic en reproducir. Creo que
esto es mucho mejor ahora. Ahora si quieres
empujarlo hacia arriba, siempre
puedes ajustar la
posición en la X e Y. Si escribes cinco, en realidad es menos cinco para ir
al otro lado. Digamos un menos
cinco por menos cinco. Eso es mucho mejor. De nuevo puedes, tratar de
ajustar esto lo mejor
posible aquí cuando
estés satisfecho. Ahora este es el ratón que tenemos. Ahora también necesitamos un evento click, porque como puedes ver
cuando estamos clicando, realmente no está dando
otro efecto. Y creo que podemos
mejorarlo un poco teniendo un efecto click. Este es el otro cursor
que hemos importado. Esta es la prensada, Bien, así que si volvemos aquí ahora, puse esta posición x a menos ocho y menos cinco
para que sea un poco mejor. Ahora cuando estés listo, vayamos a la
gráfica y a la interfe Borremos todo esto. hacer un nuevo evento personalizado. Hagamos un nuevo
evento personalizado y llamemos a esta imagen de conjunto. Lo que queremos hacer aquí,
en realidad quiero una nueva enumeración. Si vas al plano
y abres enumeraciones, hagamos clic derecho y
hagamos una nueva Esto básicamente
va a contener una lista de los estados presionados
del mouse. Si solo llamo a su estado, lo abro, en realidad
le voy a dar una S aquí al final. Ahora aquí para los estados del cursor del
ratón, podríamos tener un cursor de ratón
predeterminado, Podríamos tener un cursor de ratón de
prensa. Ahora tenemos estos dos estados. Si vuelvo ahora
al widget y agrego esto como entrada, busquemos mouses y
seleccionemos esta enumeración
que acabamos Voy a llamarlo Moussa
afirma el objetivo aquí. Lo que estamos tratando de
hacer es que estamos tratando cambiar esta imagen
dependiendo de si hemos presionado o no. Sólo voy a llamar a
esta imagen cursor del ratón. Vamos a configurarlo en variable para que
podamos cambiarlo en código. Si vuelvo aquí,
arrastre esto y digo set brush from texture. Ahora la textura
depende de lo que
tengamos como estado del cursor del ratón. Si solo arrastro de
aquí y digo seleccionar, y selecciono este nodo aquí, y podemos arrastrar esto
al índice. Ahora bien, si es el estado por defecto, esto es lo que hemos escrito
dentro de la enumeración. Si es el estado predeterminado, quiero seleccionar
este cursor del mouse. Si es el estado presionado, quiero seleccionar este cursor
del mouse aquí. Ahora podemos usar esta imagen de conjunto, dependiendo de lo que estemos
haciendo en el juego. Recuerda presionar botones. Eso lo hicimos dentro
del jugador. Si vuelvo al jugador, voy a la
gráfica de eventos, eso es correcto. Ahora necesitamos encontrar
el evento que
usamos cada vez que hacemos
clic en el enemigo. Ahora realmente no hemos
hecho uno porque
hasta ahora lo que hemos estado haciendo
está dentro del enemigo, tenemos este evento click aquí. Esto de aquí arriba hizo clic
en el componente de la cápsula. Realmente no hemos
hecho un evento aquí. Cada vez que hacemos clic
con el ratón, en realidad
tenemos que
hacer eso también. Para ello,
tenemos que trabajar con insumos. Hagámoslo en
la siguiente lección.
104. 11.06 Añade el ratón a la entrada: Bien, para terminarlo, tenemos que agregar una entrada de mouse para cada vez que hagamos clic con el mouse para que podamos
cambiar la imagen. Para ello tenemos que agregar
una entrada para el jugador. Si acabo de escribir, da clic aquí
y hacer una nueva carpeta, y solo voy
a llamarla Player. Y arrastra esto hasta aquí. Dentro de este Reproductor,
voy a escribir click y hacer una nueva carpeta
otra vez, llámalo Input. Y vamos al interior
de esta carpeta, haga clic
derecho dentro
de la entrada aquí. Si no has trabajado
con él antes, aquí
es donde agregas las teclas
del teclado y así sucesivamente. Así que cada vez que caminas en
un juego de rol y así sucesivamente. Entonces básicamente solo la entrada para el teclado
y el mouse y los pads. Primero vamos a crear un contexto
de mapeo de entrada. Esto es lo que tienes que
hacer. Llamemos a esto IMC Para el contexto de mapeo de entrada, simplemente
puede llamarlo predeterminado. Bien. Haga clic derecho de nuevo. Input, y tenemos que
crear algo llamado
una acción de entrada. Adelante y crea
uno. Llamemos a esto un
clic del mouse, por ejemplo, clic
del mouse. Vamos a
abrir esta. Ahora, dentro de
aquí, lo que tenemos que hacer es básicamente nada. Vamos a cerrarlo,
porque solo necesitamos hacer click sobre el mouse y
algo debería suceder, así que en realidad no necesitamos
hacer nada aquí. Vamos a abrir el contexto
de mapeo de entrada. Dentro de aquí, tenemos que
dar click en el más. Ahora cuando haces clic en el más, tienes que agregar una acción de entrada. Esto es lo que acabamos de crear
llamado clic del ratón. Para esta acción de entrada,
hay que asignar un botón. Ahora para éste,
sólo voy a dar click aquí. Y luego haga clic en el botón
izquierdo del ratón. Y lo
asignará automáticamente. También encuéntralo aquí arriba si
solo buscas mouse y
puedes ver puedes seleccionar
todas estas cosas aquí, pero ya lo tenemos
aquí. Botón izquierdo del ratón. Voy a dar click
aquí en los disparadores, voy a dar click en Plus y seleccionar el
llamado presionado. La razón por la que hago esto
es que si no lo
haces, vas a hacer clic
varias veces. De hecho te voy a mostrar si acabo de borrar esto por ahora, solo
podemos dejarlo y
podemos volver a ello. Ahora tenemos que agregarle
esto al jugador. Si vuelvo al jugador, abro el jugador, tenemos que agregar el contexto de
mapeo de entrada aquí. Antes de
que funcione, hagámoslo antes de actualizar la cantidad de iconos y
daños y así sucesivamente. Entonces hagámoslo dentro de aquí. Lo que podemos hacer es que necesitamos
el controlador del reproductor. De hecho voy a tomar
este controlador de reproductor, puedes buscar mejorado, ves este llamado subsistema
Enhanced Input Local
Player. Adelante y selecciona esto antes de seguir adelante
y trabajar con él. Siempre directo desde
aquí y decir es válido porque te
dará un error a veces donde no
se ha cargado y estás tratando de mover al jugador o intentar hacer algunas acciones de entrada. Adelante y seleccionar
es válido primero. Siempre que sea válido, podemos arrastrar desde aquí
y decir entrada este. Agregue contexto de mapeo,
continúe y seleccione. Y luego para el contexto de
mapeo, selecciona el que acabas de crear. Ahora debería funcionar
bien probar si esto
realmente está funcionando o no. Simplemente puedes ir aquí
y escribir click
y buscar el nombre de la
acción de entrada que creaste. Creé el que se llama clic del ratón.
Adelante y selecciónelo. Sólo voy a imprimir
una cadena a la pantalla. Compilar. Si hago clic aquí, pueden
ver que dice hola. Si hago clic con el
ratón, me dice hola. La razón por la
que necesitamos agregar un disparador presionado para la acción de entrada
es porque puedes ver si mantengo presionado el mouse
yendo a spam este código que
escribo dentro de aquí. Y esto no es lo que queremos. Si vuelvo al contexto de
mapeo de entrada y a los disparadores, hago clic en el más y
agrego este estado presionado. Lo que significa la prensa
es que solo va a reproducir el código una vez
cada vez que haga clic aquí. Y este código va
a reproducirse si solo vuelvo a
escribir una cadena de impresión
y hago clic en play. Ahora bien, si mantengo pulsado el mouse, se
puede ver que
no va a ser spam. Sólo lo va a decir una vez. Cada vez que haga clic, voy
a hacer clic varias veces. Ahora puedes ver que solo va
a imprimir un bajo cada vez que haga clic en el mouse y lo
va a imprimir solo una vez. Esto es solo para la optimización, para
que no juegues una y otra vez. Ahora realmente
podemos usar
esta acción de entrada. Déjame mover todo esto hacia arriba. Déjeme agregar este de aquí abajo. Ahora podemos usarlo para
mostrar nuestro cursor del mouse. Recuerde que el cursor del mouse está dentro del controlador de
reproducción. Nuevamente, tomemos
el controlador de reproducción. Hagamos un seguimiento desde aquí,
busquemos el
widget que creamos. Si buscas mouse
y vas al fondo, es siempre donde están
tus variables. Creamos este
cursor de ratón B dentro de aquí. Si no te acuerdas,
solo volvemos a recordar. Ir a la gráfica que creamos. Éste se llama establecer la imagen
del cursor del ratón. Si voy al jugador, arrastre y digo set
mouse por imagen. Siempre que se active, vamos a configurar
la P para ser presionada. Ahora, en lugar de simplemente hacer esto, tenemos que hacer dos cosas. Siempre que se complete y
siempre que se active. Siempre que se active,
vamos a configurarlo para que presione, y vamos a copiar
esto y pegarlo. Y arrastra esto al objetivo
cada vez que se complete. Hagamos el predeterminado, veamos realmente qué pasa. F p, se puede ver que
en realidad está funcionando, pero se está disparando
muy rápidamente Esto es porque está
activando esto aquí. Pero siempre que
vaya a completarse, lo que sucede
casi de inmediato, va a volver a configurarlo
por defecto. Esto es en realidad
lo que está pasando. Por eso se
ve así. Ahora para arreglar esto,
volvamos al contexto
de mapeo de entrada dentro de aquí. Vamos a agregar otra vez. Solo agreguemos lo mismo. El
botón izquierdo del ratón, haga clic aquí. Haga clic en el
botón izquierdo del mouse en su teclado, o en el mouse en los disparadores. Haga clic en el ahora, en lugar de solo presionado aquí arriba. También tenemos que seleccionar Liberado. Adelante, hazlo. Guardar.
Volvamos al jugador. En realidad, no
tienes que hacer nada. Es correcto Si
hago clic en reproducir, ahora puedes ver si
hago clic, libero. Esto es ahora correcto. Esto es Hacer el ratón. Ahora puedes ver
que tiene un efecto más frío con el ratón cuando hemos cambiado el cursor a éste
en lugar del predeterminado. Y también tenemos los
estados presionados. Ahora en el futuro,
si quieres agregar más estados del widget del mouse, nuevamente, tienes que ir dentro
de la enumeración, los planos, Agregar los
estados dentro de aquí Entonces recuerda ir a la interfaz de usuario, abrir el cursor del mouse, y también en la gráfica, recuerda seleccionar
las imágenes correctas que quieras usar aquí.
105. 12.01 Diseño del mapa final: Bien, así que ahora es el
momento de diseñar el mapa. Así que hago clic en Play. Todo se ve bien. Tenemos el nivel,
tenemos la tienda, tenemos las monedas,
tenemos el cursor del ratón. Pero ahora en realidad también
diseñemos el nivel en sí. Ahora
lo voy a hacer en mi propio tiempo, pero solo para recordarles, tenemos que ir a los activos y a los ambientes dentro de aquí tenemos este mapa de
azulejos prisión de gemas que creamos antes. Recuerda, puedes cambiar entre los conjuntos de mosaicos aquí.
Tienes los accesorios. Si deseas agregar algunos apoyos, por ejemplo este,
puedes dar click sobre él. O puedes hacer clic y arrastrar
aquí y seleccionar ambos. Puedes agregarlos
aquí. Recuerda trabajar con la capa frontal, capa
base y las decoraciones. Siempre puedes crear más
capas si
así lo deseas, porque si solo pintas
sobre la capa base aquí, porque si solo pintas
sobre la capa base aquí, eliminará tus mosaicos. Entonces tienes que
crear una nueva capa y luego agregarla para
poder agregarla al frente. Si quieres esto a la parte de atrás, siempre
puedes hacer clic en esta flecha. Ahora está debajo de las
tejas así que no se puede ver. Voy a borrar
esta por ahora. Lo que voy a
hacer ahora es básicamente simplemente aumentar el tamaño del mapa, que es el
ancho y alto del mapa. Por ejemplo, puedes
escribir algo así como 50 por 50 o
lo que quieras. A lo mejor eso es demasiado grande, pero trata de encontrar el
ancho del mapa que es para ti. La cosa está aquí
es que estamos tratando de
evitar todo este
espacio negro a un lado, solo que se ajuste más. Sólo hay que
adivinar, por ejemplo. Simplemente puedes hacer un mapa más grande e intentar agregar
algo como esto. Y si haces clic en Play, siempre
podrás ver a
dónde llega y luego sabes
dónde parar aquí. Pero básicamente voy a hacer este mapa más grande solo
para evitar el espacio negro. Realmente no necesitamos
hacer otra cosa. Básicamente solo aumenta el mapa, intenta trabajar con las capas. Adelante y selecciona la ficha. Intenta pintar el
mapa como desees. Ahora, teniendo en cuenta
que tienes todos estos puntos
de generación
para estos artículos, siempre
puedes, por ejemplo, solo una idea, crear habitaciones para estos artículos o crear un
agujero para estos artículos Básicamente haciendo que
estos elementos encajen en el juego así como este enemigo desove
tal vez en el medio Es el centro de
atención para este juego. Sólo tienes que diseñarlo lo
mejor que puedas. En realidad
no hay reglas aquí. Sólo voy a
diseñarlo lo mejor que pueda. Solo trata de jugar
con todos estos. A lo mejor tratar de jugar
con la esquina. Vea cómo trabajan juntos. Por ejemplo, esto con éste, como éste y
éste de aquí. Básicamente. Solo intenta lo mejor que puedas para diseñar el mapa y
volveré contigo. Bien, ahora estoy de vuelta. He pasado alrededor de 30 minutos
tratando de diseñar este mapa. Como pueden ver, he
diseñado el mapa. Y aquí está. diseñar el mapa dentro
del mapa de teselas. El ancho y alto del mapa es de 50. Acabo de agregar algunas fichas aleatorias. Simplemente diseñando el
mapa como quieras. Realmente no importa
cómo lo
diseñes, en realidad no va a
afectar nada este curso. Solo trata de ser lo más
creativo posible y diviértete con él una vez
que hayas terminado. Y puedes ver aquí, también
he movido los puntos de generación de artículos para que
estén en el suelo aquí Cada vez que compre
algo en realidad
va a aparecer dentro
de esta cosa de aquí Ahora puedo aumentar
la cantidad
de fila de artículos que puede generar aquí A lo mejor quiero aumentarlo. Vamos a tratar de hacer eso.
Vamos al plano Y eso lo hicimos dentro
del modo de juego. Si abro el modo de juego, y veamos aquí tenemos esta función de
puntos de set items. Dentro de esta función,
teníamos algunas variables locales. Aquí, la cantidad local
de filas es de dos. Yo quería quedarme dos. Ahora podemos tener el último índice del bucle
local. Esta es la cantidad de
artículos. Se trata de diez artículos. Porque va, recuerda
0-9 son diez artículos, yo, intentemos agregarle tres Voy a comprar algunos artículos. Aquí se ve como. Y ahora está encajando al mapa. Esto es con lo que
voy a ir. Este es mi mapa actualmente. Además, quiero aumentar ligeramente
el temporizador
porque creo que es demasiado pequeño y es un gran foco en el juego. Vamos a
cerrar esto. Vamos a la interfaz de usuario. Ábrete. Veamos aquí,
la interfaz de usuario principal aquí. Vamos a hacer clic en el texto. En vez de 28, tal vez escribamos 36 así como para el icono, tenemos que
aumentarlo, tal vez 60 por 60. En su lugar, hagamos clic en play. Creo que eso es mucho mejor porque sigue siendo
el foco principal. Incluso podemos aumentarlo
aún más, tal vez como 40, y este es 60, 64 por 64. Por ejemplo, al hacer clic en play, así es como se ve. Creo que esto es mucho
mejor porque es, de nuevo, el
foco principal en el juego. Todo se ve bien. Ahora bien, si quieres cambiar
algo en el juego aquí, básicamente, siempre puedes
entrar aquí y ajustar las cosas. Pero me gusta como
es ahora mismo. A mí me gusta todo al respecto. Incluso puedes aumentar el
nombre y la salud si lo deseas. De hecho voy
a hacer eso un poco, solo para que podamos verlo mejor. Dando click aquí, en vez de 28, voy a escribir
32 para la llamada. Voy a escribir 55, 55 también para la salud. Ir a dar clic en el 32 de
salud en su lugar. Compilar el com Play. Y ahora puedes ver que es mucho más grande y vuelve a ser
el foco del juego. Así que siempre es bueno
tener esa interfaz de usuario para que sea más grande. Bien, ahora sigamos
al siguiente.
106. 12.02 Preparación de las señales de sonido: Bien, entonces ahora estamos
en una etapa donde podemos agregar algunos efectos de sonido
al juego, y también música. Y hará que el
juego sea mucho mejor. Los efectos de sonido agregan casi
la mitad de la experiencia del juego. Ya ves, a pesar de
que hicimos un juego divertido, sigue siendo aburrido
sin ningún sonido. Y sí, agreguemos algunos efectos de sonido y lo
hagamos más interesante. Ahora en la carpeta de contenido,
voy a escribir, clic y hacer una nueva
carpeta llamada Audio. Y dentro de aquí,
entremos aquí. En los materiales de costo, he incluido todos
estos efectos de sonido para ti en los materiales de costo. Adelante,
abre la carpeta SFX. Todos estos,
adelante y selecciónalos
y arrástralos a
la carpeta de audio. Cuando los
arrastras, ves todo esto, y por cierto, muchos de
ellos son realmente ruidosos. No hagas clic en reproducir ahora mismo, lo contrario tus tímpanos podrían sonar. Siempre puedes bajar
tu sonido para esto, pero son súper
altos en el volumen. Lo que queremos hacer es que queremos
crear algo llamado señales
sonoras a partir de estas Empecemos por, por ejemplo, este llamado compra. Vamos a escribir, hacer clic y crear Q para que puedas
crearla aquí arriba. Lo que suelo llamarlo es que
borro esta Q al final. Y yo lo llamo S C por sonido que. Se llama compra de sonido que. Ahora voy a hacer doble
click sobre este sonido que. Y dentro de aquí, muy sencillo, sólo
podemos bajar
el sonido de la misma. Voy a escribir
0.2 y después
voy a dar click en Reproducir y
ver si es alto o notas. Este es el sonido de
ello. A lo mejor puedo hacer 20.4 algo así Siempre podemos ajustar
el sonido después, pero eso es lo que
quiero que hagas. Por ejemplo,
tomemos otro ejemplo, este llamado FX
punch, click derecho. Y vuelvo a crear una que de ella. Vamos a llamarlo Sound Punch, ábrelo más bajo. El sonido tal vez 0.4 Aún
súper fuerte. Tal vez incluso más bajo. Porque esto va a
ser spam en el juego, tal vez 0.1 o 0.05 no lo
sé, lo resolveremos Ahora un método aquí para
el puñetazo
que puedas, está sonando igual si
estás pinchando sobre el enemigo Se está poniendo un poco molesto como cuando escuchas el mismo
sonido una y otra vez. Para cambiarlo,
siempre puedes golpear desde aquí. Puedes ver que no
hay muchas cosas que puedas hacer dentro de aquí, como en los
gráficos de planos que solemos ver Pero lo que quiero que uses es este llamado modulador. Adelante, selecciónelo y
conéctelo aquí en su lugar. Ahora lo que está haciendo un modulador, va a cambiar
el tono del sonido. Si haces clic en él y
cambias el mínimo de tono a 0.9 y el máximo a
1.1 Guardar todo. Ahora si haces clic en
Reproducir varias veces, puedes escuchar que el sonido cambia cada vez
que haces clic en reproducir. No es del todo
el mismo sonido. Se trata de regular o cambiar el tono mínimo
y máximo. Eso se hace para éste. Ahora si tenemos múltiples sonidos, por ejemplo, tengo este
llamado o Death 01020304 Todos estos van de la mano. Si sólo selecciono todos ellos, clic
derecho, crear una sola. Cuando creamos eso,
sólo voy a cambiarle el nombre
a Sound Or Death. Adelante y entra dentro de ella. Y ahora puedes ver que
ya hizo esto para ti. Se creó un nodo aleatorio. Le enchufó todos
estos sonidos. En realidad va
a elegir el sonido al azar al hacer
clic en reproducir. Ahora, antes de hacer esto, también
reduce el sonido y da click en play super loud. Tal vez 0.10 0.15 Tal vez
0.2 es realmente bueno. 0.2 está bien. Suena bien. Ahora todo esto es bueno. Vamos a
cerrarlo por ahora. La Ascensión
otra vez, clic derecho. Haz un crear A y borra esto. Llámalo S C, Ascensión. Ábrelo, reduce
el volumen a 0.2 por ejemplo, ciérralo. Entonces tomemos el
siguiente, el botón hover. Vamos a hacer clic derecho
a crear una Q para esta. Nuevamente, llamémoslo un
botón sobre y
redujamos el sonido
20.2 Ciérrelo. Pasemos al siguiente,
que es el botón
pulsado clic derecho, crea un sonido que así. Se puede ver que es el
mismo método una y otra vez solo para
reducir el sonido. Ahora presionando un botón, en realidad
quiero agregar
un modulador también. Modulador para éste también. Y conectarlo, pitch
mínimo y máximo. Pongámoslo 20.9 a 1.1 entonces. Ahora suena diferente cada
vez que presionamos el botón, lo cual es realmente agradable. Ahora tenemos de nuevo a la
Muerte Nocturna. Haga clic derecho. Crea un sonido
que. Es una lección
un poco aburrida porque básicamente
estamos
haciendo lo mismo. Pero solo quiero
mostrarte cómo los creas. Sólo para saber que
tienes el concepto, vamos a hacer un
0.2 Suena bien. El siguiente que tenemos
es el nivel desbloqueado, clic
derecho. Crear una que. Cambiémosle el nombre para abrir
este autobús desbloqueado de nivel. Reduce el sonido a
0.2 Ciérrelo hacia abajo. Ahora el siguiente es el clic derecho normal
desbloqueado. Crea una que, llámalo
Sound que así, y ábrela otra vez, reduce el sonido a 0.2 Puedes ver el mismo
método una y otra vez. Ahora por la música. Volvamos
a hacer clic derecho aquí, crear un sonido que,
llamémoslo Sound Music Now
para la música. Vamos a abrirlo, y
vamos a hacer clic aquí. Asegurémonos de que
hemos marcado. Esto es bucle porque
necesitas hacer loop de la música, lo
contrario no va a hacer loop y se detendrá en algún momento Ahora la C ya la hemos hecho. Aquí está la o la muerte.
Ya lo hemos hecho. El ponche también, la compra. Nosotros hemos hecho la muerte
por los cohetes. Haga clic derecho en que. Ya casi terminamos. Ha sido una lección aburrida. Vamos a llamarlo Sound Q
Rogue 0.2 Nos sentaremos. El esqueleto. Ahora vamos a
seleccionar el esqueleto. Haga clic derecho, Crear
una sola que. Nuevamente, vamos a cambiarlo a 0.2 Y debería recordar también cambiar
el nombre por éste. El último es el mago. Muerte clic derecho Crear. Vamos a llamarlo Sound
que, ábrelo. 0.2 Ahora voy
a, en mi propio tiempo, ajustar todos estos volúmenes porque básicamente se trata de hacer
clic en reproducir aquí. Y luego escuchar
lo fuertes que son los sonidos, solo ajustando los volúmenes
de ellos cuando termines. Pasemos a
la siguiente lección.
107. 12.03 Adición de SFX a la interfaz de usuario: Bien, así que ahora que has
terminado de crear
todas las señales de sonido, volvamos a la interfaz Ahora quiero que los
lleves uno por uno. El primero puedo
ver la información del enemigo. Realmente no tenemos efectos de
sonido para esos, es solo un texto
y algunas partes de salud. La primera es la tarjeta de nivel. Siempre que hagamos clic en
este botón de nivel, hagamos clic en el botón.
Bajemos aquí. Y ves algo llamado
presionado Sonido y hover. Sonido Sigamos adelante
y cambiemos esto. Ahora si haces clic en él, podrás ver todas las señales sonoras y el sonido que has
importado dentro de este motor Ahora esta es la prensada, si solo buscamos prensa
y seleccionamos esta aquí, buscamos hover
y seleccionamos esta Compilar. Ahora bien, si haces
clic en reproducir y lo pruebas, puedes ver que este es el
hover, esta es la prensa Es un poco más interesante
que aquí tengan sonidos. Vamos a cerrarlo.
Pasemos al siguiente. Permítanme borrar
esta tarjeta de tienda solo para ver o
probar esta interfaz de usuario aquí. Realmente no
tenemos nada que haga sonar aquí.
Vamos a cerrarlo. Vamos a abrir el artículo de la tienda, Bacalao, Dentro de aquí
tenemos de nuevo este botón. Bajemos a la búsqueda, presionada en realidad para ésta. Busquemos el sonido flotante que se arregle. Vamos a
cerrarlo. La última es la punta de la herramienta que tampoco contiene
nada. Sigamos adelante y
guardemos todo ahora. Antes de terminar, agreguemos
también el clic del mouse. La mejor manera de
hacerlo es si abrimos los enemigos y
abrimos la base enemiga. Recuerda dentro de
aquí hicimos el click. También tenemos todo
este daño aplicado. Efecto de flotación de desove
y efecto de golpe. De hecho, hagámoslo aquí. Si arrastras desde aquí, si solo buscas sonido, tienes algo que
se llama Play Sound dos D. También tienes
algo que acabo de buscar, Play Sound tiene algo
llamado Play Sound dos D, y reproduce Sonido en la ubicación. Reproducir sonido en el lugar
generalmente se usa normalmente. Por ejemplo, en tres juegos D
donde hay un enemigo muy lejos y se puede escuchar el sonido lejos en
un lugar determinado. Sin embargo, este es un juego de
dos D y
básicamente tenemos el sonido como dos D. Juguemos el sonido como dos D. Esto se
usa principalmente para elementos de interfaz de usuario. También puedes pasar el cursor
sobre él y dice un sonido directamente
sin atenuación, que básicamente significa que no
puedes escucharlo como venir desde la distancia
o desde un lugar Es perfecto para sonidos de interfaz de usuario. Seleccionemos este
para el sonido. Puedes seguir adelante y
seleccionar el punzón. Y sigue adelante y
selecciónala ahora puedes hacerlo así o también puedes
justo aquí mismo, promover esto a una variable
y puedes llamarlo, por
ejemplo, efecto de sonido punch. Esto siempre es bueno porque lugar de más adelante
en tu juego, lugar de buscarlo y no
recuerdas quién era, siempre
puedes
simplemente hacer clic aquí y cambiar el
efecto de sonido desde aquí. Ahora tenemos el efecto de sonido
punch si hago clic en play
ahora y lo pruebo. Ahora la otra cosa que podemos hacer es siempre que desbloquees un nivel, sigamos adelante y hagamos un sonido. Creo que eso
también será
mucho más interesante para desbloquear los niveles Recuerda, lo hiciste
dentro del modo de juego. En el modo juego,
si vuelvo a la gráfica de ventilación y echamos
un vistazo al nivel de desbloqueo, vamos a
jugarlo desde aquí. Sigamos adelante y hagámoslo aquí. Vamos a arrastrar desde aquí. Y otra vez, toca Sound Two D, en realidad
incluí dos sonidos
diferentes para ti. Si vuelves al
audio y te abres, puedes ver aquí
tienes algo llamado desbloqueos y desbloqueados normales Dependiendo de si el enemigo es
un jefe o un enemigo normal, en realidad
podemos hacer
algo con él. Ahora la forma en que hacemos esto es de nuevo, podemos arrastrar desde
aquí y decir seleccionar, porque ahora podemos
seleccionar el sonido, dependiendo del valor, para obtener el estatus del siguiente enemigo. Por ejemplo, si es un
jefe o un enemigo normal. Recuerda que podemos decir
obtener información del enemigo. Adelante y selecciona
obtener información del enemigo. Adelante y romperla. Romper la estructura
de aquí conocemos el, el tipo enemigo aquí. Sigamos adelante y enchufemos esto. Dependiendo de si es
un normal o un jefe, podemos seguir adelante y seleccionar, en realidad vamos a hacer clic derecho aquí, promover esta variable en su lugar. Vamos a llamarlo FX desbloqueado a nivel. Esta es la normal. Hagamos clic derecho sobre esta
y promocionemos esta variable. Llamemos a este
jefe al final. Bien, ahora tenemos estos dos pines
seleccionados y desconectados Ahora para el nombre del enemigo,
¿de dónde sacamos esto? Recuerda, siempre podemos hacer clic
derecho y decir obtener información de
nivel. Adelante
y selecciónelo. Ahora para el nivel del que queremos obtenerlo es el nivel
desbloqueado. Adelante y enchufa esto, porque el
nivel desbloqueado siempre está un paso por delante del nivel actual. Rompamos esto otra vez. Y ahora tenemos el nombre
que puedes enchufar, ocultar los pines desconectados Adelante y solo hazlo
más estructurado así. Ahora tenemos esta información. Sólo se va a reproducir una vez porque cada vez que
desbloqueemos el nivel, va a reproducir
el sonido una vez. Compilemos y
guardemos todo esto. Ahora puedes ir
por delante y probarlo. Pero antes de hacer esto,
agreguemos el sonido para
el normal, podemos buscar
desbloqueado, desbloqueado y
buscar el normal. Para el siguiente, para el jefe. Sigamos adelante y seleccionemos
al jefe desbloqueado, compilemos el juego y probémoslo. Este es el sonido cuando
desbloqueas un nivel. Si vuelvo a hacer eso, se puede ver no
hay sonido porque
sigo tocando el nivel uno. Si vuelvo al nivel dos, pasa al nivel dos,
ahora tengo el sonido. Impresionante. Ahora esta
es la última. Cuando mate a este
, debería tocar el efecto de sonido del jefe
o el nivel de jefe desbloqueado. Vamos a tratar de hacer eso.
Ahora es un jefe. Se puede ver que es mucho más
interesante jugar con él. Ahora, antes de que sigamos
dándole al enemigo
algunos efectos de sonido, sigamos adelante y demos también un
efecto de sonido a
la compra. Para la compra tenemos
aquí en el jugador. Recuerda nuevamente que tenemos
el artículo de compra. Sigamos adelante y
agreguemos el efecto de sonido aquí antes de que hagamos otra cosa. De nuevo, haz clic derecho en Reproducir. Sonido dos D, Adelante
y agrégalo aquí. Permítanme
hacer clic derecho sobre éste y decir Comprar efectos de sonido. Y arrastrarlo hacia abajo así. Ahora para este,
hagamos clic en él Compilado primero y
busquemos por compra. Y eso debería funcionar, simplemente agradable si hago clic en Reproducir y
compro algo. Ahora veo que suena ese sonido. Yo sólo voy a seguir
adelante en el audio y simplemente bajarlo un
poquito. Creo que es demasiado ruidoso. Si lo abro, escribo 0.4
en su lugar y juego de nuevo, puedo ver que también está funcionando. Bien, ahora tenemos todos estos efectos de
sonido implementados. Vamos a guardar todo ahora. Agreguemos algunos
efectos de sonido para el enemigo.
108. 12.04 Añadiendo SFX al enemigo: Bien, básicamente cada enemigo puede tener un efecto de sonido único. Para ello, recuerda que
creamos una estructura. Si abro la estructura
y abro la información enemiga, lo que podemos hacer es
agregarle el sonido. Porque recuerda, cada vez
que agregues una variable aquí, será única para ese enemigo. Por ejemplo, si hacemos
clic en Agregar Aquí, y podemos decir efectos,
muerte, efecto de sonido. Y si solo buscamos sonido, adelante y seleccionamos este Sonido. Entonces lo que puedes hacer es ir a Google Sheets. Dentro de tus Hojas de cálculo de Google, sigue
adelante y abre la
información del enemigo por aquí a la derecha. Adelante y escribe la muerte
como efectos que acabas de hacer. Ahora lo que puedes hacer es agregar referencias justo antes. Siempre podemos ir
al audio ahora. Ahora para el
primero, veamos aquí, es que todos los cuatro primeros
son los , vamos por aquí. Tenemos el C. Simplemente
encuéntralo aquí abajo es, por aquí, el clic derecho de la
muerte. Y luego copiar la referencia
igual que antes. Adelante y agrégalo ya. Técnicamente puedes tener
un efecto de sonido de muerte
orca que es único para
cada uno Pero sólo voy a
usar el mismo aquí. Porque he agregado aquí, recuerda en la señal de sonido, agregamos
uno aleatorio de estos, solo
va a elegir
un sonido de muerte aleatorio. Pero básicamente puedes asignar un sonido de muerte único
a cada enemigo. Ahora para el mago,
voy otra vez a bajar aquí, Encuentra al mago
Muerte, haz click derecho, copia, referencia, pegarlo aquí. El siguiente es el esqueleto. Encontremos el esqueleto
que está aquí. Voy a renombrarlo y
eliminar esto, 01, click derecho, copiar referencia, y
pegarlo en Los siguientes cuatro, esto, esto, y esto. Ahora tenemos la
muerte pícara y la muerte nocturna. Busquemos al
pícaro. La noche ya está aquí. Copiar referencia pasado por la
noche para el pícaro. Hagamos clic derecho en Copiar base de
referencia para el pícaro. Nuevamente, haga clic en el archivo, descárguelo como archivo CSV. Ahora adelante y lleva esta información
enemiga a las tablas de datos. Y básicamente solo arrástralo y debería tener
toda la información. Ahora adelante y ahorra. Ahora cada vez que muere el enemigo, y esto sucede dentro
de la base enemiga, abramos la base enemiga,
guardemos todo, compilemos. Y veamos aquí
donde podemos agregarlo, así que estamos haciendo algún daño. Por aquí al final tenemos la muerte F doble clic sobre ella. Y es aquí abajo
cada vez que el enemigo dice. De hecho, hagámoslo aquí. Siempre que tocamos el flip book. Déjame tocar el sonido
antes de tocar el libro plegable. Ahora realmente no
creo que importe si tocas una
cosa primero o la otra, pero yo solo lo voy
a hacer de esa manera. Volvamos a tocar Sound Two D. Adelante y
conéctelo así. Y adelante y conecta
estos efectos a aquí. Ahora va a seleccionar
este efecto de sonido, dependiendo de lo que
le hayas dado como información en
la tabla de datos. Así que adelante y compilar. Haz clic en Reproducir y
probémoslo. Bien, eso funciona bien. Bien, entonces ahora tenemos el problema de que el sonido se
reproduzca muchas veces. Entonces, si solo bajas tu volumen porque
podría llegar a ser molesto. Si haces clic en Comprar
en algo aquí, compraste un par de veces. Se puede ver cuando muere el enemigo, juega muchas veces. Y esto es un poco molesto. Vamos a la base enemiga aquí. Echemos un vistazo a la muerte. Si solo hago una cadena de impresión, solo imprimo cadena para
ver si esto está sonando. Un par de veces,
puedo hacer click en play. Puedo volver a comprar algo. Puedo ver que se está jugando
muchas veces. Sigamos adelante y
arreglemos este problema aquí. Podemos usar algo
llamado un nodo one. Tomemos esto y digamos una vez,
y sigamos adelante y
seleccionemos esto una vez. Entonces va a
reproducir este efecto de sonido o básicamente todo
este código aquí. Una vez sólo compro algo. Ya puedes ver que está arreglado porque sólo
va a jugar una vez. Esto se está reiniciando
básicamente de forma automática. Porque recuerden, estamos
destruyendo al actor. Cada vez que el actor muere
y un nuevo actor responde. Entonces tendrán uno
nuevo, nodo. Realmente no necesitamos
resetear este. Aquí todo está funcionando bien. Vamos a cerrarlo
y sigamos adelante.
109. 12.05 Añade música: Como lo último para el efecto de sonido,
agreguemos algo de música. Y esto es súper simple, así que si solo abrimos
el audio una vez más, podemos arrastrar en esta
música hasta aquí. Voy a darle clic de nuevo. También reduce el sonido. No estoy seguro de lo ruidoso que es. 0.2 está bien, creo que sí.
Déjame cerrarlo. Ahora tenemos esto. Sólo
voy a decir para el 0200, realmente no
importa dónde esté Ahora si haces clic en Reproducir, puedes ver que puedes
escuchar el sonido. Esto es súper simple y agregar música y
va a hacer un bucle para siempre. Todo suena bien. Bien. Sigamos adelante
y guardemos todo. Y pasemos
al siguiente.
110. 13.01 Diseño de la interfaz de usuario de Ascensión: Bien, entonces ahora
trabajemos en la Ascensión. Básicamente, lo que es Ascensión, si no lo sabes ya, es cada vez que
alcanzas un progreso, cierto progreso en el juego, puedes presionar un botón de reinicio Da una rejugabilidad
al juego. Cuando reinicias el juego
, te da más daño base. Por ejemplo, todo
es 300% más de daño. Se puede reiniciar el juego básicamente
y tener más daño. Y básicamente puedes continuar porque en cierto punto
si no reinicias, el juego se volverá demasiado
difícil y tendrás que
reiniciar para conseguir ese
daño adicional para continuar con los niveles. Bien, sigamos adelante y
comencemos con el mecánico de
Ascensión Entonces, lo primero que
quiero hacer es básicamente diseñar la interfaz de usuario y
sacarla del camino. Vayamos a la carpeta UI. Vamos a la derecha L aquí, haz un nuevo widgets. Llamémosle a éste
Ascensión pop up. Y vamos a estar trabajando con el
pop up en la siguiente lección, Pero por ahora, ahora tenemos eso terminado.
Pasemos al Principal. Agreguemos aquí abajo el
botón de Ascensión, y lo haremos
aparecer siempre que se haya
alcanzado
el criterio. Empecemos por aquí. Primero, lo que quiero hacer es tomar esta superposición y arrastrarla
hacia abajo hasta el panel del lienzo. Vamos a minimizar todo esto. Ahora tenemos esta superposición. Quiero que esta interfaz de usuario sea A, aquí
abajo en la parte inferior, punto de
anclaje, abajo. Vamos a subir 00 en la
posición x e y Ahora para la x, tenemos que subir 0.5 Para la y en la alineación,
tenemos que escribir una. Está aquí arriba en la pantalla. A continuación necesitamos la interfaz de usuario. Ahora primero agreguemos una imagen. Añadiendo esta imagen, esta
será la imagen de fondo. Será el mismo que
éste. Yo sólo voy a
copiar esta imagen. Da clic aquí, pégalo. Ahora tenemos eso terminado. A continuación queremos una caja vertical. Agreguemos una
caja vertical a esta superposición. Lo que quiero tener es algún
texto y un botón debajo de él. Agreguemos algo de texto. Sólo voy a
copiar uno de ellos. Por ejemplo,
éste, control C, baja aquí, controla V
en la caja vertical. También agreguemos el botón, y podemos agregarlo con solo
entrar en esta tarjeta de nivel. Podemos dar click en todo esto, copiar y pegarlo aquí
en el cuadro vertical. Y puedo quitarle esta
calavera. Ahora eso fue todo. Vamos a dar click sobre esta imagen. Hagamos que se llene
horizontal y verticalmente. Ahora vamos a hacer clic
aquí arriba en la superposición. Y permítanos simplemente cambiar el tamaño de las cosas, o básicamente lo que puedes
hacer es simplemente dimensionar el contenido Creo que voy a hacer eso en su lugar. A continuación podemos agregar texto
para este botón. Voy a escribir aquí Ascend. Aquí podemos escribir
Ascensión disponible. Ahora para el texto de
fondo aquí, en realidad
voy a
copiar este color de contorno. Ve aquí abajo y pégalo para
éste para que
tengan el mismo color. También, podemos dar click sobre este cuadro vertical y
podemos darle algún relleno. Si escribes algo como 50, tal vez no tanto. Si
volvemos a hacer clic aquí, escribamos 30. A lo mejor algo alrededor del 30, 35 es algo así. Creo que se ve bien. Ahora vamos a darle
algo de espaciado en la parte inferior para que
no golpee el borde. Y esa es la posición en
la posición Y -30, la X. Escribamos cero. Una
vez más, seguir adelante y compilar. Se puede dar click en el plato para
ver cómo se ve. Creo que parece que a lo mejor
este texto es demasiado grande. En lugar de 24, escribamos uno. También vamos a darle
un poco de espacio. Sólo voy a dar click aquí arriba. Dale un poco de relleno
al fondo, por ejemplo, cuatro, compile
y haga clic en play. Creo que eso es lindo. Ahora tenemos disponible esta
ascensión, y tenemos algún efecto de sonido
también para el botón, Eso fue todo para esta interfaz Vamos a cerrarlo y
continuar en la siguiente.
111. 13.02 Diseña el popup de ascensión: Bien, ahora es el momento de
diseñar el Ascension Pub up. Y podemos hacer esto fácilmente
simplemente copiando esto por ahora. Copia todo esto que hicimos en la última lección y abre el Pub
Up de Ascensión Pasa esto aquí abajo.
Ahora en vez de aquí. En realidad agreguemos
un panel de lienzo. Por eso se ve tan enorme. Agrega un panel de lienzo y
luego agrégalo aquí. Asegúrate de que al hacer
clic en la superposición, esté anclada al centro Y 0.5 en la alineación
para la X y la Y. Y también 00 en la posición
X e Y. Y aquí arriba, seleccione
deseado en pantalla. Bien, entonces lo que quiero
hacer aquí es quiero, reiniciarás progreso
pero con 300% más de daño. Por ejemplo. Siempre podemos escribir un número dinámico para
este porcentaje de daño, pero por ahora, vamos a
escribirlo así. Si quieres hacerlo un poco
más pequeño aquí en el ancho, siempre
puedes bajar aquí y en el envoltorio
tienes este texto envolvente en. Yo solo voy a
aumentar esto y
básicamente podemos envolver este texto
a un cierto número. Déjanos envolverlo en
algo así como 360. Puedo ver que la
imagen es en realidad borrosa en el fondo en
lugar de imagen Cambiémoslo a
una caja y escribamos 0.5 Eso se ve mucho mejor. Hagámoslo también
en realidad en lo principal. No
creo que hayamos hecho eso. Volviendo, dando clic en él, cambiándolo a una caja y
escribiendo 0.5 Volvamos. Ahora, por aquí, voy
a duplicar este botón, pero los necesitamos en
una caja horizontal. Voy a
buscar cuadro horizontal. Adelante y agrégalo aquí. Y agrega este botón a
la caja horizontal. Y duplique esta superposición. Al hacer clic en el control D, podemos dar click en la primera
superposición. Haga clic en Phil. Haga clic en la segunda
superposición. Haga clic en Phil. Ahora el primero va
a decir As, Eso está bien. El segundo
va a decir cancelar, porque queremos volver atrás. Si no queremos continuar,
podemos dar click sobre esto. Podemos cambiar el color solo para hacerlo un
poco más único. El botón de cancelar es un poco más rojo, algo
así aquí. Y voy a
copiar este color
al hover y al prensado
también, para el as Voy a cambiar
el color también a algo un poco más
verde como esto. Bien, esto en los otros. Aquí lo tienes. Si
compilo y guardo, ahora tenemos esto terminado. Pasemos al siguiente.
112. 13.03 Abre la ventana emergente de ascensión: Bien, ahora es el momento de agregar este pop up de ascensión a la UI Si vuelvo al control del
jugador, recuerda que aquí es donde
creamos toda la interfaz de usuario y creamos esta función show
hide widget. Vamos a abrir la función
show widgit. Nos daremos cuenta de que
necesitamos agregarlo a la enumeración. Sigamos
adelante y hagamos eso. Vamos a abrir el,
vamos a los widgets del juego. Vamos a sumar la Ascensión. Solo guardemos aquí y volvamos al controlador del
reproductor. Y ahora ves que
tienes un alfiler para ello. Ahora copiemos este
widget de parte y
busquemos, veamos aquí,
emergente Ascensión, clic derecho Promueve esto a una
variable y llámalo ascensión pop up,
igual que antes Tomemos este
pop up de ascensión y lo convertiremos en un get validado cuando no
sea válido Vamos a crear la interfaz de usuario. No obstante, siempre que sea válido, arrastremos desde aquí y
digamos añadir al punto de vista. Vamos a
agregarlo a la pantalla. Si es válido, sigamos
adelante y solo
agreguémoslo a la pantalla. No tiene sentido
crearlo si ya es válido. Vamos a agregar este de
aquí y empujarlos hacia arriba. Ahora volvamos al widget
hide de aquí. Lo que tenemos que hacer es
cada vez que cerramos el widget, vamos a arrastrar esta ascensión
emergente, hacer clic derecho, y convertirlo en
un get validado y conectarlo y
eliminarlo del padre Siempre que queramos cerrarlo, podemos eliminarlo de la pantalla diciendo remove de Parent. Yo lo guardo todo. Ahora
estamos listos para usarlo. Vamos a los planos, o en realidad a la interfaz de usuario Ahora esto sucede cada vez que hago clic en el botón
en el widget principal. Si voy aquí, este botón aquí, voy a cambiar el
nombre a Button Ascend Voy a la gráfica. Ahora aquí puedes hacer clic en él y dar clic en el evento clicado ¿Qué debería pasar al
hacer clic en este botón? Lo que debería pasar
es que quiero obtener mi controlador de reproducción
y mostrar el widget, el menú emergente. Puedo ver aquí, no
tengo una variable de
controlador de jugador. De hecho voy a
crearlo aquí arriba en el evento evento
construir así. Vamos al igual que antes de
obtener el controlador del reproductor, luego obtengamos la referencia del
controlador de reproducción desde la interfaz del plano Y haga clic derecho promocione esto a un controlador de
reproductor de llamadas variables. Ahora tenemos esto.
Vayamos aquí abajo. Arrastremos este controlador
del reproductor y digamos Mostrar Ocultar widgets. Sigamos adelante y
seleccionemos Canine Pop up. Vamos a hacer clic en Mostrar. Pero también queremos ocultar el menú principal. En realidad principal básicamente voy a arrastrar esto también
y decir Mostrar Ocultar Widgets. Voy a ocultar la interfaz de usuario principal. Ya es sentarse así. Compilar. Si haces clic en Reproducir, das clic en asentimiento,
podrás ver que aparece De hecho hagamos
lo mismo aquí. Eliminemos esto
de la pantalla. Siempre que hagamos clic en lápiz, llamémoslo
lápiz de botón aquí arriba. Vamos a ir a la gráfica y dar clic, Vamos a eliminar todo
esto por ahora. Nuevamente, necesitamos el mando de
reproducción. Entonces, sigamos adelante y
hagamos esa construcción de eventos. Yo sólo voy a
copiarlo de la principal aquí. Sólo tienes que copiar todo esto
y pegarlo aquí arriba. Al igual que antes, recuerda hacer click en esta línea de control de
vuelo creada como una variable como esta. Entonces ahora lo tenemos.
De hecho, vamos a copiar y pegar aquí. No tenemos que escribir todas
las mismas cosas una y otra vez. Siempre que hacemos clic en la cancelación, queremos abrir la interfaz de usuario principal, pero queremos cerrar
el pop up de Ascensión Vamos a probar eso. Ábrelo, haz clic en Cancelar, y puedo
ver que está funcionando bien. Adelante, guarda todo, y pasemos
al siguiente.
113. 13.04 Configuración del evento de reinicio de la partida: Bien, ahora cada vez que hagamos
clic en el Ascend aquí, en realidad voy a
borrar la música solo que podamos trabajar aquí
sin la música Sólo voy a hacer click sobre él. Y luego haga clic en el multiplicador de
volumen a cero. Y si hago clic en jugar ahora cada vez que hago clic en
Ascend y Ascend aquí, quiero reiniciar el Esto es básicamente
lo que quiero hacer. Básicamente estamos reiniciando
el juego y dando
al jugador cantidad
de daño extra. Sigamos adelante y
reiniciemos el juego. La forma en que hacemos esto,
hagamos eso dentro del modo de juego porque aquí es donde tiene más sentido aquí abajo. Hagamos clic derecho, hagamos
un nuevo evento personalizado. Llamemos a este juego
de reinicio. Hay muchas
variables que necesitamos reiniciar porque en realidad
necesitamos reiniciar todas las variables con las que hemos estado
trabajando hasta ahora. No todos ellos
sino los que son muy importantes y
se muestran a la pantalla. Empecemos, por ejemplo, con el nivel que has
desbloqueado y el nivel actual. Déjame arrastrar
este nivel desbloqueado, arrastrarlo y ponerlo en uno. Nuevamente, esto es lo que
fue desde el principio. Lo mismo con
el nivel actual. Vamos a arrastrarlo y ponerlo en uno. También eliminemos todos
estos botones aquí. Cuando tengas todos
estos botones, debes quitarlos. Hagámoslo consiguiendo
el controlador del reproductor. Encontremos al Maui.
Adelante y consígalo. Entonces necesitamos
obtener la lista de niveles. Así
es como lo llamamos. Si no recuerdas
cómo lo llamaste, siempre
puedes abrir el Maui Puedes hacer clic en esta lista
y la llamaste lista de niveles. Estamos recibiendo este menú. Estamos obteniendo la lista de niveles. Adelante y consígalo. arrastrar de aquí un claro niños. Vamos a eliminar todos
los componentes secundarios secundarios que están dentro de esta lista. Siempre que los quite todos, recuerde que también
eliminamos el nivel uno. También necesitamos agregar
el nivel uno. La forma en que podemos hacer
esto es directamente desde el controlador del reproductor
y tenemos este llamado UI de botón. Si no recuerdas esto, lo cual es natural porque
llevamos bastante tiempo trabajando con esto y a veces también me olvido de
mí mismo, como lo llamé. Siempre es agradable volver
atrás y ver un botón UI, Básicamente agrega este
nivel actual a la lista de servidores. Si vuelvo al modo
juego y agregamos este botón de nivel
UI, es el nivel uno. Básicamente el
nivel desbloqueado que tenemos aquí. Arrastremos el
nivel desbloqueado y lo agreguemos. Ahora tenemos los niveles correctos. Lo siguiente en lo
que queremos trabajar es
la cantidad de monedas
que tiene el jugador. Necesitamos una referencia
al jugador, y puedo ver que no tenemos
una variable para el jugador. En realidad vamos a sumar uno aquí arriba. Déjame arrastrar todo
esto. Ahora esta está en la jugada de inicio. En la jugada de inicio,
hagamos clic derecho y digamos que obtenga el personaje del jugador, digamos que obtenga la referencia del jugador desde la interfaz del plano Adelante y
conéctalo. Hagamos clic derecho y promocionemos esta
variable llamada peón jugador Volvamos a conectarnos a éste y simplemente
empujarlos de nuevo, Compile. Ahora lo que podemos hacer aquí abajo
es que podemos tomar a este jugador y podemos decir
cantidad de monedas. Podemos establecer que la cantidad
de monedas sea cero, pero también tenemos que
actualizar la interfaz de usuario. No recuerdo completamente
la lógica aquí. Si vuelvo al jugador, abro el jugador aquí, actualizamos la cantidad de monedas. Y es este
en el WB principal, lo
llamamos actualizar cantidad de
monedas. Simplemente copiemos esta
parte del código. Volvamos al modo de
juego, pegarlo. Básicamente no necesitamos
escribir más código. Podemos simplemente copiar y
pegar los que ya tenemos y conectarlo. Hacer un nodo de ruta posterior como
este. Y ahora esto ya está establecido. Bien, lo siguiente
que queremos arreglar
también es la cantidad de
artículos que aquí hemos comprado. Entonces tenemos que reiniciar
eso también. Para el puerto de artículos, también tenemos este punto de ítem variable
dentro del jugador. Si vuelvo al modo de juego, copio el pan del jugador
aquí y
lo busco bots adelante y obtengo
esto correcto de aquí. Y luego di claro,
limpiarás todos
los valores dentro de este
mapa cada vez que los borre. También quiero actualizar la interfaz de usuario. Cuando actualizas la interfaz de usuario
para las tarjetas de artículos, básicamente solo
recrea todos los elementos Porque recuerden, cuando
creamos las tarjetas de artículos de tienda, básicamente
limpiamos
las anteriores. Podemos seguir adelante y
volver al modo de juego. Podemos tomar el
controlador del jugador aquí y podemos arrastrar y decir Crear tarjetas de artículos de tienda. Adelante y conectado. Ahora lo último es que también necesitamos actualizar el
DPS para el jugador Necesitamos reiniciar el
DPS total y el daño del cursor. Volvamos al modo de juego. Volvamos a tomar al
jugador así. Tomemos el DPS total,
Ponlo a cero, porque esto es
lo que es por defecto Tomemos el daño del cursor
y pongamos el daño del cursor. Ahora el daño del cursor
es de 15, creo. Entonces, si haces clic en
él, podrás ver el valor predeterminado para ello que
has establecido para tu juego. Y sólo voy a
ponerlo de nuevo a 15, que es el predeterminado
para mi juego aquí. Y solo podemos hacer
una nota de arte posterior y todo queda genial. Bien, entonces lo último es que
queremos establecer el
nivel actual en el que nos encontramos, porque tenemos este
nivel actual establecido y también genera al enemigo para ese
nivel y comienza el tiempo de ronda que
necesitamos para hacer esto Volvamos aquí.
Digamos establecer el nivel actual. Vamos a sumar el nivel en el que
estamos que es
el nivel actual. El nivel actual lo
reiniciamos a uno Nuevamente, aquí si recuerdas
el primero, nivel
actual establecido en uno
se iba a establecer Ahora hemos terminado
con este juego de reinicio. Veamos en realidad
si funciona. Si volvemos, veamos aquí, si acabo de cerrar
todo esto abajo. Abro la interfaz de usuario. Abro este popup de
ascensión. Doy click en este ascenso, y voy hacia abajo y hago clic en el botón clicked para
este ascenso Voy a copiar todo
esto porque necesitamos
mostrar la interfaz de usuario principal y también tenemos que eliminar la
ventana emergente de Ascensión Cuando hacemos clic en este botón, cambiemos el nombre por él. No es el nivel de botón, es el ascenso de botones.
Volvamos. Bien, por aquí también
queremos reiniciar el juego. Voy a
hacer clic derecho y decir obtener modo de
juego y luego obtener la referencia
del modo de juego. Entonces voy a
decir reiniciar juego. Debería funcionar bien. Adelante, guarda y
déjanos jugar y probarlo. Enemigo. Compro algo aquí
y enciendo el nivel. Si hago clic en asentimiento
y luego asciendo, se
puede ver que
reinicia Reinicia la cantidad
de artículos que he comprado. También reinicia la progresión de
nivel aquí y la cantidad de monedas
que tengo. Vamos a intentarlo de nuevo. Si solo le digo al enemigo que
compro algo en las tiendas, reiniciamos todo el progreso y todo está
funcionando muy bien. Eso fue todo por
reiniciar el juego. Y pasemos
al siguiente.
114. 13.05 Visualización de la ascensión al final de la partida: Lo que queremos asegurarnos ahora
es cuando haces clic en jugar, queremos asegurarnos de
que esta ascensión disponible solo se muestre cuando el jugador haya
llegado al final del juego Nosotros, voy a decir por ejemplo
en mi criterio es siempre que el jugador haya comprado todos los artículos
como una cierta cantidad, entonces se mostrará esta ascensión
disponible Sigamos adelante y hagamos eso. Hagámoslo dentro
del modo de juego. Vamos a abrir el
modo de juego dentro de aquí. Vamos a crear una nueva función. Llamemos a esta función
como criterios cumplidos. Por ejemplo, se va a
comprobar si se cumplen los criterios. Y luego va
a mostrar este widget ahora para asegurarse de que esté oculto desde el principio.
Vamos a la interfaz de usuario. Primero,
abramos la Ui principal. Dentro de la Ui principal,
hagamos clic aquí. Aquí en la superposición
para la Ascensión. Sólo voy a
cambiar el nombre por esta superposición porque la
vamos a ocultar, así que siempre es agradable
saber su nombre. Voy a llamarlo
Superposición Ascensión y configurarlo en es variable También como inicio aquí
en la visibilidad. En lugar de no golpear comprobable, pongámoslo a colapsado No es en nuestra opinión. Si reproduce el clip ahora puede
ver que ya no se muestra. Lo vamos a mostrar siempre que se cumplan
estos criterios. Ahora los criterios, cada vez que haya comprado una cierta
cantidad de estos artículos, mostrará
que necesitamos
el mapa de puntos de artículos. Esto está dentro de nuestro jugador. Consigamos o consigamos una
referencia al jugador, y ya
la tenemos aquí. Juega en. Vamos a sacarlo
y decir puntos de artículos. Consigamos este mapa que
creamos anteriormente. Ahora necesitamos sacar todas
las llaves de él. Los valores,
básicamente se llaman claves. Todas las llaves aquí. También
podemos ver los valores para ellos. Golpeemos desde
aquí y
volvamos a decir llaves y arrastramos,
luego conectamos aquí Ahora tenemos todas las llaves. Lo que quiero verificar primero
es ¿tenemos todos los artículos? Porque realmente no
importa hacer un bucle de todo esto y verificar cuántos artículos
tenemos si
ni siquiera tenemos el artículo. Solo por el bien de la optimización, primero
verifiquemos si el
jugador tiene todos los elementos antes de que los
recorremos y veamos cuántos hay de cada ítem. Tomemos esto y digamos que
la longitud es esta longitud, es igual?
Adelante y selecciona eso. ¿Esto es igual a la cantidad
de artículos de tienda que tienes? Y ¿cómo conseguimos
cuántos artículos de tienda tenemos? Esto en realidad es súper fácil porque ahora podemos
aquí en el modo de juego, definamos eso en el
jugador en el inicio. Juega aquí en el modo de
juego después de definir los peones
y los puntos de desove Hagámoslo
antes de que engendremos al enemigo. Desconecte este
y golpeemos desde aquí y digamos obtener tabla de datos. Hasta el momento hemos estado
usando este. Obtener fila de tabla de datos pero
ahora vamos a usar esta. Obtener nombres de fila de tabla de datos. Vamos a obtener todos los nombres de fila
de tabla de datos para la tabla de datos de información. Aquí están todos los nombres para los artículos de este
y diciendo longitud, esto te dirá
cuántos artículos tenemos. Por ejemplo, si tienes
11 artículos, dirá 11. Vamos a hacer clic derecho en este
y promocionarlo a una variable y llamarlo cantidad
de artículos de la tienda. Adelante y conéctalo. Ahora, así,
conecta esto también. Ahora lo que podemos
hacer, vamos a compilar. Si quieres ver lo que hace, siempre
puedes hacer
una cadena de impresión. Siempre usa una cadena de impresión si quieres ver
lo que estás haciendo. Es un indicador. Puedes hacer click en
play, y dice 11 aquí arriba a la izquierda. Eso está funcionando perfectamente. Vamos a compilar.
Volvamos a los criterios cumplidos. Vamos a meter esta cantidad
de artículos de la tienda aquí, y luego hagamos una sucursal. Lo que básicamente estamos
haciendo es que estamos obteniendo las llaves de los artículos, estamos tomando la longitud de los mismos. Básicamente estamos comprobando
cuántos de estos artículos
hemos comprado. Y lo estamos comparando con
la cantidad de artículos de la tienda. Si la cantidad de artículos que hemos comprado es igual a la
cantidad de artículos de la tienda, esto significa que he comprado todos estos artículos al menos una vez. Después de saber que
compré todos estos
artículos al menos una vez, la longitud del bote de artículos
será la misma que la
cantidad de artículos de la tienda. Si eso es cierto, sigamos
adelante y continuemos con el código. Si eso no es cierto,
podemos, solo
podemos dejarlo porque no queremos hacer nada. Sigamos a partir de aquí.
Y ahora queremos obtener los valores arrastrando desde aquí O básicamente puedes,
solo para hacerlo más limpio, siempre
puedes arrastrar aquí nuevo y luego arrastrar
y decir valores. Ahora estás obteniendo los
valores de esas claves. Básicamente las claves están aquí
y los valores están aquí. Ahora estás jugando con
los valores aquí. Ahora para los valores
que vas a decir para cada bucle con Brick. Tomando este, lo que
queremos comprobar es si hemos comprado
cierta cantidad de ese artículo, por
ejemplo, digamos que
el jugador tiene que comprar al menos diez artículos
de cada uno antes. Aparece la ascensión. Vamos a
revisar todos los valores de los elementos y
vamos a verificar si están en esa
cantidad de cantidad de bot. Básicamente lo que sea que pongamos, si digo es mayor o igual
a lo que escribo aquí, por ejemplo, es
mayor o igual a diez y puedo hacer una rama. Entonces lo que quiero hacer es crear un contador. Hagamos una variable local. Y sólo voy a
llamarlo contador local. Sólo va a ser un
contador que cuenta para mí. Comienza en cero. Vamos a decir este
contador plus plus. Cada vez que encontremos que se ha cumplido con
este criterio, vamos a agregar
uno a este contador. Si hemos comprado diez artículos
de cada uno de esos artículos, entonces este contador debería ser 11, porque tenemos 11 artículos. Siempre que sea 11 aquí
en el completado, va a
recorrer todos ellos y es este local L plus,
lo que significa básicamente
más uno para ello. Si fue cero, será uno. Si fue uno,
serán dos, y así sucesivamente. Va a recorrerlos. Y si este contador local es igual a la cantidad de artículos de
tienda, que es 11, básicamente este contador
será 11 si hemos comprado esta cierta cantidad de artículos de cada uno de esos artículos, porque nuevamente tenemos 11 artículos, hagamos una sucursal
y digamos, ¿es esto cierto? Si eso es cierto, queremos decir
que se ha cumplido con los criterios. En realidad voy a
hacer una nueva variable aquí. Y es sólo un lingote llamado criterios de
ascensión cumplidos. Y cámbialo en lingotes, adelante y conéctalo
aquí y conéctalo para que sea verdad Sí, eso debería ser. En realidad lo que estamos haciendo aquí. Hagamos un descanso,
por cierto, aquí, porque no necesitamos
recorrerlo sin romperlo. Porque aquí estamos usando un
para cada bucle con break. Y lo que eso significa es que
vamos a hacer un bucle de este código. Sin embargo, no tiene
sentido seguir dando vueltas a
través de ellos. Si nos enteramos de que para la pluma ligera no
hemos comprado diez, ¿por qué deberías
recorrerlas todas? Porque no
va a mostrarse de todos modos. Porque este no es diez. En lugar de, esto es
básicamente para optimización, así que no recorres el
código sin ningún significado. Si lo
recorremos y descubrimos que uno de los artículos no tiene
diez artículos. Pero como escribimos aquí, entonces podemos
arrastrar aquí y decir break. Básicamente estamos
rompiendo el bucle. Lo que estamos diciendo
es que, por ejemplo, estamos recorriendo, estamos echando un
vistazo a la pluma ligera Dice, por ejemplo,
sí, hemos comprado diez. Entonces estamos más plusing
el mostrador local. Entonces se echa un
vistazo a la antorcha. Y tal vez sólo
hemos comprado nueve. Dirá falso, no
has comprado diez. Si eso es falso, sólo
vamos a romper el bucle. Entonces
ya no hacemos un bucle a través de esto porque
no tiene sentido. No hemos comprado todos
los artículos diez veces. Se va a romper el bucle y se va a completar. El mostrador local no es igual a la cantidad
de artículos empujados, porque a lo mejor
eran sólo dos aquí Entonces será falso y
entonces no pasará nada. Los criterios de ascensión solo se
cumplirán cuando el mostrador local sea igual a la cantidad
de los artículos de la tienda Ahora hay que pensar en
dónde tiene sentido verificar esto o
llamar a esta función aquí? Ahora tiene más sentido en el artículo de compra básicamente. Volvamos al jugador. Aquí es donde lo hicimos. Tenemos este artículo de compra. Cada vez que
compramos artículo, necesitamos verificar si se han cumplido
los criterios. Vamos a hacer eso aquí. Al final, está
en el modo de juego, así que necesitamos tomar
el modo de juego y decir ascensión. Y toma este criterio de
ascensión,
vamos a llamarlo cada vez que compramos algo
porque necesitamos verificar, si necesitamos mostrar
la ascensión, lo
haría Ahora si haces clic en Reproducir y comprar todos ellos, no
va a Porque recuerden, establecemos la superposición
de la Ascensión. Entonces, si vuelvo a la interfaz de usuario principal, configuramos esta superposición
para que se colapse. En algún momento
tenemos que mostrarlo. Volvamos al modo
de juego ahora, aquí en los criterios de Ascensión, y ahora vamos a mostrar esta superposición Ahora recuerda, esta superposición
está dentro de WB main, que tiene la referencia dentro
del controlador del reproductor. Si solo tomo el controlador
del jugador y
busco WB principal, lo entiendo y luego me sale la V ascensión Esto es básicamente como
lo llamé. Entonces puedo decir establecer visibilidad. Vamos a establecer la visibilidad
para que no golpee comprobable. Recordar visible
básicamente va a bloquear tus clics del ratón y
no queremos hacer eso. Hagámoslo comprobable,
compilemos y guardemos. Ahora, solo para propósitos de prueba, solo escribamos uno. Si solo desactivo los
sonidos antes de hacer clic en reproducir, creo que va a ser
molesto para ti que siga tocando los sonidos
aquí en la base enemiga. Siempre que muera el enemigo. Sólo voy a desactivar este Reproducir sonido a D. Por
ahora, vamos a hacer clic en reproducir. Yo sólo voy a comprar. Cada artículo. Ahora bien, este es el último y
voy a comprarlo. Puedo ver que no pasa nada, aunque debería suceder. De hecho, esta
es una buena oportunidad para intentar depurarlo juntos y puedes
ver como lo depuro. Sigamos adelante y
volvamos al modo de juego. Básicamente, el error
está ocurriendo aquí. Hagamos notas de cadena impresas. Esto es lo que suelo
hacer para depurar por aquí. Vamos a escribir una cadena de impresión. Digamos si el
código pasa por. Básicamente lo que estoy viendo es ¿pasa el código? Si hace eso,
significa que funciona. Vamos a escribir primero aquí,
por ejemplo, lo que sea. Realmente no hace ninguna
diferencia lo que escribes. Déjame escribir, por
ejemplo, segundo aquí. Siempre que reviso
el código aquí, lo que está mostrando aquí
si dice segundo, esto significa que la longitud de estas claves son iguales
a los artículos de la tienda, lo que significa que el código está
funcionando antes de continuar. Vamos a tratar de hacer eso. Ahora diciendo primero está bien, debería decir segundo cada
vez que compre el último. Pero se puede ver que
en realidad se dice en segundo lugar. Cada vez que compré este, aún no lo he comprado. Así que en realidad
las cosas que tengo la cantidad de artículos de la tienda ya antes de
comprar el último artículo. O tengo un valor predeterminado dentro de este
punto de artículo por error, que voy a
ver en un segundo, o la cantidad de
artículos de la tienda está mal. Primero echemos un vistazo a
la cantidad de artículos de la tienda. Sólo voy a borrar
la cadena de impresión. Voy a volver al gráfico de eventos
del modo juego. Voy a imprimir la cantidad de artículos de la
tienda que
en realidad estoy obteniendo de esto, es 11, que se supone que debo
conseguir. Dice 11. Hay algo mal
con la otra variable, algo mal
con el punto del ítem. Si vuelvo al jugador
y hago clic en los ítems, pero puedo ver aquí, este es en realidad
el error aquí. Por defecto, hice clic
en el signo más y agregué un elemento vacío aleatorio Y puedo dar click en Eliminar aquí,
y dar click en Compilar y Reproducir. Vamos a intentarlo de nuevo ahora. Si compro uno de cada artículo, va a funcionar ahora. Y también
me va a mostrar la Ascensión disponible. Puedo dar click en Ascend
y ascender aquí, y luego reiniciar el juego Ahora tenemos que esconder esto de nuevo, cada vez que ascendemos,
hagamos eso muy rápido Eso lo podemos hacer. Vamos a
cerrar esto. Volvamos a la interfaz de usuario. Y vamos a abrir
esta ventana emergente de aquí. Hagámoslo aquí cada vez que
hagamos clic en Ascend, Aquí cada vez que hagamos clic en
Ascend y reiniciemos el juego Sólo
hagámoslo antes de reiniciar el juego. Tomemos de nuevo el
controlador del reproductor. Pasado en, ir a la principal del WB. Entonces
volvamos a conseguir V Ascensión. Entonces empujemos
esto más lejos. Básicamente queremos establecer la
visibilidad igual que antes, pero ahora queremos establecer la visibilidad para colapsar
igual que antes, colapsada y luego
conectar esta. Y entonces eso debería
funcionar muy bien. Bien, ahora todo está funcionando y
sigamos al siguiente.
115. 13.06 Crea la estructura de ascensión: Lo que quiero hacer
ahora es crear el Multiplicador
para la Ascensión Cada vez que ascendemos a un nuevo nivel o
reiniciamos el juego, quiero
darme Por ejemplo, el
jugador debería tener 300% más de daño que antes, y todo le da
300% más Vamos a establecer el multiplicador y podemos hacerlo muy
fácilmente a través de otra vez, una estructura y una tabla de datos. Volvamos a las
estructuras y
haga clic derecho en ir a Planos y
luego hacer una nueva estructura Llamemos a
éste ST Ascensión. También se puede llamar al
multiplicador de Ascensión , que es lo que es Vamos a abrirlo
en vez de aquí, vamos a cambiarlo en un flotador. Y básicamente lo que queremos
hacer es que solo queremos tener el multiplicador de Daño de Ascensión Este es el único valor que necesitamos. Ahora vamos a cerrarlo. Vamos a
Tablas de datos y hagamos
clic derecho en Tabla de datos misceláneos. Y seleccionemos la
estructura que acabamos de hacer. Puedes ver en plano básicamente solo haces lo
mismo una y otra vez. Y cada vez que te vuelves
realmente bueno en ello, básicamente
puedes crear
tu
propia mecánica con solo usar las herramientas
que has aprendido. Este llamado básicamente
solo ascensión Para éste, ahorremos y
abramos ahora las Hojas de cálculo de Google Básicamente por aquí,
hagamos uno nuevo. Sólo voy a duplicar
este ítem para, por ejemplo, llamemos a
este nuevo T, ascensión Eliminemos todo ahora. Para el ID está a qué
nivel ascensión estamos. Empezamos con el nivel cero porque no
tenemos ninguna ascensión. Esto es básicamente, se
puede pensar ello como la cantidad de Ascensiones que
hemos hecho o a
partir del 01, y pueden continuar
hasta cuántas quieran Entonces puedes decir Multiplicador
de Daño. Básicamente, hay que
llamarlo del mismo nombre, Multiplicador de Daño de
Ascensión Entonces el mismo nombre que lo que
has escrito dentro
de la tabla de datos. Ahora para el multiplicador, tiene
que ser uno cuando estás en cero ascensiones porque
vas a multiplicar
todo por uno, que significa que solo estás recibiendo
el daño que acabas de
tener anteriormente, que es básicamente
el daño base que
has definido aquí
en tu información de objeto, todo multiplicado por uno Ahora, cada vez que ascendemos, se
puede por ejemplo, decir tres Esto significa que ahora tienes tres veces
más daño que antes. Y entonces se puede decir,
por ejemplo, siete. Y sólo voy a
escribir números aleatorios, voy a decir esto
veces 1.5 o lo que sea. Y solo puedes arrastrar
hacia abajo y luego hacer clic aquí para eliminar todos
los decimales. Ahora solo podemos usar esto. Bien, Sigamos adelante y clic en Descarga de archivos,
descarga CSV. Ahora tengo esta ascensión DT. Y voy a
volver a mi motor. Y aquí ahora podemos
arrastrarlo dentro de él hacia aquí, y debería cargar
todo correctamente. Bien, ahora
tienes los multiplicadores. Y sigamos
yendo a las bibliotecas. Ábrela. Hagamos
una nueva función aquí. Vamos a hacer clic en Anuncio,
hacer clic en la función, llamarlo y como multiplicador por
ejemplo, o multiplicador de daño de ascensión Puedes llamarlo como
quieras. Ahora para este insumo, básicamente
tenemos que saber en
qué nivel estamos? ¿Cuántas Ascensiones
hemos hecho hasta ahora? Cambiándolo en un entero, podemos llamarlo Nivel de Ascensión Ahora digamos una mesa
igual que antes. Consigamos la tabla de datos
de Ascensión. Ahora otra vez, no se puede
conectar esto a esto porque primero hay
que decir, dos cadenas. Tienes que
convertirlo en una cadena, y luego puedes
conectarlo aquí, y automáticamente lo
convertirá en un nombre para ti. Se puede arrastrar desde
aquí y decir regreso. Puedes devolver la información aquí arrastrando a esto Y ahora se puede decir
información de Ascensión, por ejemplo, compilar. Y recuerda dar click en esta
función y dar click en Pure. De nuevo, solo estamos obteniendo
alguna información de aquí. Vamos a guardar todo. Y ahora podemos usarlo en
las próximas lecciones.
116. 13.07 Añade el multiplicador de ascensión: Ahora lo que tenemos que hacer
es que tenemos que multiplicar todo el daño que estamos haciendo en el juego con el multiplicador. Entonces estamos sacando la
cantidad correcta de daños. Para ello, tenemos que saber donde hicimos
todos los daños? Esto lo podemos encontrar fácilmente. Primero vayamos al jugador. Ahora, en el jugador
aquí, por ejemplo, en el artículo de compra
hicimos esto, TPS Ahora lo que puedes hacer es
que siempre puedes hacer
clic derecho aquí y hacer clic en eso es. Lo que yo haría es encontrar referencias para esto porque aquí
tenemos el DPS Si podemos encontrar todas
las referencias aquí en
todos los planos, podemos encontrar dónde estamos haciendo
DPS o donde estamos
tomando esta información, haciendo clic
derecho en Buscar referencias, y luego haciendo clic en
este pequeño icono para encontrar las referencias
dentro de todos los No sólo ésta. Bien, voy a poner esto en mi segundo monitor
y básicamente
solo estoy trabajando primero con
este. Ahora lo que quiero hacer
es multiplicar esta cantidad de DPS con
el multiplicador de Ascensión, estoy recibiendo la cantidad
correcta de daño en comparación con el
multiplicador de la Voy a hacer click derecho y decir Obtener multiplicador de Daño de Ascensión Podemos tomar esto
y decir Break ahora, podemos
multiplicarlo con éste. A lo mejor debería
haberlo llamado algo más corto, pero siempre es bueno tener un nombre descriptivo para
saber lo que estás haciendo. Básicamente, cuando
saquemos este DPS, queremos tomar esto
y decir multiplicar Y sólo voy a desconectarlo de
aquí y ponerlo aquí. Realmente no hace la
diferencia, pero se ve mejor. Voy a multiplicar el
DPS con el multiplicador, entonces voy a arrastrar esto ahora y enchufarlo aquí
en su lugar Simplemente arrástralo hacia abajo, para que
se vea mejor así. Ahora estamos multiplicando el
multiplicador, así por ejemplo, si el multiplicador es tres, podemos decir tres veces el Y mostrará o aumentará el daño del cursor en
la cantidad correcta. Ahora necesitamos la Novela esencial. Necesitamos saber en qué
nivel estamos? Vamos a crear esta variable
dentro del modo de juego. Si abres el
modo de juego y dentro de aquí, vamos a crear una nueva variable
llamada Nivel Ascensión Cambiemos
éste en un entero. Compilar por ahora. Realmente no hemos hecho nada con este nivel de ascensión, pero en realidad no
importa ahora mismo Volvamos al jugador
y tomemos el modo de juego. Ahora si lo puedo encontrar
aquí, nivel de modo juego. Y podemos simplemente tomar esto obtener nivel de
Ascensión y seguir adelante y
conectarlo con éste Básicamente estamos obteniendo
el nivel de ascensión, que ahora mismo es cero, si el nivel de ascensión es cero, si vuelves a
las tablas de datos en el nivel de cero, vas a conseguir que el
multiplicador sea uno, lo que básicamente significa que
el DPS se multiplica por uno, que aquí es solo el No va a
cambiar nada. No obstante, si asciendes
la primera vez, así tienes ascensión de nivel uno, vas a suplir todo
el daño en tres, lo que significa que tienes
300% Ahora encontremos todos
los lugares que tenemos DPS. Y sólo voy
a copiar todo este código para que no
tengas que volver a escribirlo. Copia todo este código. Ahora voy a llevar esto
de nuevo aquí. Da click en el primero,
es solo esto aquí. Haga clic en el segundo nueve. Info, aquí no hacemos
ningún daño. Da click en el tercero, no
hacemos ningún daño. Da click en el cuarto, aquí tenemos algunos daños. Esto está dentro de
la actualización de la función. Total DPS actualización total DPS. Vamos a hacer esto,
entonces vamos a tomar este DPS nuevamente multiplicado por el
multiplicador de daño de
ascensión y
enchufarlo aquí Por cierto,
ya puedo ver que aquí tenemos un error porque estamos actualizando la cantidad total de DPS obteniendo todos los
artículos que hemos comprado Estamos obteniendo TPS para ellos, y luego los estamos agregando
al DPS total Esto en realidad también
está sucediendo con el ratón aquí. De hecho, está sumando
esto al total de DPS. Lo que quiero hacer aquí
para evitar el error es que quiero hacer clic en el ítem. Entonces voy a decir que no es igual. Y seguir adelante y seleccionar
no igual a clic del ratón. No queremos agregar los clics
del mouse DPS en el DPS total Un pequeño bicho que estaba aquí. Solo asegurémonos de que no
añadamos eso. Y voy a hacer una sucursal. Adelante y conéctalo
aquí. Y vuelve a conectarlo. Y ahora debería
funcionar bien. Ahora, sólo voy a
reestructurar las cosas otra vez. Bien, ahora esto
está terminado y
estamos multiplicando esto por
el multiplicador de ascensión Sigamos al siguiente. Si solo vuelvo y encuentro mis referencias de antes
y hago clic en la siguiente, aquí también estamos haciendo DPS Esto es actualizar el
ToolTipi. Otra vez. Pégalo en. Adelante, multiplica esto
con el multiplicador de Ascensión, y vuelve a conectarlo aquí. Ahora nos estamos multiplicando correctamente
. Compilar Y tenemos un bug aquí. Dice, no tenemos
la referencia del modo de juego, y en realidad no lo tenemos. Sigamos adelante y consigamos
la referencia de Gamode. Ahora, antes de hacer todo esto, voy a decir
obtener modo de juego y luego digamos obtener referencia del modo de
juego. Y adelante y conecta esto. Esto, voy a golpear
desde aquí y conectarlo. Ahora también puedes volver a hacer clic
derecho y promoverlo
a nuestra variable si lo deseas. Hagámoslo realmente
para que sea un poco más limpio. Conéctate, puedes
hacerlo en ambos sentidos. O simplemente
conéctalo directamente o ahora toma esta variable de modo de juego
y conéctalo aquí abajo. Eso es
lo mismo. Bien, vamos a compilar ahora también. Asegurémonos de que
el daño del cursor se muestre correctamente. Y se mostrará correctamente porque ya
estamos multiplicando aquí en el jugador
cada vez que hicimos el mayor daño del cursor
dentro del Aquí, cada vez que
compramos un artículo
ya lo multiplicamos por
tres por ejemplo, y lo enchufamos en
el daño del cursor. Este daño del cursor
debe ser correcto. Este daño aquí ya se
multiplica ahora por el multiplicador de
adhesión. Entonces esto también es correcto. Ahora
volvamos a repasar
a las referencias . Haga clic en el siguiente. Aquí no hay DPS. Haga
clic en el siguiente. Aquí tampoco hay DPS. Ahora bien, todo debería
estar funcionando bien. Ahora, solo para asegurarse de que el daño de ascensión se
muestre correctamente Ahora volvamos al modo
de juego aquí. Cada vez que reiniciamos el juego, tomemos este nivel de ascensión
y digamos más, más Vamos a agregar uno al nivel
de Ascensión
cada vez que ascendemos Entonces estamos recibiendo la
cantidad correcta de daño en esto. Ahora sigamos adelante y probemos esto. Si hago clic en Play, y
compro uno de cada aquí, voy a comprarlo el último, y voy a dar
click en Ascend Este no se
muestra realmente correctamente, Esto es solo un texto estático. Pero hagamos clic en cancelar
y veamos el daño aquí para ver si realmente se
muestra correctamente. Yo, cada ratón lo está consiguiendo da 25 DPS y cada
pluma ligera da cinco DPS Entonces esto debería mostrar 15. Por ejemplo, si hago clic en Ascend,
y da click en Ascend Ahora esto está mostrando 15. Esto está mostrando 75, lo cual es todo correcto. Entonces ahora tengo el triple de daños. Déjame solo tratar de jugar, y déjame intentar ascender de nuevo. Bien, así que ahora voy
a comprar el último artículo aquí. Haga clic en el último elemento. Puedo volver a ver esto.
Estoy dando click en Ascend Y luego ascender una vez más. Y ahora el daño de la
pluma ligera es 35, lo cual es correcto, y 175, porque ahora el
multiplicador es siete, todo está funcionando
correctamente porque siete
por cinco es igual a
35, lo cual es correcto. Y ahora tenemos la cantidad
correcta de daños. Bien, ahora esto está funcionando. Y también sólo para asegurarnos de
que estamos optimizados, volvamos a la comprobación de los criterios de
ascensión cumplidos Siempre que creo bucles, siempre presto atención
a si realmente estoy ejecutando este bucle
en tiempos necesarios. Por ejemplo, aquí estamos ejecutando el bucle
que es correcto. No obstante, ¿
realmente necesitas correr este bucle siempre que se cumplan los criterios de
ascensión Porque ahora sabes que se ha cumplido con los criterios de
ascensión. Realmente no necesitas volver a ejecutar este bucle porque
sabes que se cumple. Toma aquí este lingote, criterios de
ascensión cumplidos
al inicio del código Nosotros sólo queremos ejecutar esto. Los criterios de ascensión cumplieron con
esta función aquí. Queremos ejecutarlo siempre que
este sea falso. Arrastremos de esto
y digamos lingotes, ascensión no es cierta, que significa que es
falsa. Esto es falso. Queremos seguir adelante y verificar si se ha cumplido con los criterios. Sin embargo, si esto se vuelve cierto, no
vamos a correr
porque
básicamente estamos obteniendo falsos y no
estamos ejecutando el código. No queremos ejecutar
todo este código. El criterio de ascensión ya se ha cumplido porque
es innecesario Ya
cumplimos con ese criterio. Bien, recuerda que tenemos que
hacer que esto sea falso en
algún momento porque de lo contrario la
próxima vez que subas esto
va a ser cierto por defecto porque lo
pones en verdadero aquí abajo y nunca más
lo pones a fallas Volvamos al juego de
reinicio después de esto. Recuerda tomar los
criterios de ascensión cumplidos y establecerlo falso cada vez que reinicies el nivel o reinicies
el juego aquí Adelante, guarda todo y pasemos
al siguiente.
117. 13.08 Visualización del multiplicador de ascensión: Bien, en esta etapa
final tenemos que
mostrar la cantidad correcta de
daño que se multiplica. Entonces, si voy a la UI aquí
en el pop up de ascensión, básicamente
necesitamos mostrar
la cantidad correcta aquí Ahora solo voy a
escribir un número falso, así que en realidad podemos ver que lo
estamos cambiando dinámicamente. Entonces sólo voy a
escribir 00 por ahora aquí. Pasemos ahora a la gráfica y
básicamente necesitamos cambiar este texto. Ahora se llama temporizador redondo de
texto, y en realidad voy a cambiar
a texto Ascensión en su lugar, así que tiene más sentido.
Y vamos a compilar. Y ahora podemos configurar este texto siempre que este pop up se abra. Cada vez que hago clic en el botón
Ascent aparece, y queremos
actualizarlo de inmediato Podemos hacerlo dentro
del constructo del evento, que se juega cada vez que se abre
este pop up. Hagámoslo aquí. Lo que queremos hacer es que queremos
establecer el texto. Tomemos este texto
y digamos de nuevo texto establecido. Tenemos que usar un formato de texto porque estamos cambiando
las cosas dinámicamente. Nuevamente, dirija desde aquí y diga formatear texto.
Salga y selecciónelo. Se puede ver que estamos usando los
mismos nodos una y otra vez. Si solo sigues practicando, recordarás todos los
nodos y básicamente sabrás qué hacer cada vez que
tengas que crear una
nueva mecánica tú mismo. Volvamos al diseñador. Sólo voy a
copiar todo esto. Voy a pegarlo aquí. Dirá que
reiniciarás el progreso, pero ahora necesitamos estos
corchetes aquí en su lugar. Y decir daño por
ciento, por ciento así,
luego más daño. Va a decir que
reiniciarás el juego,
pero con, por ejemplo, un
300% más de daño. Intentemos hacerlo. Vamos a conectar éste primero. Ahora lo que necesitamos usar
es igual que antes, necesitamos hacer clic derecho y
decir obtener Multiplicador de Ascensión Porque aquí es básicamente de donde estamos obteniendo la
información. Vamos a romper ahora otra vez
para el nivel Ascensión, necesitamos el modo de juego para
tener esta información Vamos a Drake todo aquí. Digamos que consigue el modo de juego. Y luego
golpeemos desde aquí y digamos obtener referencia del modo de juego. Salimos a conectarlo. Ahora aquí para el modo de juego, necesitamos el nivel Ascensión Adelante y consigue el nivel de
Ascensión, y podrás
conectarlo aquí ¿Cómo obtenemos el porcentaje? Ahora estamos obteniendo
el nivel de Ascensión. Lo que tenemos que hacer
es que tenemos que obtener el multiplicador después
de reiniciar el juego. Porque básicamente lo que estás
haciendo aquí es cada vez que abres este pop up y solo estás obteniendo
este nivel de ascensión, que es cero ahora mismo, porque comienzas en el nivel de
ascensión cero, va a decir uno, básicamente
al 100% Ahora necesitamos dividir el multiplicador
que está después, si solo abro la tabla de datos para que sea más comprensible lo que tenemos que hacer
es que tenemos que dividir este número que viene
después cada vez que
ascendemos lo que el número
está aquí dividido por el actual 13/1 Y siempre
puedes simplemente arrastrar esto
a la vista y decir 3/1 que es tres veces 100, eso es 300% Ahora si solo lo
intentas con el otro, si lo intentas con el siete, digamos que ascendimos
una vez y estoy
en el nivel uno y necesito mostrar cuánto porcentaje de daño vas a aumentar
cuando vayas al nivel dos. Ahora vamos a
decir 7/3 veces 100. Eso equivale a 233% más de
daño de aquí a aquí, lo que
tiene total sentido. Hagámoslo. Lo que tenemos que hacer es tomar este nivel de ascensión, agregarle uno,
porque necesitamos obtener lo que es el siguiente
multiplicador de nivel de ascensión Ahora cuando tenemos esta
información, por ejemplo, es siete dividida,
por ejemplo, 7/3 que es la actual
, la actual Básicamente necesitamos
copiar todo esto y tenemos que eliminar este más uno y simplemente
salir y conectarlo. Básicamente estamos diciendo, ¿cuál es el siguiente daño multiplicador? Estamos dividiendo esto
por el actual. Entonces esto necesita ser
convertido en porcentaje. Ahora puedes hacerlo de dos maneras. O puedes tomar
esto y decir como porcentaje y puedes salir y seleccionarlo y conectarlo aquí. Ahora bien, no me gusta este
método porque te
va a mostrar
los decimales. Por ejemplo, si aquí es 7/3 y decimos
multiplicado por 100, va a decir
233.33 no me gustan flotadores ni
los
decimales de los que quiero que quede sin En cambio sólo voy a decir multiplicado por 100 así. Entonces puedes decir piso
y puedes leer al respecto,
si sostienes el mouse sobre
él , dice -1.6 se convierte en
-2.1 0.6 se convierte en uno, o puedes usar el llamado
round Y ésta es
básicamente lo contrario. 1.6 se convierte en dos, y así sucesivamente. Sólo voy a decir palabra. Básicamente va a eliminar los decimales y luego te va a
mostrar esto. Ahora bien, esto debería funcionar bien. Ahora si lo conecto aquí y
va a configurar el texto cada vez que abro este pop
up y pueda compilar. Y veamos si
funciona ahora si
compro cada uno de esos
artículos como antes, y luego puedo dar click en As. Ahora va a
decir vamos a reiniciar el avance pero con
300 daños más. Ahora necesitamos el porcentaje,
obviamente, el signo. Así que volvamos y
solo arreglemos esto rápidamente. Si solo hago clic aquí
y pongo un signo de porcentaje, eso debería funcionar,
simplemente bien compilar. Bien, así que ahora
voy a comprar el último y
voy a hacer click en As. Y ahora
me va a mostrar 300% lo cual es correcto. Ahora voy a dar
click en Ascend, y voy a
volver a jugar el juego y ver si todo
está funcionando ahora mismo Voy a comprar el último artículo una
vez más y voy a
ascender por segunda vez Y ahora va a decir que
reiniciarás la parte de progreso con 233% más de daño,
adelante y ascenderás Y ahora se puede
ver que todo se multiplica simplemente correctamente, bien. Entonces eso fue todo. Por ahora, todo
está funcionando correctamente. Y ahora podemos continuar a la siguiente sección donde
estamos ultimando el juego Y podemos seguir adelante
y
limpiar todo y podemos empaquetar el juego. Así que sigamos adelante y saltemos
a la siguiente lección.
118. 14.01 Limpieza del proyecto: Bien, así que ahora hemos
terminado con el juego y ahora tienes que
limpiar el proyecto. Ahora bien, lo que suelo hacer es que
si tengo un proyecto más grande, lo limpio al menos
una vez a la semana. Entonces tal vez todos los viernes, todos los sábados, no lo sé. Por lo general, no lo
limpio todos los días porque el código
cambia constantemente. Entonces a veces se
limpia algo, pero hay que
cambiarlo al día siguiente. No tiene ningún sentido
porque hay que
volver a limpiarlo de nuevo así que
es demasiado trabajo. Normalmente lo estoy limpiando una vez la
semana o dos veces
por semana como máximo. Entonces vayamos, por ejemplo,
al plano. Yo sólo voy aquí
en esta lección. El propósito es darte consejos sobre cómo
limpiar el proyecto. Y también voy a limpiar este proyecto y
dártelo como proyecto final. Por ejemplo, si iniciamos
el mando de reproducción. Entonces, si abres el
controlador de reproducción aquí y abres el gráfico de eventos y
ves que está un poco desordenado Lo que suelo hacer es, por ejemplo, aquí arriba, puedes seleccionar todo
el evento, Comenzar, Jugar aquí, y dar click
en haciendo click en C, Tú creas un comentario y yo puedo, por ejemplo, escribir comenzar, Jugar. Sé que es Begin. Juega.
Siempre que me aleje, también
puedo hacer clic en este
comentario, y puedo dar clic en
la burbuja del espectáculo. Cuando se hace zoom, puedo ver esto
cada vez que me alejan. Sé que esta es la jugada de inicio, así que no tengo que acercarme
constantemente para ver de qué se trata. También puedes hacer click sobre él y cambiar el color del comentario. Puedes cambiarlo a
lo que quieras. Puedes cambiar el color aquí, cambiar el alfa, y
así sucesivamente. Haga clic en Aceptar. Ahora también puedes
guardar este color haciendo clic y arrastrando
esto aquí arriba Al hacer clic bien. La próxima vez
que crees un comentario. Por ejemplo, este reproductor
inicializado, puede hacer clic en C. Por ejemplo, puede escribir Inicializar Puedes dar click en Mostrar
Burbuja y Zoom. Por ejemplo, puedes dar click
sobre este color de comentario. Y ahora puedes hacer clic
en el color guardado aquí
arriba. Y da clic en bien. De hecho voy a
hacer esto a lo largo este proyecto antes de
entregártelo. Lo segundo que
puedes hacer es que también
puedes dar click sobre
estas variables. Y puedes darles
aquí una categoría. Por ejemplo, puedo decir widgets, y puedo presionar Enter. Y ahora puedes ver que está
en una categoría de widgets. Si hago clic en el siguiente
widget aquí abajo, puedo hacer clic aquí y
puedo hacer clic en los widgets. Y básicamente puedo hacer
eso por todos ellos. Todos los widgets están juntos
dentro de esta categoría. Y se puede ver que
puedo minimizarlo. Ahora están dentro de aquí. Así también es como puedes
limpiar todas las variables
que tienes. Adelante, compile y
guarde todo ahora. Básicamente se puede hacer eso
en cada plano. Por ejemplo, ir
al modo de juego. En el modo de juego,
tal vez pueda juntar todos estos
puntos de generación Entonces puedo escribir una categoría llamada puntos de generación, por ejemplo Y básicamente puedo
arrastrarlos hasta aquí. Sólo tienes que seguir
adelante y hacer eso. Adelante y limpia tu
proyecto. Crear bienes comunes. Ahora la tercera cosa
que suelo hacer, de
nuevo, seguir adelante y
crear redireccionamientos Como ya has aprendido, haz
doble clic. Crea algunas
notas de redirección e intenta
limpiar tu proyecto
lo mejor posible Lo que suelo hacer también es reorganizar todos los
eventos que he creado Por ejemplo, estos
son los cortes de artículos de tienda, este es el artículo de generación Por ejemplo, puedes seguir
adelante y tomar esto y pegarlo aquí al lado de esto
y tal vez comentar esto. También puedes
volver aquí y ver si
están en el orden correcto. Por ejemplo, si quieres que esto esté aquí abajo en su lugar, y así sucesivamente. Así que sólo tienes que seguir adelante y tratar organizarlo lo mejor posible. Si hay algunas cosas que
quieres convertir en una función en lugar de en un evento, también
puedes hacerlo. Por ejemplo, digamos
este juego de reinicio. Si quieres
hacerlo como una función, vamos a seguir adelante y
convertirlo en una función. Por lo general, para las funciones
no se pueden convertir cosas en una función si
son eventos cronometrados Por ejemplo, si tengo un retraso. Puedes ver este icono aquí
significa un evento cronometrado, fy rod. Haga clic en esto y diga
colapsar para funcionar. Me va a dar un error
porque no se pueden convertir funciones en funciones. Pelea, haz clic y di línea de tiempo también y agrega una línea de tiempo. Este también es un tiempo uno. No puedo hacer clic derecho y
colapsar para funcionar, Esto me dará un error. Puedo ver esto
mirando el icono
en la parte superior y no
tengo nada de tiempo. Básicamente puedo cambiar
esto en una función. Normalmente lo hago
a veces porque si
creas demasiados eventos
en un gráfico de eventos, realidad empezará a
hacerlo. Si tienes un juego lo suficientemente grande, comenzará hasta aquí cada vez que entres en
este plano Ahora puedes
convertir estos eventos en funciones o puedes
hacer nuevos gráficos de eventos. Si haces clic
aquí arriba en el plus, haces un nuevo gráfico de eventos. Por ejemplo, lo hemos hecho en el curso de disparos en primera
persona. Por ejemplo, a esto se le puede
llamar ascensión. Y puedes tener todo el código de ascensión dentro de aquí Si es mucho código, lo que básicamente puedes hacer
es que puedes copiar todo esto básicamente controlar x para
borrarlo y puedes ir a
la siguiente gráfica par. Puedes clicar control V. Ya lo tienes dentro
de esta gráfica par. No tiene que verlo aquí en el normal, pero
lo tiene aquí abajo. En cambio, solo vamos a hacer clic en control Z porque en
realidad no tenemos mucho código aquí. Voy a eliminar
esta gráfica par si quieres convertir
las cosas en una función. También puedes hacerlo
volviendo al gráfico de
eventos aquí. Entonces lo que haces o
lo que normalmente
hago es que puedo seleccionar todos los nodos
aquí sin el evento. Puedo escribir clic contraer
a una función de nuevo. Por lo general, para empezar lo llamo. Si lo acabo de arrastrar hacia aquí, lo
llamo reiniciar juego. Después escribo click en este evento para ver
dónde lo he usado. Encuentra referencias y
da clic en el icono, todos los lugares en los que lo
he usado. Estas referencias son
básicamente sólo ésta, no es
lo que he usado. Al hacer clic en el
siguiente, Reiniciar juego. Aquí abajo puedo arrastrar desde este modo de juego ahora
y decir Reiniciar juego. Ahora estoy usando mi función
en lugar de mi evento. Puedo borrar esto y
puedo conectarlo aquí. Acabo de compilar aquí, Vuelve al modo de juego, borra este evento ahora. Y borra esta función,
porque ahora
básicamente estás usando esta función
para reiniciar el juego. También uso este método a
veces para
limpiar mi gráfico de eventos. Cuando puedo ver
que algunos eventos realmente
no necesariamente necesito, puedo cambiarlos
en una función. Ahora bien, ¿cuál es la
diferencia entre esta función que he
creado y este evento? Absolutamente nada. solo limpia tu gráfico de eventos Ahora puedes ver que se
pone más limpio. E incluso si
quieres que este
nivel desbloqueado sea una función, puedes hacerlo
colapsándolo en una función Recuerda hacer click derecho en
esto, encuentra referencias. Adelante y da clic
en el pequeño icono. Dondequiera que hayas usado esto
aquí en la base enemiga, puedes
convertirlo en una función y puedes usar la
versión de función en su lugar. Y luego puedes
eliminar éste. Sólo tienes que seguir adelante y
limpiar tu proyecto de esta manera. Sigue adelante y recuerda
guardar tu proyecto siempre, y saltemos
al siguiente, o empaquetamos el proyecto.
119. 14.02 Empaquetado del juego: Bien, así que ahora es el momento de
empaquetar el proyecto. Así podemos enviársela
a amigos y ellos pueden tratar de jugarlo
o también a la familia. Entonces para hacer esto primero
antes de empaquetar, me gustaría tener el
depurador o el registro abierto Así que los registros de salida si
usted acaba de hacer clic en Ventana y Registro de Salida
y para mostrar esto. Entonces ahora podemos ver si tenemos algún error al exportarlo. Ahora antes de hacer esto, voy a hacer clic derecho
aquí y borrar los registros. Empiezo de fresco, así puedo ver lo que está
pasando ahora mismo. Al hacer clic en los filtros de aquí arriba, se pueden
ver los mensajes de
advertencias y errores. A veces solo elimino
los mensajes así, solo
puedo ver las
advertencias y errores. Esto es básicamente
lo importante, para que podamos arreglarlos. Pero por ahora, vamos
a tomar el mensaje. Déjame minimizar esto un poco para que pueda
ver realmente lo que estoy haciendo. Así mismo, dando clic aquí
arriba en las plataformas, yendo a Windows, y
luego seleccionando Envío. Ahora cuando seleccionas el envío, también
tienes que
ir básicamente aquí. Permítanme cerrar esto por ahora. Al ir a la Editar configuración
del proyecto, aquí, tienes que ir
a Packaging. Ahora dentro del empaque, lo importante es
el Avanzado por aquí, dando clic en Avanzado.
Entonces bajemos. Ahora en aquí en el Avanzado, tienes que incluir
los mapas que quieres
empaquetar aquí en la lista de mapas para incluir
en una compilación de paquete, tienes que hacer clic en el más, luego tienes que dar
click en los mapas. Al dar click sobre estos tres puntos, selecciona los mapas que tengas. Si justo ahora estamos
dentro del proyecto aquí
en la carpeta de contenido y
creamos esta carpeta de mapas. Voy a seleccionar
este mapa, Dungeon. Básicamente el
mapa principal
con el que estamos trabajando haciendo clic en Abrir. Ahora bien, si tienes alguna
película, por ejemplo, cuando los juegos arrancan y
tienen una pantalla de
inicio, arrancan película, puedes seguir adelante e incluir eso también. Si tienes directorios que
son extra en tu motor, no los usas, también
puedes agregarlos aquí. Pero básicamente esto es todo
lo que tenemos que hacer aquí. También para la configuración
construida del proyecto, voy a cambiarlo a envío
en su lugar. Y dice que si el proyecto tiene código o ejecuta un editor construido
localmente, en realidad
estoy a favor de la compilación solo voy a
decir siempre construir. Siempre que lo hagamos en un
envío aquí para la reconstrucción, voy a hacer clic en
eso o distribución. Voy a marcar esto también. Y ahora ya estás listo
para mejorarlo también. Continúe y haga clic en Configuración
del proyecto. Una vez más, aquí arriba, busca FPS suaves,
aquí, velocidad de fotogramas suave. Esto es muy importante
marcar , porque si no
haces esto, va a ejecutar tu juego
al FPS más alto al que pueda correr la computadora del
jugador. Lo hice con Farm Tail para empezar por error porque no
conocía esta
opción la corremos a, por
ejemplo, 500 FPS. 600 FPS. Y realmente va a lastimar sus computadoras
porque van a funcionar súper rápido
y se puede escuchar los fans corriendo súper rápido. Al hacer clic en esto, no
necesito
tener más de 60
FPS en este juego. No es un
juego de disparos ni nada. Y puedo tener tan
bajo como 22 FPS si la computadora es súper lenta
por parte del jugador. Pero básicamente, vamos a sacar al
máximo el FPS a 62. También puedes llegar a
122 FPS si así lo deseas, pero sólo voy a dejar que
sea a 62 PS. Ciérralo hacia abajo. Haga clic en Archivo, Guardar todo. Ahora puedes hacer clic en Plataformas, Contenido del paquete de
Windows. Pero déjame abrirme otra vez. La salida de mi ventana se bloquea para que
pueda ver lo que está pasando. Haga clic con el botón derecho para borrar
las cerraduras antes de hacer esto. Ahora también lo que debes
recordar hacer aquí también, haz clic en Filtrar y
mostrar todo también. Puedo ver todos los mensajes. Yo
también puedo ver todos esos . Simplemente todos
ellos marcaron Siga adelante y haga clic en Plataformas, y luego haga clic en Windows. Y luego seguir adelante y
empaquetar el contenido. Ahora he creado una carpeta aquí en mi escritorio
llamada Paquetes. Simplemente básicamente,
sigue adelante y crea una nueva carpeta en algún lugar tu computadora,
realmente no importa. Y siga adelante y haga
clic en Seleccionar carpeta, y va a
empaquetar dentro de aquí. Ahora va a
llevar algún tiempo. La primera vez que
hace esto y
lo, suele mostrar un
par de errores porque nunca
he empaquetado por primera vez
sin ningún error. Porque hay algunos
errores aleatorios que aparecen en algún momento. Bien, así que ahora puedo
ver que estamos recibiendo un bicho aquí y dice Fallo de cocinero
desconocido. Y solo dejas de empaquetar
porque tenemos un error. Entonces da clic aquí arriba y da
clic en los mensajes, y veamos qué es. Y dice estructura propiedad y dice Estructura desconocida. Ahora bien, este es un
error conocido dentro del motor
uneral y
es un poco molesto No sé por qué sucede, pero básicamente dice que
tienes una estructura desconocida. Realmente no tiene
ningún sentido porque lo
logramos y está funcionando
y todo está bien. Pero solo presta atención a dónde está y está
dentro de tu UI. Wb enemigo info. Si vas a tu interfaz de usuario, ve a la interfaz de usuario,
abre la información del enemigo. Esto es básicamente
lo que te está diciendo. Abre la información del enemigo, ve a Gráfica. Lo único que debes
hacer por alguna razón es hacer clic en Archivo,
Refrescar todas las Notas. Y entonces esto debería arreglarlo. Archivo refrescar todas las notas. Entonces el siguiente es el Cod de
nivel B en la UI. Simplemente minimice esto, voy
al nivel Bacalao aquí también. Archivo gráfico, refrescar todas las notas. Lo que suelo hacer también es refrescar todas las notas
dentro de la biblioteca. Al abrirlo, haz clic
en el primero, el archivo de información enemigo,
actualiza todas las notas. El segundo
actualiza todas las notas, la tercera solo para asegurarnos que no volvamos a recibir
este error. Siempre que cocinemos y hagamos clic en Guardar todo, ahora debería funcionar. Al hacer clic en Plataformas
nuevamente, en realidad, permítanme abrir primero el
registro de salida P, hacer clic con el botón derecho, borrar el archivo de registro o plataformas, y luego empaquetar el proyecto
una vez más aquí. Ahora dando click aquí arriba y mostrar
todos los mensajes también solo para ver si tenemos alguna casilla ahora.
Realmente no debería suceder. Por lo general solo
sucede cuando dice Estructura desconocida, solo hay que refrescar todas las notas
por alguna razón. No sé por qué sucede,
pero es un poco molesto. Pero ahora se puede
ver que todo se está cocinando y todo
está funcionando bien. No tenemos errores.
Solo toma un minuto aquí. Ahora, siempre puedes hacer click
aquí arriba y eliminar los mensajes. Ahora el cocinero está completo, el
paquete está completo. Lo que suelo hacer es eliminar los mensajes para ver si
tengo algún error en mi juego. Y se puede ver que el
proyecto está súper limpio. No tenemos ni una sola advertencia. No tenemos una sola era. El juego está funcionando a la perfección, y esto es lo que queremos. Ahora vamos a la
carpeta Paquetes dentro de mi escritorio. Y dentro de aquí puedo abrir esta carpeta de Windows
que ha creado, y ahora el juego
está dentro de aquí. Intentemos ejecutar este juego
fuera del motor. Como puedo ver, aquí tengo
algunos errores, problemas que necesito arreglar. Pero como puedes ver, el
juego está funcionando bien. Necesito volver a aplicar
la música y así sucesivamente. Pero también puedo ver que el
fondo está borroso. También puedo ver que este texto está
demasiado cerca el uno del otro. Así que sigamos adelante y
arreglemos esto y
volvamos al cuatro Para cerrarlo, voy a eliminar
esta carpeta por ahora. Ahora veamos cuál es el problema
borroso. Ahora el problema borroso
es si abres,
por ejemplo, esta textura prisión
mazmorra Bajemos aquí en
el ajuste de textura. Vamos a hacer clic en Avanzado. Aquí abajo se ve algo
llamado filtro nuclear. Es necesario cambiar este a
más cercano en su lugar. Cuando la cambias a la más cercana, esto significa que
no va a difuminar tu textura cada vez que la
exporte o la empaques. En realidad tienes que hacer eso
para todas las texturas. Ahora veamos cómo
podemos hacer esto fácilmente. Ahora si hago clic en Activos,
y hago clic aquí arriba , baja aquí, y aquí
tenemos una textura, solo
voy a darle
click aquí. Al hacer esto, podemos
ver todas las texturas que
tenemos en el juego dentro
de esta carpeta Assets. Vamos a tratar de hacer
eso por todos ellos. Permítanme simplemente hacer
clic en el primero, Shift, buscar en el último, hacer clic
derecho y luego ir a Asset Action Edit Selection
en Property Matrix. Sólo estamos tratando de hacer
todo a la vez. Si vuelvo a hacer clic en la
textura aquí arriba, y puedo ver este filtro,
cámbielo a la más cercana, que es la
configuración correcta que podemos guardar. Entonces veamos si los
azulejos estaban incluidos aquí. Puedo ver que los azulejos están incluidos.
Todo está bien. Todo está incluido aquí. Básicamente, todo
debería funcionar bien. Bien, ahora esto está hecho. También tenemos un
problema con el nombre. Vamos a arreglar eso también. Si solo hago clic aquí arriba y me quito esta textura
para poder ver todo, una vez más, puedo dar
click sobre el enemigo. Si vuelvo a los planos, abro los enemigos
y la base enemiga Y hago clic en la viewport. Ahora dando clic en la barra de salud, solo
necesito mover la barra de
salud ligeramente por debajo, creo que si das click
arriba aquí, da clic en Reproducir. Como juego independiente, deberías poder ver
cómo se ve aquí
sin intentar
empaquetar el proyecto abierto aquí en mi segundo monitor y
puedo ver cómo se ve. Ahora ya se puede ver que ya nada
está borroso. No obstante, como puedes ver ahora el nivel y podemos moverlo ligeramente hacia abajo y
la salud también. Vamos a cerrarlo. Haz clic
en los widgets de Enemy Info. Voy a moverlo a -25
también para la barra de salud. Probemos -45 Y vamos a compilar
y hacer clic en reproducir de nuevo. Ahora. Se ve mucho
mejor cuando está pantalla
completa y todo se ve jugable y todo
se ve bien Si quieres También puedes hacer lo sin filtrar para
la interfaz de usuario solo para asegurarte todo se vea
bien y no borroso Siempre puedes
volver a la interfaz de usuario. Si voy al contenido,
abro mis imágenes, básicamente estos
elementos aquí también. Si solo cambio a la
derecha, clic derecho, seleccionando acción
ácida, selección en matriz de propiedades, voy a textura y luego el filtro debería
ser el más cercano también. Para esos, permítanme simplemente
abrir las texturas aquí también. Este es el efecto hit. Solo para asegurarte que el
efecto hit no sea borroso también, solo ábrelo y
vuelve a bajar a Avanzado Cámbiala a la más
cercana, ciérrala. Ahora también para los íconos. Haga clic derecho, establezca acciones, edite la textura de la matriz de propiedades y luego cámbiela a la más
cercana, ciérrela a fuentes. En realidad no hace falta
hacer nada aquí. Ahora para los botones. Nuevamente, edítalos y haz el
filtro de textura al más cercano. Ahora eso se hace para todos
ellos. Vamos a hacer clic en Guardar. Voy a poner el volumen de mi música al
valor predeterminado, que es uno. Una vez más también voy a, en lugar de los planos y
dentro de la base enemiga enemiga, voy a reactivar
mi sonido para el año enemigo que
desconecté Compilar Guardar todo. Ahora permítanme seguir adelante e intentar empaquetar el
proyecto una vez más. Ahora que el proyecto
ha sido empaquetado, permítanme
seguir adelante y hacer clic en el clicker de Dungeon una vez más para asegurarme de que
todo esté funcionando Y ya se puede ver que ya nada
está borroso. Todo se ve bien,
la interfaz de usuario se ve bien, Todo el sonido está funcionando. Puedo jugar básicamente solo
reiniciando las monedas. Eso es algo que me perdí, pero en realidad no es un
problema en estos momentos. Pero se puede ver que todo está funcionando y la lista
está funcionando aquí, y la Ascensión está
funcionando básicamente también Y puedo ver que da
la cantidad correcta de daño y ahora tenemos
un juego terminado. Bien, así que ahora ya
terminamos con el proyecto. Y deberías estar muy
orgulloso de lo que has hecho hasta ahora porque
hemos pasado por mucho. Hemos hecho puntos de generación, hemos hecho daño a los enemigos, hemos hecho todos estos
dos D poniéndolos juntos,
la interfaz de usuario, codificando la interfaz de usuario y así sucesivamente Entonces has hecho mucho trabajo, y espero que hayas
aprendido mucho de este curso. Y ojalá también
fuera muy divertido aprender. Y si lo deseas, también
puedes echar un
vistazo a mis otros cursos. Tengo muchos cursos en
profundidad y
sigo creando nuevos
cursos hasta el día de hoy. Así que muchas
gracias por ver. Espero que te
hayas divertido mucho. Sí me divertí mucho
creando discursos. Y recuerda, si
deseas obtener ayuda 2047, siempre puedes unirte a
mi servidor de discurso Somos una comunidad a la
que le encanta ayudar. Y también podemos hablar cosas en el
desarrollo de juegos en general. O puedes mostrarme tu trabajo. Se lo puede mostrar
a la comunidad. Comunidad realmente sana para estar cerca. Muchas gracias
por inscribirte en este curso y espero que
te diviertas mucho Y te veré
en la siguiente.