Transcripciones
1. Introducción a mi clase de Roblox: Hola, soy Nico, también conocido
como Calvin draw y bienvenido a mi clase de principiante para roadblock scripting aquí en Skillshare. En esta clase, aprenderás tus primeros pasos para
hacer juegos con Roblox. Incluso los principiantes completos
son bienvenidos aquí, ya que hay una introducción a Lua
incluida en esta clase. Después de que te hayas
familiarizado con Lua, veremos algunos conceptos
básicos de Roblox como detectores de clics, cambios de posiciones y
el evento Tocado. Y claro, camino, mucho más equipado con
ese conocimiento. Luego pasarás a
hacer tu proyecto. Tu primer juego ONE, que va a ser un RB. Puedes usar todo lo que
aprendiste y más, deja que tu creatividad se vuelva salvaje. Al final,
incluso va a haber algunos temas
intermedios adicionales que también van a
ser muy útiles para la
creación de juegos Romanov. Entonces, ¿a qué esperas para inscribirte en esta clase ahora y comenzar los primeros pasos para crear
juegos increíbles y Roblox Te veré en
la primera lección.
2. Descripción general de la clase: Bien, Bienvenido a los núcleos
principiantes de Roblox. Y esto va a ser
un breve resumen sobre lo que puede esperar
en este curso. El primero de todo,
hay una baja introducción incluida en este curso, lo cual va a ser
muy, muy útil. Entonces, si nunca has
escrito en Lua en absoluto, te recomiendo encarecidamente
pasar por esto. Esto te va a ahorrar horas de dolor de cabeza porque no
podrás
hacer juegos adecuados
y Roblox si
no sabes al menos un
poco de bucle tras bucle, hablaremos
del Roblox Studio. Vamos a hablar de
referenciar partes, los diferentes tipos de guiones. Vamos
a ver algunos eventos, algunas funciones, o agregar movimiento. Incluso vamos a echar un
vistazo a un poco de fuerza y limitaciones cuando hablen la diferencia entre
jugadores y personajes, vamos a hacer una
tabla de clasificación piezas coleccionables, agregando un rastro al jugador
y algunas cosas más. Después de que hayamos terminado con
lo básico, vamos a hacer un juego personalizado que
va a ser un obstec, y eso también va a ser
realmente increíble. Después del RB, también tengo algunos
temas intermedios que cubriremos,
como publicar el juego, agregar imágenes GUI, agregar imágenes GUI, almacenar los datos con un servicio de almacenamiento de
datos, y algunas
cosas más que también pueden ser muy útiles a
lo largo del curso. Por cada conferencia,
obtendrá un archivo RB Excel. Así que básicamente no
obtuviste una instantánea por cada conferencia en términos de los guiones
que hemos estado escribiendo, Roblox tiene algunas herramientas bastante
poderosas para crear. Entonces espero que vayas
a disfrutar el viaje de hacer tu propio
primer juego de Roblox. Te veré en
la próxima conferencia. Entonces, sí.
3. (Lua) Instalación de Roblox Studio: Bien, bienvenidos al curso
de Roblox. Y en esta primera conferencia, estaremos instalando
Roblox Studio en tu PC. Si tienes los roadblocks
Player instalados en teoría, Roblox Studio
también debería estar instalado. Sin embargo, si este no
es el caso, puede navegar a
roblox.com slash create y simplemente hacer clic
en comenzar a crear. Luego comprobará si
tienes instalado Roblox Studio. Entonces debería tener
un pop-up si
no se detiene para que
puedas iniciarlo. Y si no lo has instalado, entonces solo puedes
descargar el estudio. Esto es solo un
archivo EXE, y si comienzas, esto luego
instalará obstáculos en tu PC como
cualquier otro programa. Si no estás conectado
, entonces
estarás leyendo con
algo como esto. Entonces solo pones tu nombre de usuario y tu contraseña e inicio de sesión, el inicio de sesión y luego Roblox
Studio va a comenzar. Sólo vamos
a maximizar esto. Y ya pueden ver, en mi caso, ya
tengo algunos juegos
recientes, ¿verdad? Ya tengo algunos archivos, archivos locales e incluso archivos
en línea para ti. Esto probablemente esté
vacío bajo mis juegos. Sin embargo, debes
tener tu lugar. Siempre hay algo
que existe y bajo nuevo puedes comenzar un nuevo juego. Vamos a crear un nuevo juego. Escojamos la
placa base de aquí. Y luego después de que se cargue, se
puede ver que ahora
básicamente ha creado un nuevo lugar. Están apareciendo muchas cosas. Normalmente cierro la caja de herramientas así
como el editor de
terreno aquí. Y yo también, hago la derecha
y un poco más grande. Y también voy a Ver y enciendo la salida porque esto en realidad es
bastante importante. Nos permite ver
cierta salida y lo veremos muy
pronto en las próximas conferencias. Una cosa te das cuenta
que tienes este archivo con un poco de nube por aquí. Y si presiono Control S, puedes ver que
quiere salvar mi juego, pero quiere guardar esto en la nube de Roblox
por el momento. Lo que sugiero es
no hacer esto. Lo que te recomiendo que
hagas es ir a Archivo y o bien guardar
en archivo o guardar en
archivo, ya que esto realmente lo
hace para que tengas un archivo RB Excel en tu disco duro local
que en realidad es un poco mejor,
especialmente si por ejemplo poco mejor,
especialmente si por ejemplo
te encuentras con un problema,
puedes simplemente compartir tu archivo OB Excel y luego
puedo echarle un vistazo, por ejemplo y también tendrás acceso,
como probablemente puedas ver, a todos los archivos OBX que se generan
a través de este curso. Así que cada una de las conferencias tiene un archivo RB exe donde
todos los activos, todos los guiones que estamos escribiendo, todo está ahí dentro. Y básicamente puedes
ver cada instantánea. Ahora mismo, a
pesar de que tengo esto guardado en el disco duro local, todavía
tengo la Nube. Nosotros solo queremos
cerrar este lugar y van a
archivar abierto desde archivo. Y luego
sólo vamos a abrir el archivo que acabamos de hacer. Y puedes ver ahora este es absolutamente solo nuestro archivo local. Y si tuviéramos que
presionar Control S, y de hecho volverá a guardar en
nuestro disco duro, realmente genial. En las próximas conferencias, primero
vamos
a hacer un poco de introducción
para
familiarizarte con el
lenguaje de programación Lua. Para esto realmente solo necesitamos el Explorer y principalmente
el servicio de script del servidor, así
como el botón de reproducción. Si tuviéramos que presionar
el botón de reproducción, puedes ver que
de repente nuestro
modo de juego se carga y de
hecho cargaríamos en este juego. Ahora puedo moverme
y puedo saltar. Entonces esto básicamente está ahí para
que pruebes tu juego. Pero como dije, todas
las cosas circundantes, muchos de esos botones no
hablarán de ellos en
la introducción del baño. En primer lugar, solo
quiero que consigas una base muy, muy sólida, Señor, esto es sumamente importante. Y luego vamos a hacer cosas
absolutamente increíbles. Y eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya resultado útil y aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
4. (Lua) Tipos variables en Lua: Bien, así que continuemos con la introducción de Lula aquí
para el curso de Roblox. Y en esta conferencia vamos a estar hablando de variables. Ahora, las variables son básicamente
tiendas para ciertos datos. Pero, ¿qué significa todo esto? Bien, hemos
mirado un poco de las
cosas de los alrededores por aquí. Y ahora vamos a
entrar y realmente crear nuestro primer guión y luego
echar un vistazo a eso. Vamos a estar creándolos en el
servicio de script del servidor aquí mismo. Así que sólo vamos a hacer clic en el signo más y luego se puede ver que ya
se usa con frecuencia dice guión. Por lo general, cuando estás
creando algo, quieres las que no
estén grises, las cosas
grisadas son básicamente, uh, normalmente no quieres
crear este tipo de partes y cosas dentro de este
contenedor, por así decirlo. Pero queremos crear un guión,
así que vamos a hacer esto. Se va a
abrir de inmediato el guión. Puedes acercar el arte aquí
manteniendo presionado Control y luego simplemente desplazándote hacia arriba
con una rueda del mouse, haces el más pequeño
desplazándote hacia abajo. Entonces esa es la forma en que
puedes acercar aquí. Eso también es muy importante. Otro guión aquí,
en realidad voy a renombrar esto. Hay un par de
maneras de hacer esto. Haga clic con el botón derecho y
puede ir a Renombrar. También puedes simplemente presionar F2 y luego te va a
pedir que cambies el nombre de esto. O puedes ir, si tienes
las propiedades aquí abajo, solo
puedes ir al script
aquí mismo y luego simplemente llamar a esto. Vamos a llamar a
esto 01 dash variables. Porque esta es, bueno, esta es la primera conferencia, por así decirlo, en la que en
realidad estamos saltando a esto. Y vamos a
llamar a esto variables. Ahí vas. Ahora lo que
aquí es muy importante es que ya llene esta cosa
en particular
con una impresión por aquí. Entonces, si no fuéramos a hacer nada, sólo
voy a borrar
lo que tenía antes. Si no hacemos nada y
solo golpeamos play, ¿verdad? Lo que encuentras es que, bueno, no pasa nada
porque ahora mismo no
tenemos nuestra consola. De hecho, necesitamos
habilitar esto o esto. Vamos a Ver y
queremos ir a salida. Entonces esta es nuestra
salida y
ahora puedes ver helloworld desde, enviado desde el servidor. Vamos a
hablar de esto desde
este guión con un nombre,
oh, variables de un guión. Y desde la línea uno, si volvemos a la pestaña aquí donde
tenemos nuestro guión, podemos ver que esta es la
línea uno, hermosa. Ahora podemos detener
esto y proceder. Entonces solo voy a volver a agregar
mi comentario por aquí. Vamos a estar
hablando un
poco más de comentarios y cosas así. Solo quiero esto en la
parte superior del script específico, solo para que sepamos que
estamos ahora mismo en el script de
variables zero one. Entonces la impresión que
no te importa. Así que sólo vamos
a seleccionarlo, presione Eliminar para eliminar eso. Y vamos a estar
hablando de tipos de variables. Ahora como una visión general de alto nivel, queremos variables porque
queremos guardar ciertos datos. Entonces tal vez queremos
guardar un número. Esto podría ser una puntuación alta, salud la montura,
cualquier cosa por el estilo. Entonces sólo vamos a
decir x es igual a diez. Y ahora en este caso,
cada vez que me refiero a x, esto va a
representar un número. En este caso, esto
representa un entero. Un entero es sólo
un número entero, así que va a ser dos
o cinco, o -27. Eso está todo bien. Pero si queremos
algo así como 20.8, mientras que eso es ahora un flotador, voy a hacer esto
20.8, esto es un flotador. Entonces al declarar esto, correcto, cuando creamos variables, básicamente
queremos decir
el nombre de las variables. Entonces en este caso, x entonces es igual. Este es el operador de asignación, básicamente significa que
estamos asignando este valor a esta variable. Si todo esto es muy nuevo para
ti, no te preocupes en absoluto. Mientras trabajas con esto, vas a poder
captar más y más sobre lo que todo esto significa
por el momento, básicamente
puedes
pensarlo como x es una especie de marcador de posición
que ponemos en su lugar. Y luego cuando el
código corre bien, cuando se ejecuta el script, entonces estamos como, bien, con x, en realidad significan diez. Si bien estamos viendo esto en el futuro un
poco más en detalle. Solo voy a imprimir esto que veas si tenemos una huella y luego un paréntesis y ponemos x dentro
de ella, ¿verdad? Y luego el
paréntesis de cierre, qué es esto va
a dar salida a esto, la pregunta es que esto
va a dar salida X es como la letra X
va a dar salida a un diez. Bueno, vamos a jugar y
verás que da como resultado diez porque estamos sacando el valor que está dentro
de la variable x Una buena metáfora que
mucha gente usa es que las variables son
básicamente solo cubos y contienen
algún tipo de datos. Hay un tipo especial
y eso se llama nulo. Este es un tipo especial de valor, y esto básicamente representa
la ausencia de cualquier valor, también llamado null en ciertos lenguajes de
programación. En este caso, se llama nulo. Esto no quiere decir
que esto sea cero. Esto quiere decir que
no es más que otro tipo de variable, o los booleanos. Ahora bien, los booleanos pueden
ser verdaderos o falsos, a veces también representados con uno o cero, pero
están escritos así. Entonces esto es un booleano
y pueden ser verdaderos
o falsos. Ahora, ¿cómo se ve esto? Bueno, e.g. Podemos decir que es buen curso y nosotros por supuesto,
esperaríamos que esto sea igual a verdad. Y se puede ver que
esto también cambia de color. Entonces básicamente, estas son ciertas palabras clave o
ciertos tipos de variables. Básicamente pueden
cambiar el color de la fuente aquí e incluso comercializar
esto como negrita. Entonces podemos tener otro
booleano, por ejemplo, está conectado a tierra. Esto es algo
que está un poco más cerca de algo así como un juego. Y esto podría ser
igual a falso. Y se puede ver también a veces también nos
sugiere cosas. Entonces como escribimos, correcto, lo que puedes ver, ya
ordenó sugerir, Oh, esto se supone que es
falso y puedes presionar la tecla tab para
autocompletar eso. Por último, también tenemos cadenas. Ahora vamos a estar
hablando de aquellos en una futura conferencia un
poco más en detalle. Pero básicamente, las cadenas son como palabras y siempre
están rodeadas de estas
comillas. Entonces podemos por ejemplo decir HelloWorld. Y ya pueden ver,
eso está bien, aunque tengo
un espacio aquí porque
las comillas lo rodean, podemos guardar toda la palabra. Podrías
encontrarte con el hecho de que tal vez en realidad
quiero múltiples líneas. Esas serían muchas palabras, por ejemplo y la forma en que haces esto es que
puedes hacer corchetes abiertos y puedes ver que los corchetes de
cierre generalmente se generan automáticamente. Y entonces aquí
solo puedes escribir hola, hola estudiante, y luego coma. Y entonces se podía ver,
puedo seguir escribiendo esto. Estoy escribiendo porque es divertido tener múltiples
líneas saludos. Vete, pero déjanos
ahora múltiples líneas. Y esa es la
idea general aquí, ¿verdad? Entonces para resumir aquí al final, a la derecha, las variables en general, nuestros cubos de datos que
contienen algunos datos, y esos pueden tener valores
diferentes y
pueden ser diferentes tipos de datos. Puede contener un
número normal, que es un entero. Puede contener números flotantes, que son números que
tienen un punto decimal. También podría ser nu, que
es la ausencia de algún valor. Puedes tener booleanos
y también puedes tener fortalezas donde fue eso
para esta conferencia aquí mismo. Espero que esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces sí.
5. (Lua) Salida y comentarios: Bien, continuemos con
la introducción de Lula aquí para el curso de bloqueos viales. Y en esta conferencia,
vamos a estar viendo los comentarios de salida y un poco de cómo leer
guiones para que empecemos una vez más, en el servicio de script del servidor, vamos a hacer clic en
el pequeño plus aquí, crear un nuevo script. Y vamos a renombrar
esto presionando la tecla F2. Y vamos a
renombrar esto a comentarios de salida de
O2 dash. ¿Qué tal
esa? Ahí vas. Y luego veamos
qué podemos hacer. Bueno, en realidad podemos
quedarnos con esta huella. Yo sólo voy a
mover esto hacia abajo. Y aquí arriba, vamos a volver a
crear nuestro comentario. Entonces esto va a ser
salida y comentarios. Hermoso. Ahí vas. Entonces ya hemos visto esta
impresión antes y da salida a algo aquí
abajo en la salida. Si no tienes
esto una vez más, puedes ir a Ver y
habilitarlo aquí mismo. Entonces puedes ver que esto
ahora está habilitado porque tiene una especie de fondo de botón. Y si no está habilitado,
entonces no tiene eso. Entonces así es básicamente
como habilitas esto. Y ahí tienes. Si tenemos esto dentro de
un guión y pulsamos play, entonces lo verás
abajo en la salida y verás helloworld desde el servidor. Vamos a explicar
esto en un poquito. Y luego O2 salida
comenta tres. Entonces, una vez más, esto se debe a que esto estaba en la tercera línea. Paremos con esto y
sigamos con el guión. Pero esto ya es bastante genial. Y la última vez
hablamos de la idea de variables. Entonces, ¿y si tenemos
una variable de salud y eso es igual a 1,000? Una vez más también aquí
puedes ver que no necesitas los
espacios entre esto. Entonces los espacios solo son particularmente importantes
como en lugar de números, porque ahora los
números ya no están conectados
entre sí entre ciertas operaciones, en realidad
puedes poner
tantos espacios como quieras. Normalmente no lo recomiendo. Ya sea un espacio
o cero espacios es básicamente la
forma preferida de hacer esto legible. Pero sí, puedes poner
tantos espacios como quieras. Y ahora en vez de
dar salida a HelloWorld, lo que podemos decir está bien, la salud del jugador,
hay salud sí. Y entonces la pregunta
se vuelve, bien, ¿cómo podemos, cómo podemos entonces dar
salida a este mil? Por supuesto que podríamos
estar como,
bueno, son mil, eso es genial. Pero si ahora cambiamos esto a 500 porque a lo mejor nos
golpearon o algo así, esto seguirá diciendo mil. Entonces eso no funciona del todo
como nos
gustaría si mantenemos esto en mil. Y en realidad decimos,
bueno salud, ¿verdad? Y entonces es como,
bueno, obviamente
va a tomar esta
variable aquí. Bueno, vamos a
ver qué pasa. En efecto, no lo hace. Simplemente dice que la
salud del jugador es la salud, que por supuesto no es exactamente
lo que teníamos en mente aquí. Lo que queremos salida es el valor de esta variable
y no el nombre. Ahora bien, si está dentro de una cuerda. Entonces hablamos de esto antes, dentro de las comillas, entonces esto solo se lee
como una palabra normal. No es una palabra clave y
no es roja como variable. Pero en realidad podemos
usar las variables. Eso sí funciona. Hay dos formas en las
que podemos hacer esto. Podemos o hacer una
columna por aquí. Entonces esto es específico de la función de
impresión en este caso. Entonces después de la primera
cadena, bien, podemos hacer una coma y
luego podemos decir salud. Se puede ver que en realidad nos
sugirió esto. Y luego solo presionas la tecla
Tab para autocompletar. Entonces metemos otra coma, y luego cualquier cosa después de eso también se va
a mostrar. Entonces podemos decir HP, por ejemplo y ahora lo que va a
salir es la salud del jugador es, y luego cualquiera que sea el montaje aquí se guarda dentro de
la variable de salud, y luego HP directamente después de esto. Así que vamos a jugar y
ver lo que da salida. Y se puede ver que la
salud del jugador es de 1,000 HP. Perfecto. Ahora
en realidad hay dos espacios ahí. Entonces, lo que realmente podemos hacer, simplemente detener esto e incluso podemos deshacernos de esto porque
ahora en este caso, esto en realidad agrega un espacio. Esta no es la única manera en la
que puedes hacer esto. Sólo podemos copiar esta línea. Entonces solo lo estoy seleccionando, presionando Control C y luego Control V para
pegarlo de nuevo. Y en lugar de hacer
esto, también podemos hacer punto punto y luego otro
punto punto aquí mismo. Y lo que esto
va a hacer, esto, esto va a concatenar
esta variable a la cadena. Entonces esto podría ser un poco
más complicado en estos momentos. Pero no te preocupes,
hablaremos de esto un
poco más en una futura conferencia. Y además no debería
ser demasiado demente. Básicamente, solo estamos diciendo que esto es una cadena de caracteres. Esta es una cadena de caracteres. Y si bien esta es una variable, en realidad solo
queríamos agregar
esto también a nuestra cadena específica. Entonces va a tener casi
la salida exacta como esta. Pero vamos a ver
qué pasa aquí. Entonces, si sacamos esto, realidad
puedes ver que
no hay espacio en
el medio porque literalmente solo
estamos tomando literalmente solo
estamos tomando lo último que
está aquí, ¿verdad? Entonces es decir, y
luego estamos tomando lo que sea esta variable, sea cual sea el valor real
de esta variable, estamos convirtiendo en una
cadena y luego simplemente la estamos plopping justo
al lado de la S en este caso. Entonces aquí sí queremos un espacio. Entonces, si simplemente paramos esto
e iniciamos esto de nuevo, entonces
podrás ver que
la salida va a ser exactamente la misma en este
caso, a excepción del HP. Porque una vez más,
ven aquí, eso genera un
espacio automáticamente. No tiene nada que ver con
estos espacios, por cierto, no, no
te confundas con esto. Yo sólo puedo ejecutar esto. Entonces esos espacios
no tienen nada que ver con eso. Sólo tiene que ver
con la forma en que todo
el asunto se interpreta
básicamente, ¿verdad? Entonces esas son dos formas
de sacar aquí. En este caso, un texto
con una variable también, que puede ser increíblemente útil, no sólo para fines de juego, sino también a veces para fines de
depuración. Depuración básicamente
refiriéndose a tratar encontrar problemas o errores
en tus scripts. Y eso
a veces puede ayudar mucho. Por último, también queremos
hablar de comunes, donde ya has
visto los comentarios con los dos guiones. Entonces esto es básicamente un
comentario de una línea que puedo hacer. Sólo puedo decir algunas cosas
interesantes, ¿verdad? Entonces esto podría ser para
explicarte cosas por
ti mismo o para que otros lean tus guiones o
cosas por el estilo. Ahora esos sólo
funcionarán para una línea. Entonces, si hago otra línea aquí, se
puede ver de repente
que todos somos una especie de comentario. Y tampoco hace falta
agregar los guiones aquí al final. Esto es
algo personal que hago, así que esto no es necesario en absoluto. También puedes simplemente
mantenerlo así y todo va
a funcionar totalmente bien. Hay una peculiaridad personal mía ahora donde realmente necesitas agregar más cosas es
para un comentario de varias líneas. Entonces todavía podemos
hacer los dos guiones y luego podemos hacer
para abrir corchetes. Se puede volver a ver
los corchetes de cierre generados automáticamente. Y luego dentro de aquí, en realidad
tenemos un comentario
multilínea. Ahí vas. Eso es increíble. Ahí vas. Entonces
puedes ver que esto es ahora un
comentario de varias líneas y cualquier cosa entre los corchetes aquí es básicamente todo lo que vamos a
ser interpretados como un comentario. Incluso puedes cerrar esto con
la pequeña flecha de aquí. Así que eso va a ser
un poco más agradable. Incluso puedes hacer esto. Y luego lo va a cerrar. Se va a cerrar
así. Eso es interesante. Bien,
bueno, ahí tienes. Esa es una
forma muy interesante de hacerlo. Ese es un comentario de varias líneas. Hemos visto algo
similar donde veremos la parte
posterior de las variables. Hemos visto la
cadena multilínea por aquí con la misma idea cuando
en este caso
solo va a estar con comentarios. Pero como ya te he explicado nota
importante, claro, todos estos scripts siempre están disponibles para ti para descargar. Por lo que los guiones están
disponibles, así como el archivo RB XL para cada conferencia diferente
siempre está disponible para su descarga. Así que básicamente puedes
verificar todo, míralo uno por uno. Entonces, si podrías tener algo diferente que sea
output o algo así, siempre
puedes volver a verificar
el código, ¿verdad? Para resumir, una
vez más, podemos ver que la función print es una forma
de sacar algo. Por lo general, quieres dar
salida a una cadena, ¿verdad? Entonces, si escribes en forma
impresa, puedes ver que ya le sugiere, y puedes presionar la tecla
Tab dentro de eso, luego
puedes comenzar a escribir. Ahora, por lo general
se quiere escribir en una cadena. Entonces quieres comenzar
con las comillas y luego solo puedes
decir cosas ahí dentro. Y eso va a ser de salida dentro de la ventana de salida. Y luego
también hay un comentario. Los comentarios normales comienzan
con guión, guión, y luego lo que
quieras escribir, este es un comentario de una línea. Los comentarios multilínea
funcionan con un guión, guión y luego los corchetes abiertos. Bueno, eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya resultado útil y aprendas algo nuevo y los veré a todos
en la próxima conferencia. Así que sí.
6. (Lua) Operaciones de matemática: Bien, bienvenido de nuevo a la introducción del retreo aquí
para el curso de Roblox. Y en esta conferencia,
vamos a estar echando un vistazo a las operaciones matemáticas. Entonces para esto, una vez más, en
los servidores de script del servidor, vamos a estar creando un nuevo
script y vamos a cambiarle el nombre a A3 dash maths. Porque ¿por qué no? Ahí vas. Ahora, entonces agreguemos nuestro pequeño comentario agradable
por aquí, las operaciones matemáticas. Y veamos qué tipo de operaciones
matemáticas hay. Bueno, claro que
hay adición, esa es la primera y la idea es la
siguiente, ¿verdad? Entonces podemos tener una suma y
eso podría ser por ejemplo 20. Entonces esto sólo va a
ser una vez más una variable. Nuestro 20 es el valor y algunos
es el nombre de la variable. Y ahora lo que podemos hacer
es que podemos decir, bueno, eso es que algunos deberían
ser en realidad 20 más 50, por ejemplo ahora esto debería ser 70. Así que vamos a echar
un vistazo. Entonces, si hago otra impresión por aquí, y voy a decir sum es, vamos a usar esta. Entonces vamos a decir suma. Ahí vas. Entonces
ahora va a dar salida a la variable sum. Ahora primero, en realidad
hacemos suma igual a 20. De hecho
cambiemos esto a diez. Entonces van a haber
60 porque eso va a demostrar esto
un poco mejor. Entonces primero, vamos a
decir suma es igual a 20. Decimos suma es igual
a diez más 50. Entonces lo que va a
salir y escuchar, algunos de ustedes podrían decir, bueno van a ser 20 más diez más 50 o
algo así. Juguemos y
veamos qué pasa. Se puede ver algunos son 60 porque lo último
que sucede aquí es que a la variable se le asigna el valor
de diez más cinco. Entonces éste es simplemente
ignorado o sobrescrito porque el código siempre se evalúa de
arriba a abajo. Entonces empezamos en la línea
uno y va a pasar y
pasar y pasar por. Y entonces va a
ser, nuestra suma es ahora 20, y luego la siguiente línea, nuestra suma es ahora 60
porque básicamente
evalué esta expresión
como diez más 50. Esa es la idea general. También puedo hacer, es que puedo decir, bueno en realidad lo que poco quiero hacer es
querer tener otra. Entonces digamos que esta va a ser la segunda suma
porque, ¿por qué no? Y eso es igual a suma más
alguna otra cantidad, ¿verdad? Entonces más 50 o más 150
pueden ser lo que queramos. Y ahora ¿qué va a ser
esto? Bueno, algunos tienen el valor de 20. Entonces, en teoría, esto
debería ser 20 más 150, que deberían ser 170. Entonces si hacemos esto, entonces
podemos ver algunos son 20. Ahora se podría decir,
espera, ¿cómo está el 20? Ah, bueno mira esto. Estamos emitiendo
la variable sum y ahora la segunda variable sum. Así que siempre hay algo
que hay que tener en cuenta. Entonces una vez más, si escribo esto, puedes ver que ya nos sugiere
esto y luego solo
podemos presionar la
tecla Tab para autocompletar. Y ahora estamos dando salida a
la segunda variable de suma. Y ahora deberíamos
ver que la suma es de 170. Ahora también puedes ver todas
las otras salidas
aquí abajo en la salida. Eso está totalmente bien y
puedes quedártelo así. Sin embargo, si esto se vuelve
demasiado desordenado para
ti, puedes ir a los
otros y
simplemente puedes agregar comentarios
aquí a todas las líneas de impresión en los otros scripts solo para que no
tengas las
salidas allí
también . Así que tenlo en mente. Entonces eso es suma.
Veamos ahora la resta. ¿Te imaginas cómo
va a ser esto? Bueno, vamos a hacer una, solo
llamemos a
esto resta. Y esto es igual a, bueno, por ejemplo algo así como 25 -50. ¿Esto va a funcionar? Este va a ser
un número negativo. Eso mientras, quiero decir, vamos a
ver la impresión correcta. Y vamos a decir,
esto sólo va a ser resta es, y luego una vez más coma, y luego vamos a poner
en resta una vez más, auto completando
con la tecla Tab. Vamos a dejar que esto se reproduzca
y veamos qué pasa. Y se puede ver que la resta
es negativa 25, eso es absolutamente ninguna preocupación. Los números negativos
están totalmente bien. Entonces esto funciona con números
negativos, números
no negativos, ¿verdad? También podemos tener 150 -50
y luego van a ser 100. Entonces eso es realmente genial. Lo siguiente es,
por supuesto, la multiplicación. Ahora esta va a ser
la pregunta mole t. Vamos a llamar a esto
multitarea, va a estar bien. ¿Cómo funciona eso? Bueno,
esto se hace con una estrella. Entonces esto es cinco estrellas, 40 por ejemplo y entonces debería ser
¿qué debería ser esto? 200? Sí, exactamente. Van a ser 200. Entonces esto va a
ser multiplicación es, y luego una vez más, solo haz
esto llamado multi por aquí. Y esto va a hacer
exactamente lo mismo. Ahora una vez más, lo que
quiero decir
aquí, no hay que poner
espacios en el medio. Puedes poner espacios en el medio,
pero no tienes que hacerlo. Es la misma idea cuando
pones los espacios aquí que
el espacio está aquí mismo. Porque la idea es
que este es ahora un operador de multiplicación que utiliza dos enteros en este caso, también se
puede, por supuesto, hacer esto. Oh, ¿qué va a hacer esto? Bueno, quiero decir,
probemos esto. Vamos a ver qué pasa
cinco veces 40.5 es 202.5. Eso es absolutamente correcto, y eso funciona también. Por lo que también puedes usar números
flotantes. Básicamente lo hace
todo por su cuenta. Así que eso también es genial. Ahora, la división es lo único que es un poco
más interesante. División es por supuesto, división y eso es
igual a por ejemplo 20/3. Digamos que
algo así. Bien, eso es interesante. Entonces hagamos división. Es, y entonces vamos
a llamar a esto y vamos a ver lo que esto nos pone
20/3 es que no sé. Bueno, es 6.66, 666666 repitiendo hasta que
corre hasta siete. Entonces esa es idea degenerada. Así que tenlo en cuenta
cuando tengas cosas que no entren perfectamente
entre sí. Entonces 21/3 claro,
serían siete. Entonces si hacemos esto, entonces
sólo vamos a conseguir siete. Eso es genial. Pero si tienes algo
que no es divisible de manera uniforme, entonces obtendrás
un número decimal. Y también esto es muy importante. Si intentáramos dividir por cero. Esto es algo que quizás hayas escuchado antes
o no. Si agregas con cero, bueno, vas a conseguir el infinito. Entonces esto es
algo muy interesante y esto es una peculiaridad de Lu son más o menos, en realidad se
puede dividir por cero. No deberías hacerlo. Todavía es como si
esto fuera algo que en realidad
no debería ser una cosa. Y en este caso
sí obtienes infinito. La mayoría de los lenguajes de programación, por lo general obtendrá un
error si esto sucede. Así que tenlo en mente. Por lo general,
quieres asegurarte de no dividir por cero. Pero luego hay otra cosa que podría ser muy interesante, y esa es la ley modal, también llamada el resto
y esta, ¿verdad? Vamos a llamar a
esto un resto. Y eso es igual a,
digamos e.g., el 20. Y entonces va a
ser una señal de porcentaje a y eso va a
imprimir el resto. El resto es, vamos a imprimir el resto
y vamos a
ver realmente lo que va a ser esto. Y entonces verás bastante
rápido lo que hace esto. Hagamos realmente
divididos por tres o como el resto de tres. Y entonces verán que el
resto aquí son dos. Entonces la idea general es que
básicamente solo pasando por el proceso real de división y luego diciendo que
este es el resto, recomiendo encarecidamente también solo
revisar el resto. Esto es algo normal. Creo que esto debería
enseñarse en clase de matemáticas. Esto debería ser algo que
se enseñe en clase de matemáticas. Y en realidad puede ser muy, muy importante para
ciertas cosas en la programación
aquí en este caso, porque si tuviéramos que hacer
el resto de dos, entonces 20 modal O2, esta es una forma de
verificar si un número es par o impar, porque en este caso
es par, ¿verdad? Entonces, si solo
jugamos esto, vamos a conseguir un cero. Entonces básicamente podemos decir, Oye, si este número y luego hacemos módulo dos es igual a cero, sabemos que es un número par. Y si lo hacemos, podemos
hacer cualquier número impar, qué, 21 en este caso, no
importa. Entonces vamos a conseguir uno. Entonces si el resto es cero, entonces sabemos en este caso, si hacemos O2 modal, así que si el resto es uno
con modal o dos aquí, entonces sabemos que el número, el número original
es un número impar. Si es un cero, entonces es un número par
de hecho muy interesante, último pero no menos importante,
hay algo llamado incrementando
y decrementando. Esto solo básicamente
dice que queremos agregar uno a un número específico. Entonces, por ejemplo, podemos tener un
número de cinco fríos, ¿verdad? Y luego en otros lenguajes de
programación, dependiendo de si has
programado antes o no, puedes hacer cosas
como número más más o número menos menos. Ahora lo que verán es que
esto no funciona, ¿de acuerdo? Podemos simplemente comentar
esto, ¿verdad? Sólo vamos a decir que lo son y entonces esto
va a ser como no funciona
porque simplemente no funciona. Es simplemente algo que
más bajo no nos ofrece. No obstante, hay
cosas que podemos hacer para incrementar o
decrementar este número. Entonces básicamente podemos
decir que el número es igual a sí mismo más uno. Esto solo va a tomar
cualquier número que se defina como en este caso cinco y luego
solo agregarle uno, ¿verdad? Entonces una vez más, esto no
es nada loco, es sólo decir número es
igual a número de más uno. Así que solo estamos tomando lo que sea esta expresión y luego la
guardamos de nuevo en número. Bien, eso es justo. También podemos tener número
más igual a uno. Esto es hacer
exactamente lo mismo. Es solo un poco más compacto y escrito en una línea. Estas son exactamente las mismas cosas que hacen es exactamente lo mismo. La razón por la que
quieres conocerlos a los dos o los has
visto
a ambos, es que algunas personas prefieren hacerlo así. Algunas personas
prefieren hacerlo así. Entonces, si lees guiones de otras
personas, es muy importante
haber visto ambos. Y entonces claro,
la misma idea va por menos en este caso. Ahora, incluso puedes extender
esto y puedes decir,
bueno, ¿qué es, qué
pasa con esto, verdad? Si hacemos veces iguales, absolutamente número, tal vez
queremos hacer divide iguales. ¿Funciona esto? Eso será, ni siquiera
sé cuál
será el verano ahí, pero el número de la orilla
ahora se vuelve loco. Modulo es igual en realidad, sí,
podemos hacer esto también. Ahora bien, este nunca he
visto como realmente
necesitaba en ningún lado, nunca. Éste. Puede haber
ciertos momentos en los que esto podría ser útil, pero sí, mayoría de las veces
vas a estar usando estos, tal vez estos tres. Y estas dos son cosas
muy específicas que son muy, muy raras. Pero una vez más, haber visto esto puede ser muy importante en
verdad, ¿verdad? Para recapitular, las operaciones matemáticas son justo lo que dicen
en la lata, ¿verdad? Son las operaciones las que realizan ciertas funciones matemáticas
en este caso, ¿verdad? Así que sumar solo un símbolo más, un símbolo menos para la resta, una estrella para la multiplicación y la barra para la división. Y en este caso
también el porcentaje para el modelo o el resto. Entonces esto es simplemente matemáticas normales. Ahora podrías decir,
¿por qué necesito matemáticas en esto Hay muchos
momentos en los que podrías necesitar algunas matemáticas, ¿verdad? Entonces podría darse el caso de que tal vez tengas un
arma y luego tenga un cierto
multiplicador de efecto para el daño, y luego el
jugador contrario tenga cierta armadura. Y quieres
asegurarte de que la salud o el daño se genera correctamente, se
calcula correctamente. Ahí es donde entra toda
la suma, resta, multiplicación,
división o eso. Y todo va
a ser una especie de, va a
haber algún tipo de algo que salga al final. Eso va a ser
esto, el daño. Entonces Nath en realidad puede ser
muy, muy importante. Ahora esos son, por supuesto, solo
los conceptos básicos de las matemáticas. Pero con estos como bloques de
construcción, ya se pueden construir
algunas cosas bastante geniales donde sea que sea para
esta conferencia aquí mismo. Espero que esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
7. (Lua) Operaciones relacionales y lógicas: Bien, bienvenido de nuevo
a la introducción del retreo aquí para el curso de Roblox. Y en esta conferencia,
vamos a estar echando
un vistazo a unos operadores relacionales y
lógicos hoy en día suena
muy complicado, pero una vez más, no te preocupes, vamos a pasar por
esto antes
que nada, creando un nuevo script en
el
servicio de que nada, creando un nuevo script en script del servidor aquí mismo. Y vamos a
llamarlo 04 guión. Llamemos a esto lógico
relacional. Ahí vas. Y una vez más, no
necesitamos el HelloWorld
donde sí necesitamos es para operadores relacionales y
lógicos, a veces también llamados operaciones relacionales
y lógicas. Cualquiera de los dos funciona más o menos. Una vez más, no
olvides comentar la impresión si no quieres tenerla en la salida estar
completamente inundada de spam. Y entonces pensemos en esto. Entonces, ¿qué son los relacionales, qué son los operadores lógicos? Nosotros, los relacionales
son básicamente, están mirando dos
valores y
básicamente están evaluando la
relación entre ellos. Entonces esto sería más pequeño que, más grande que menor o
igual, mayor o igual. También tenemos iguales
y tampoco iguales. Entonces estos son los, bueno básicamente todos
los
operadores relacionales y producen un, producen un valor
booleano, ¿verdad? Entonces esto una vez más significa que si
piensas de nuevo en los tipos de
variables, esto es verdadero o falso. Ahora bien, esto no debería ser
nada de locos aquí. Por supuesto, si digo, bueno, 20, menor o igual a 25, sólo
hay,
sólo puede ser verdadero o falso. No hay tontería, ¿verdad?
No hay como uno. Si es 50 por ciento pequeño, eso, no es de eso de
lo que estamos hablando. Sólo estamos diciendo, oye, ¿
esto es más pequeño que esto, o es igual que esto? Y esa es la idea general. Y los operadores lógicos
son operadores que toman dos valores booleanos y los
evaluarán. Esos son end OR y el
operador NOT en este caso lo son, esos son los realmente
importantes. También hay algunos
otros. Si realmente te
interesa esto, puedes buscar álgebra booleana. Ese es básicamente el
término a echar un vistazo. Y eso básicamente nos mete
un poco más en ello. Pero por el momento, no
estamos muy preocupados por ello. Entonces, cuando pensamos en esto, podemos decir una prueba, por ejemplo aquí hay tres, menor que 20. Esto es por supuesto
cierto en nuestro caso. Podemos simplemente imprimir
esto, ¿verdad? Entonces, digamos, ¿
tres son más pequeños que 20? Y sólo vamos a
imprimir esto. Vamos a
imprimir prueba por aquí. Ahí vas. Pero vamos a jugar a esto y a
ver qué pasa. Y va a imprimir
cierto porque son tres, de hecho es menor que 20. Eso es muy interesante de hecho, se
puede ver esto, evalúa esta expresión y convierte en una booleana
en este caso cierta. Ahora también podemos decir,
digamos pruebas aquí de nuevo,
eso va a estar bien. Esto es 20 es mayor que 200. Esto por supuesto será falso. Y luego solo
vamos a hacer es que solo
vamos a seleccionar este control de
prensa C, se puso en marcha ve aquí, presiona Control V para volver a pegarlo. Y entonces sólo estamos
cambiando esto. Es 20 mayor que 200 porque ahora estamos diciendo que
2020 es mayor que 200, lo que por supuesto es falso. Dejemos que esto vuelva a jugar. Y vamos a ver es 20
más grande que 200 es falso. Eso es exactamente correcto
porque no es así. Esos son los
ejemplos de más grandes. Y entonces la misma idea se aplica
para iguales menores, ¿verdad? Entonces solo va a ser cierto
también si es igual. Y entonces si esto
sería igual, ¿verdad? Esto ahora sería falso. ¿Correcto? Debe tener sentido porque, bueno, 20 no es menor que
20 es igual a 20. Si tuviéramos que hacer
esto, de pronto
se vuelve a hacer realidad otra vez. Ojalá eso
tenga sentido aquí en este caso. Ahora cuando se trata del operador
equals,
digamos por ejemplo que tenemos una cadena, una que va a ser hola, y luego tenemos una cadena también, que se llama también
hola. ¿Por qué no? Ahí vas. Entonces hacemos una comparación de esto. ¿Por qué no comparación? Esto es igual a, y
luego decimos cadena uno igual a dos signos iguales. Este es el operador relacional
igual que mira estas
dos cadenas, ¿verdad? Y pone un valor booleano. Este es el
operador de asignación, muy, muy fácil confundir
uno con el otro. Pero lo que deberías obtener
es que puedes ver que
obtendrás un error si
tienes uno solo. Entonces este subrayado rojo aquí, básicamente ya ves, es como, oh, esto no tiene
ningún sentido para mí. Absolutamente sin preocupaciones. Dos signos iguales es el operador
relacional. Un signo igual es el operador
de asignación. Muy, muy importante. Ahora imprime,
vamos a imprimir esto y vamos a imprimir la comparación. Y deberíamos conseguir en
teoría una verdad, ¿verdad? Entonces vamos a tener una, la primera copia impresa, es esto
cierto, la segunda es falsa. Y entonces aquí sólo
vamos a tener una norma, solo una salida verdadera. Vamos a ver. Y vamos a ver la
verdad, absolutamente increíble. Entonces eso definitivamente funciona. Ahora bien, si cambio
algo aquí, incluso la carcasa, porque ahora estos
ya no son exactamente iguales. Entonces, lo que va a pasar es
falso porque en este caso, ambos no son iguales porque siempre
se toma en
cuenta la carcasa porque este es
un personaje diferente y por lo tanto
no son exactamente iguales. Pero esta sería
una de esas cosas. Y no hagas esto. Esto es sólo un ejemplo aquí. Entonces tú, para que entiendas esto
de alguna manera. Esto es algo así como lo
que harías, ¿verdad? Cuando tienes una contraseña
y estás como,
bien, esto es lo que sea que tenga
la persona. Escribí, y esta es la
contraseña que guardé, roja. ¿Son iguales? Y entonces sólo si es verdad, entonces
vas a dejarlos entrar. Ahora, no hagas esto, no
guardes contraseñas así. Eso es algo que sólo
deben hacer las personas
avanzadas. Muy, mucho así solo para que te pongas
a
pensar en esto, bien, esta es una de esas
formas en las que podrías ver
que una comparación es importante. Ahora cuando se trata de los operadores lógicos, aquí se vuelve un poco más
complicado, porque aquí
realmente queremos tomar múltiples valores booleanos y ponerlos en como
ponerlos uno al lado del otro. Y entonces ellos una especie de, ya sabes, esta es una
extensión lógica para esto. Entonces, por ejemplo, lo que podrías hacer es, digamos que x es igual
a la comparación. Entonces va a tomar aquí el valor de
comparación, que es en este caso
va a ser cierto. Y entonces podemos poner un operador
y aquí. Y entonces el segundo valor
tiene que ser otro booleano. Entonces, por ejemplo, podríamos decir, vamos a ponernos a
prueba aquí, ¿verdad? Entonces ahora va a decir, bueno, si la cuerda coincide
y la prueba es verdadera, entonces x va a
ser verdad, ¿verdad? Entonces en este caso, comparación va a ser cierta y la prueba va a
ser falsa, ¿verdad? Entonces esto es actualmente lo que
pasa aquí, ¿verdad? Porque la prueba aquí es falsa. Entonces si ahora fuéramos a imprimir x es solo por el bien del argumento x aquí
o allá vas. Si hacemos este extra ser falso
y se puede ver x es falso. ¿Por qué es este el caso? Bueno, porque el
operador final dice que ambos valores booleanos tienen que ser verdaderos para que toda la
expresión sea verdadera. Ahora una vez más, si esto es un poco complicado para ti en este momento,
absolutamente no te preocupes. Esto es algo
con lo que solo hay que jugar un poquito. Entonces, lo que
te recomiendo encarecidamente que hagas es que abras este guión lógico relacional por aquí y simplemente
juegues con esto. Lo que es aún más loco es que puedes ponerte esto
tantas veces como quieras. Entonces puedo decir Fin verdadero. Y tal vez otro
que queramos decir, bueno, 20 es mayor o igual a 50,
algo así, ¿verdad? Para que veas,
puedes
encadenarlos todo lo que quieras. Una vez más, podría ser un
poco complicado. Se trata de probar esto y probar algunas
cosas con nosotros, ¿verdad? Sólo voy a copiar
esto y
también voy a hacer un operador
OR por aquí. Entonces esto va a
ser, ahora va a ser verdadero o falso. Lo que sucede con el o
significa que uno o ambos tienen que ser ciertos para que la salida sea verdadera. Entonces en este caso, verdadero o falso solo significa que la comparación es verdadera. Y entonces
ni siquiera nos importa qué pasa el resto porque uno
de ellos es cierto. Esto va a ser cierto. Para que podamos ver,
Digamos que X1 y X2, solo para que entendamos
que la diferencia está aquí. Y si jugamos esto, se puede ver x2 es cierto
porque aquí estamos usando el operador u
y a eso sólo le importa si uno de ellos es verdadero y entonces toda la
expresión es verdadera. Como dije, en
realidad no es algo avanzado, es solo una de esas
cosas que realmente no se enseñan al principio de la escuela. ¿Es básicamente
solo lógica formal? No hay nada de
locura en esto. Y aunque pueda
sonar un poco intimidante, en realidad no
lo es. Una vez más, solo siéntate un poco
con él, juega un
poco con esto y encontrarás que esto en realidad
no es tan loco. Ahora una última cosa, solo
tomemos la comparación
por aquí también. Y entonces lo que
vamos a decir es que en realidad queremos negar esto. Esto quiere decir que esto
en realidad no es una prueba. Ahora bien, esto podría ser
como el FREC es esto, esto es bastante loco. Bueno, básicamente estamos
negando este falso o lo estamos volteando. Entonces, negar simplemente
significa que lo estamos volteando de un
falso a uno verdadero. O si esto ya era
cierto entonces a un falso. Entonces a veces
verás esto escrito así con un signo de
exclamación en el frente. Pero en esto solo significa que todo
esto es cierto, ¿verdad? Entonces esto es ahora de
repente no falso, lo que será igual
a verdad, ¿verdad? Déjeme hacer esto. Entonces esto se vuelve un poco
más claro, ¿verdad? Entonces estamos negando la
prueba de que lo que esté escrito en la
variable test, en este caso false. Y lo estamos volteando a verdad. Una vez más, si no
obtienes esto de inmediato, solo juega un poco con
esto. Te recomiendo encarecidamente que realmente quieras escribir cosas
e
imprimir cosas y luego algo ponerse un poco adelante con
esto y luego ser como,
Bien, ahora lo entiendes porque
en realidad aplicar esto es mucho más importante que
solo escucharme, como explicar esto
como diez veces. Es mejor que te
sientes y seas como, bien, la x es esta y
luego la y es esta, y luego es como n nada, y luego simplemente imprimirla. Pero por el bien de la
discusión, vamos a
ver que x3 va a ser cierto. Y encontrarás que
X3 efectivamente es cierto. Porque una vez más,
la
comparación es cierta y lo contrario de la
prueba también es cierto. Por lo tanto, esto es cierto. Como resumen rápido, sus operadores relacionales y
lógicos tienen que ver con los valores booleanos. Y básicamente nuestras operaciones
que comparan dos valores, dos o más valores
en algunos casos, y te dan un
valor booleano a partir de eso, bien, ya sea un verdadero o falso. Hay más pequeños que,
mayores que iguales, no iguales, y también los operadores
lógicos Y,
O y NO en este caso, estas operaciones simples en realidad son todo lo que a la
computadora le gusta. Cuando bajas al más bajo
de lo bajo es donde todos los unos y ceros de los que quizás
hayas oído hablar antes. Esto es todo lo que usan y, o. Y luego algunos operadores
relacionales, eso es todo lo que
usan, nada más. Entonces con esto viene un gran
poder realmente como, como en la programación, es
por eso que son bastante importantes. Una vez más, aquí
al final,
básicamente quería darte el
ímpetu para decir, bien, realmente siéntate por unos buenos diez, 20 min y solo prueba
como en cómo funcionan estos. Si no los has entendido, si los entendiste,
absolutamente genial. Todavía estaba
implorándote que solo los
pruebes un poco si no los has entendido,
pruébalo de nuevo. Yo altamente, altamente recomiendo si por supuesto queda alguna
duda, no dudes en preguntar. De lo contrario va a ser esto para esta conferencia aquí mismo. Espero que esto te haya
resultado útil y aprendas algo nuevo
y los veré a todos en la próxima conferencia. Entonces, sí.
8. (Lua) si y otras declaraciones: Bien, bienvenidos de nuevo a la pequeña introducción aquí
para el curso de barricadas. Y en esta conferencia
vamos a estar echando un vistazo a si y
demás declaraciones. Entonces ahora realmente nos estamos metiendo
en la carne de esto. Una vez más, en los servidores de script del
servidor, vamos a crear un nuevo script
y vamos a
cambiarle el nombre de cinco guiones si y si no. ¿Qué tal eso? Ahí vas. Estoy bien, una vez más,
voy a hacer los cinco si y de otra manera. Ahora bien, si y de lo contrario
las declaraciones son
muy, muy interesantes de hecho,
supongamos que lo que tenemos por ejemplo es que podríamos tener una
cantidad de oro que va a ser 100. Y entonces tal vez tenemos una, lo
mejor tienes una
nota y eso va a ser digamos que
apenas pasamos 65,
algo así. Y entonces también tenemos
un valor booleano. Y eso va a ser,
es, claro que bueno. Y eso va a
ser igual a verdad. Supongamos
que ese es el caso. Ahora lo que podemos hacer con las declaraciones
si else es que
básicamente podemos interrumpir el flujo de arriba
a abajo y decir:
Bien, si algo es
cierto, entonces haz esto. O si algo más
es cierto, entonces haz esto. Entonces por ejemplo podemos decir
si es grosero Bueno, se
puede ver que sugiere que
esto fue desigual, nos
dice que esto es un booleano. Así que vamos a presionar la tecla
Tab para autocompletar. Entonces decimos, entonces, una vez que presionamos la tecla Enter, el final de aquí se
genera automáticamente. Y ahora esto es
sumamente importante. Se puede ver que
nuestro cursor
aquí mismo está realmente sangría. Entonces esto es lo
mismo que si tuviera que presionar la tecla Tab y se puede ver que aquí sucede
la misma sangría. Y entonces esto es solo
automáticamente porque ahora mismo estamos dentro
de esta declaración if. Y
en realidad hay que estar al tanto del guión
escribiéndolo así. Así puedo escribir cosas aquí. No creo que
técnicamente esté mal, pero se ve muy extraño. Así que básicamente, una vez que estás
dentro de una declaración if o una función que
vamos a ver más tarde y cosas así. Siempre tienes un
guión y sí, si yo tendría otro
si dentro de aquí, en vez de eso,
si sangráramos otro tipo por el
bien de la argumentación, sigamos con esto. Entonces esto va a imprimir algo y
va a producir Brent. Sí, es un curso bastante bueno. Entonces ahí tienes.
Así que mientras sea por supuesto bueno es cierto,
vamos a imprimir esto. Juguemos esto por
el bien de la discusión. Es verdad. Entonces, sí, es un bonito, es un curso bastante bueno. Bueno, solo asegurémonos de
que también diga que es un curso
bastante bueno. Pero ahora vamos
a decir falso. Vamos a resolver
este no es el caso, pero si pudiera ser, vamos a jugar
y no tenemos salida. Porque en este caso, todo entre entonces y final solo
se ejecutará si esto es cierto. Y ahora realmente estamos
empezando a apilar sobre esas diferentes herramientas. Esto es básicamente cada
una de esas conferencias. Es otra herramienta en tu kit de herramientas que
necesitas para que entiendas
los conceptos básicos que vienen después con
todo los bloqueos de carreteras. Y esta es una de las más grandes
e importantes, si y luego declaraciones else. Entonces, por ejemplo, también podríamos
pensar en algo como esto. Digamos que solo agreguemos
otro por aquí. Esto podría ser algo así
como el peaje. Entonces tal vez justo donde
quieres cruzar el puente y
el total es de 150 de oro. Entonces lo que podemos decir,
por ejemplo, es, bueno, si nuestro objetivo que tenemos es mayor o igual que
el peaje, ¿verdad? Entonces podemos decir print,
jugador podría pasar. Pero a lo mejor queremos ser como, bueno en realidad no
queremos terminar aquí. Para que podamos sustituir este
fin por otro. Y entonces una vez más
se puede ver que es otra cosa. Si acabo de darle al tap kick, puedo autocompletar
y presiono Enter, entonces genera
otro extremo por aquí. Entonces podemos decir si el oro es
mayor que el peaje, el jugador podría pasar. Y si este no es el caso, entonces podemos decir que al jugador
no se le permite pasar, ¿verdad? Así que entonces sólo podemos golpear play. Y podemos ver, si
miramos esto, al jugador no se le permite
pasar porque oro es en realidad
más pequeño que la parte superior derecha. Sólo tenemos 100 de oro,
pero necesitamos 150. Por lo tanto, esto
se imprime. Así que todo lo
demás se imprime. Si esto es falso y todo aquí se
imprime si esto es cierto, también
podemos hacer algo
así, ¿verdad? Entonces podemos decir, esta es ahora una forma
muy cruda de hacerlo, pero es verdad, ¿verdad? Entonces podemos decir oro actual, digamos que el oro va a
ser Armadura, Oro, ¿verdad? Así que solo pon salidas,
el oro también. Y lo que podemos hacer
es si pasamos, bueno, en realidad
queremos hacer oro
menos es igual a lo que sea
el total, solo si realmente pasamos
con éxito, porque de lo contrario
en realidad no queremos hacerlo. Entonces ahora solo
veamos cual es el objetivo después de que hagamos evaluamos esto? Bueno, va a
ser, bueno, 100, ¿verdad? Porque no hemos
pagado nada. Porque efectivamente podemos
pagar porque nuestro peaje es, bueno, aquí son 150 y ni siquiera
podemos hacer nada. Voy a hacer esto de
un solo paso más complicado, pero entenderás
esta ubicación, digamos en casa, ¿verdad? Entonces ya estamos en casa. Y si pasamos,
digamos que vamos a estar en el centro. Digamos solo por
el bien de la discusión, si no
pasamos, bueno, ni siquiera necesitamos
cambiar la ubicación, así podemos decir oro actual. Simplemente copiemos esto y luego podemos decir ubicación actual. Entonces también podemos
imprimir la ubicación. Bien, vamos a jugar
esto una vez más. Y luego ya veremos, bien, todavía
estamos en casa y
todavía tenemos 100 de oro. Pero ahora, ¿y si cambio
el peaje ahora mismo? ¿En realidad cuesta 69 pasar? ¿Qué va a pasar ahora? Pues ahora nuestro oro es mayor
o igual que el peaje, es
decir, que se nos
permite pasar. Nuestra ubicación
va a cambiar al centro y vamos a restar cualquier objetivo que tengamos, como el peaje de nuestro Dios. Entonces juguemos esto
y veamos, y de repente
podemos ver que ahora tenemos 31 de oro y estamos en el centro. Ahora esto es por supuesto, nada en el juego en
sí ha cambiado. Solo hemos cambiado una o
dos variables en este caso. Pero tal vez ya puedas
ver lo increíblemente poderoso que es esto tener estas declaraciones if y
puedes encadenarlas juntas. Puedes poner otra declaración
if aquí. Hay todo tipo de
cosas que puedes hacer, lo cual es realmente, realmente increíble. Esta es realmente una de las
cosas que es, quiero decir, es realmente genial ver que este tipo de cosas cobran vida. Ojalá este sea un
ejemplo
realmente ilustrativo de esto porque tienen declaraciones
y las
declaraciones if else son realmente,
realmente impresionantes. Ahora, digamos una
vez más, lo último. Entonces tenemos una calificación por
aquí y digamos por ejemplo queremos verificar, bien, tiene esta persona pase. Entonces podemos decir si la pantalla es
más grande o igual a 50, por ejemplo, entonces solo vamos a decir, en realidad, hagámoslo
al revés. Entonces digamos que si es
menor de 50, entonces vamos a
imprimir un fail, ¿verdad? Porque entonces hemos fracasado. Ahora vamos a sustituir
esto por otro. Pero ya sabes lo que en realidad, cuando se reemplaza por otra cosa, si porque quiero comprobar si o no el
grado mayor o igual a 50 y también
es menor. Tan grande es
menor que 100 ellos. Entonces quiero hacer
algo específico. Y luego quiero otro más, porque puedes
encadenarlos tanto como quieras. Y entonces esto va a
hacer otra cosa. Entonces esto va a estar imprimiendo, digamos pasado por
aquí, eso es genial. Y luego aquí, si
obtienes 100, bien, entonces esto pasaría si
obtienes 100 o más. Pero pensemos en
eso por un momento. Pero si tenemos 100 o más, entonces vamos a decir
que pasaron con honores. Porque por qué no, ¿verdad? Porque eso es genial. Entonces ahora mismo conseguimos
un 65 para el grado. Entonces deberíamos ver la salida B pasada. A ver si esto funciona. Y se puede ver pasado
es efectivamente salida. Eso es muy bueno. Vamos a detenerlo y luego volvamos aquí y en realidad cambiemos
esto a, digamos 100. Ahora debemos pasar con nosotros. A ver. Juguemos esto. Y podemos ver pasado con
honores. Eso es genial. Incluso podemos ir un paso más allá. Digamos solo por
el bien de la discusión, queremos agregar
otro aquí. Lo que podemos hacer es
agregar otra más si, y podemos decir si es
mayor, más grande que 100. Ahora vamos,
hagámoslo así. Digamos otra cosa si
genial es igual a 100, entonces hacemos esto, ¿verdad? Y luego vamos
a hacer otra más. Y eso básicamente
va a ser, si es cualquier cosa menos 100, y entonces podemos decir más, más de 100 no es posible. Te engañaste. Entonces algo así, más de 100 no es
posible que engañaste. Y ahora si tuviera que hacer 101, de
repente, vamos a conseguir más de 100 no
es posible. Te engañaste. Entonces, si no entiendes muy bien la
lógica a través de esto, solo piensa en esto, ¿verdad? ¿Qué es la calificación en
este momento? Genial como 101. ¿Esto es menor que 50? No 101 no es menor de 50. Por lo tanto, vamos a la otra si, ahora estamos comprobando, ¿es
mayor o igual a 50? En efecto, es mayor
o igual a 50. Pero esto también tiene que ser
cierto porque estamos usando el operador lógico Y correcto, así que ambas
cosas tienen que ser ciertas para que toda la
declaración sea cierta. Y porque genial
es mayor que 100, vamos a la otra si
ahora nos vemos Grandes, igual a 100,
no es igual a 100, efectivamente
es 101. Por lo tanto, vamos
a la otra por aquí. Y como no
tenemos una declaración if, solo
estamos diciendo, bien,
ahora estamos usando la L, así que todo
aquí se ejecuta, es
decir, esto se imprime. Bueno, espero que esos sean algunos ejemplos interesantes
de declaraciones if and else, cómo puedes usarlas
y por qué son. Así que en realidad realmente,
realmente impresionante. Se puede ver como nosotros ya, casi
hicimos un
pequeño juego por aquí solo con una si más declaraciones
con un oro, con un peaje. Y eso ya es realmente
increíble,
cierto, para una pequeña
recapitulación una vez más, if and else las declaraciones usan valores
booleanos para evaluar
algo, ¿verdad? Pueden usar un valor
booleano normal. Puedes usar los operadores relacionales
y lógicos para encadenar a esos
booleanos juntos. Como hemos visto de múltiples
maneras, podemos usar
declaraciones if y
else if y else para encadenar esas declaraciones
if juntas. Y entonces todo dentro de esa sentencia si se ejecuta. Si la
expresión booleana es verdadera, realmente una cosa muy genial. Y una vez más, solo
recomiendo encarecidamente jugar un poco con esto
en tu propio tiempo. Es realmente, realmente increíble. Bueno, eso es todo para esta
conferencia de aquí mismo. Espero que esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
9. (Lua) variables locales: Bien, bienvenido de nuevo a la introducción del retreo aquí
para el curso de Roblox. Y luego esta breve conferencia, vamos a estar
hablando de variables locales. Entonces para esto, una vez más, en el servicio de script del servidor, vamos a crear un nuevo script
y vamos a llamar a este 06 dash local. Y esto por supuesto
también va a tener unas variables locales O6 comunes. Ahora bien, este no es un tema
increíblemente importante. Sin embargo, sí quería, básicamente
hablaremos de ello una vez. Así que las variables locales antes
cuando teníamos una variable, solo
hacíamos x iguales, no
sé, como
100 y eso fue todo. Ahora, también podemos poner la
palabra clave local frente a ella. Y puedes ver, puedes
ver que es una palabra clave porque se pone
audaz y también roja. Entonces ahora podemos decir y
local, e.g es 50. Ahora bien, ¿por qué sería
importante esto o por qué no? Bueno, la idea general es que
una variable local básicamente hace para que la restrinja donde
sea accesible. Ahora mismo en este
caso, en realidad, no importa porque solo
podemos hacer print x y que todo va a
estar bien e imprimir y y todo
va a estar bien. Entonces ambos
sólo van a funcionar. Digamos que tenemos
una declaración if y sólo
vamos a decir que x es, digamos más grande que cinco, y entonces queremos hacer algo. Ahora bien, si en vez de
eso, si alguien, digamos que esta es
una declaración es realmente complicada, muy compleja, y en realidad
necesitamos algunas variables dentro
de ella para funcionar. Podríamos decir algo como por ejemplo z es igual a 100. Eso funciona. Y entonces podemos usar esto aquí
y lo que queramos hacer. Y lo loco
es que podemos entonces incluso usar esta Z fuera
de esta declaración if. Entonces puedes ver la Z aquí es accesible fuera de
esta declaración if, pero esto no siempre es lo que
queremos porque número uno, esto puede confundir a la
persona que usa esto, ¿verdad? Entonces tal vez en realidad
no queremos esto. Z solo se puede usar en
esta declaración if. Y después de esto,
lo que sea que se convierta, cualquier valor que tenga no es ni siquiera representativo de
nada que queramos. Este podría ser el caso. Si este es el caso, entonces
por ejemplo podemos hacerlo local. Y se puede ver lo que
pasa es esto ahora tiene un subrayado rojo,
significado y error. Se puede ver solo z global, porque normalmente las variables
son variables globales. Pero en este caso, estamos diciendo
explícitamente que se trata una variable local y sólo es accesible dentro de este contexto
particular. Siendo el contexto
la declaración if. Entonces si, si termina
el primer nivel n, el final para esta
sentencia if básicamente también elimina comillas entre comillas,
esta variable local. En general, es
algo normal básicamente
hacer que todo sea local excepto
si hay momentos en los que, oh, ya sabes qué, en realidad
esto no debería ser local. En teoría, lo que debes hacer es cada vez que haces
una variable, siempre empezar con
un local y eso es, y entonces vas a estar bien, y entonces vas a estar bien. Porque hay
muy pocos
casos en los que no sea así. Y puedes ver
si no está bien, si entonces quieres
seguir trabajando con esto, entonces está totalmente bien, entonces
puedes dejar esto fuera. Pero normalmente
quieres hacerlos locales y luego
vas a estar bien. Otra
razón adicional por la que quieres hacer esto es solo porque son un
poco más de rendimiento. Ahora para ser justos con las máquinas
modernas, esto probablemente no va a hacer como mucha
diferencia aquí, pero por si acaso puede
ser bastante importante. Y si ves lo local en los guiones de
otras personas,
entonces solo debes saber, por
lo general quieres
usarlos para todas tus variables
excepto en muy, en algunas circunstancias donde se necesitan las
globales, entonces puedes mantenerlo fuera. Por lo general, cuando instancio una variable con local
delante de ella, ¿verdad? Entonces solo me aseguré de
que el príncipe de
aquí esté comentado
por esta impresión, claro, lo que arroja un error mientras tenemos una variable local. Pero en general en, para
resumir aquí, una vez más, las variables locales, hacen un poco
más rápido y restringen el alcance donde una
variable en particular es accesible. No hacer un global hace que
sea un poco apretado, más fácil para la gente
usar tus guiones. Y además hace que el juego
solo corra un poco más rápido. Puede haber cambios minúsculos aquí, pero generalmente quieres usar
local siempre que sea posible. Eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
10. (Lua) Operaciones de cuerda: Bien, bienvenido de nuevo
al curso de Roblox. Y en esta conferencia
vamos a estar echando un vistazo a las operaciones de cadena, por
supuesto, en primer lugar,
en los servidores de script del servidor, vamos a crear un nuevo
script por aquí, y cambiemos el nombre a 07
y operaciones de cadena de guión. Y claro, una vez más, vamos a hacer unas 07 operaciones de
cuerda, Ahmed por aquí, y
luego comencemos. Entonces podemos hacer una nueva variable. Vamos a llamarlo
prueba y vamos a llamarlo algo
así como hola ahí, estoy diciendo hola, y eso es una cadena. Y ya lo hemos visto
anteriormente. Podemos, por ejemplo imprimir esto con la
función printf poniendo en
pruebas aquí mismo. Y eso va a, por supuesto, luego sacar el valor de la variable
test en este caso. Para esto, necesitamos
la salida por aquí y también
asegurarnos de que en los antiguos y
asegurarnos de comentar las funciones de impresión en
los guiones antiguos también. Y si tenemos la ventana de
salida abierta y la impresión por aquí, entonces vamos a jugar y
deberíamos poder
ver hola ahí. Estoy diciendo hola, bueno
eso es bastante bueno. Ahora, ¿por qué estoy escribiendo
algo tan raro ahí dentro? Bueno, porque vamos a ver algo
interesante en un momento. Pero lo primero que
podemos hacer con una cuerda es averiguar qué tan
larga es la cuerda. Porque a lo mejor a veces
queremos hacer eso. Así podemos averiguar la longitud de una cadena haciendo lo
siguiente. Lo que podemos hacer es que
podemos decir prueba de hashtag, y eso va a dar salida a la longitud de esta cadena
en particular. Entonces solo va a
contar cuántos personajes hay, incluyendo espacios. Entonces antes de que vamos
a dar salida a esto, vamos a contar realmente 1,
234-567-8910, 1112, 1314, 1516 1718 1920 201-20-2203, 2420, 5206, 2728, 2930. En teoría, esta variable de prueba, esta cadena de aquí, debería tener tres caracteres de largo. Así que nuestra impresión de aquí debería resultar
la longitud de una cuerda, 30. Juguemos y veamos si
esto es efectivamente TI. Y la longitud de una cuerda es 30. Bonito. Esto ya es bastante genial, pero ¿qué otras cosas podemos hacer? Bueno, hay toda una
serie de cosas diferentes. Entonces digamos que hacemos
una nueva variable. Lo que vamos a hacer es que
vamos a escribir una cadena y puedes
ver que
en realidad comienza a
sugerirnos esto, y también lo marca como azul. Entonces es una palabra clave en este caso, y podemos poner un punto después de ella. Y entonces se puede ver que tenemos diferentes funciones a las
que podemos llamar. Y esos básicamente representan cierta cosa que
hacen con ciertas cosas. Entonces, por ejemplo, aquí devuelve la
longitud de la cadena. Entonces, en lugar de hacer el hashtag, también
puedes hacer cadena esa Lynn Wright y luego poner
la cuerda ahí. Muy importante. Entonces
podemos hacer esto. Y en este caso la nueva prueba en realidad
va
a ser la longitud. Vamos a llamar a esta
longitud por un momento. Copiemos esto solo como una prueba. Y entonces podemos poner
en longitud aquí mismo. Y si jugamos esto, vamos a ver 30.30 porque básicamente está
haciendo exactamente lo mismo. Pero esta es una de las
operaciones que podemos hacer. Así que por lo general
la mayoría de las operaciones para
cadenas en este caso siempre proceden con cadena punto y luego tipo de
función básicamente. Hagamos una nueva prueba
y echemos un vistazo. Así que enséñala. Y se puede ver que hay
un montón de cosas. Entonces puedes ver esto concatena n copias
de la misma cadena. Esto es básicamente
solo si tienes, si pongo la cuerda
ahí y
pongo tres ahí, entonces
va a ser hola ahí. Estoy diciendo hola. Hola, estoy diciendo hola,
hola, estoy diciendo hola. Entonces esto es básicamente sólo
para repetir lo mismo. Sup es. Esta es una subcadena y esto es similar a lo que
vamos a ver en un momento. La descripción aquí. Puede ser un
poco complicado, pero no te preocupes por ello. El byte suele ser algo
que realmente no necesitamos. Pero lo que sí
recomiendo es que siempre puedas
echar un vistazo a cada una de estas funciones y
básicamente simplemente haremos clic en
ellas y luego podrás ver una
descripción bastante buena e incluso
puedes hacer clic
Más información para saber más. Lo que vamos a hacer aquí
es que vamos a hacer g sub, g sub. Esto parece una locura complicado,
pero en realidad no lo es. Así que vamos a
hacer doble clic en esto. Va a formatear todo
esto correctamente y
sólo vamos a poner en
la coma de cadena de prueba. Y entonces este es un patrón. Queremos ver este patrón. Entonces, por ejemplo, hola. Y queremos
reemplazarlo por algo. Y en este caso
sólo vamos a
reemplazarlo por una cadena normal. Y esta cuerda
solo va a ser Howdy. Entonces, ¿qué esperas que suceda aquí si ahora
sacamos nueva prueba, verdad? Entonces, si tuviéramos que imprimir
nueva prueba, ¿verdad? Entonces esta nueva variable, lo que va a tener G sub, ojalá lo que
va a hacer va a tomar la
variable test aquí mismo. Y va a buscar
la palabra hola, ¿verdad? Y va a
devolver una copia en que cada vez que salga hola, va a estar reemplazando
eso por Howdy. Entonces, si tuviéramos que
imprimir nueva prueba, bueno, ojalá
lo que vamos a encontrar es que va a
decir, ¿cómo estás ahí? Estoy diciendo ¿Hola? Juguemos y veamos si efectivamente esto
es lo que sucede. Y esto es efectivamente lo que sucede. ¿Cómo estás ahí?
Estoy diciendo hola? Ahora lo que es sumamente
importante si tuviera que imprimir
también la
prueba original aquí mismo, bien, porque hemos puesto esto en la función y hemos reemplazado
el hola por un Howdy, encontrarás que la
prueba no ha cambiado. Por lo que se puede ver prueba está
completamente inalterada. Y esto también es lo que dice. Si sólo me detengo aquí, también
es lo que dije. Si entramos aquí, devuelve una copia de la cadena
que ha pasado. Entonces, no modifica la cadena que
hemos pasado en. Eso es muy importante
para recordar. Otra cosa que puedo mostrarte
es, por ejemplo, encontrar algo. Entonces esto va a
ser string dot find. Entonces este es otro método que
en realidad ha echado un
vistazo a lo que dice. Entonces busca la primera coincidencia
del patrón y luego
devuelve los índices. ¿Bien? Entonces, ¿qué significa eso? Bueno, vamos a poner por ejemplo
prueba por aquí. No
importa cuál pongamos. Y entonces puedo decir ahí, así que vamos a
echar un vistazo ahí. Y entonces también podemos
imprimir esto. Entonces, ¿dónde está lo
vamos a hacer
así ahí y luego encontrar
resultados Y deberíamos sacar un número
de esto para que
veas dónde hay siete,
bien, entonces ¿por qué es a las siete? Bueno, si contamos
una vez más, bien, entonces estoy contando los
personajes a mi derecha, entonces va a ser 1234567. Entonces este es efectivamente el
séptimo carácter, o es el carácter con índices o índice de siete.
Esa es la idea general. Y luego para financiar cosas que
puedes usar si a veces, es interesante y eso
es básicamente gritar caso y luego susurrando caso. Entonces la idea es ese punto de
cadena superior, y si metemos
algo ahí, y entonces podemos simplemente copiar esto. Así que solo seleccioné Control C, Control V para pegarlo. Y esto es entonces susurrar
y esto es entonces más bajo. Lo que vas a encontrar
es que la mayúscula, sólo va a ver
devuelve una cadena con todos los caracteres en minúscula
cambiar a mayúscula, mientras que abajo aquí
devuelve una copia con todas las letras mayúsculas
a minúsculas. Entonces si hacemos esto, se puede
ver gritando hola ahí, estoy diciendo hola y entonces
cada primavera es como. Entonces esos también son bastante
geniales. Ahora bien, estas operaciones,
incluyendo algunas de las otras funciones para cadenas, pueden ser increíblemente
útiles si tienes algún tipo de texto que
necesites modificar en
función quizás de la ubicación
del reproductor o
necesitas generar
algo en alguna parte. Entonces esto puede usarse básicamente
para un montón de cosas. Por eso puede
ser bastante importante. Y claro, como
siempre,
recomiendo mucho jugar un poco
con esto. Por supuesto, hay algunas funciones de
cadena más que puedes usar. Pero en conclusión, puedes obtener la longitud de una cadena haciendo
hashtag que la variable string
o también puedes usar las funciones de cadena desde
string dot y luego cualquiera que sea la función
en este caso Len. También hemos visto cómo
puedes reemplazar cosas en cadenas y siempre
recuerda que esto devuelve una copia de la
cadena original nunca se cambia. Incluso podemos encontrar cosas y cadenas y al
final aquí también
vimos cambiar caracteres en
minúsculas y mayúsculas también. Bueno, espero que esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
11. (Lua) en Lua: Bienvenido de nuevo a la introducción
del baño aquí para los núcleos de los bloqueos de carreteras. Y luego esta conferencia
vamos a estar echando un vistazo a los bucles. Ahora bien, ¿qué son los bucles? Bueno, son muy interesantes. En primer lugar, por supuesto, un nuevo guión por aquí, 08 bucles de guión y un bonito comentario
en la parte superior aquí también. Y la pregunta
es, ¿qué son los bucles? Bueno, bueno, ¿y si te
di la tarea imprimir cada número 1-100? Se podría decir, bueno, bien,
empecemos bien. Vamos a hacer uno y luego
vamos a copiar esto. Voy a decir 23 y 4.5, y en algún momento ya terminaste. Ahora voy a
decir, bueno, en realidad, lo que me gustaría que hicieras es que cada número par
en realidad no debería imprimirse. Yo sólo quiero los números impares, 1-100 y vas a estar como, Guau, eso es un poco molesto. Entonces vas a
hacer un comentario cada número par o simplemente
vas a eliminar
cada número par, entonces yo estoy como, Oh, perdón, leí esto mal. En realidad quería al
revés. En realidad no quería
imprimir los números impares. De hecho quería no imprimir los
números impares y estás como, Oh Dios mío, acabo de
cambiarlo todo. Y en ese punto sólo
vas a estar muy molesto. Por supuesto, esta
no es la forma de hacerlo. Hay una
manera mucho más fácil de hacerlo. Es decir, bucles, básicamente
bucles en un término muy general, o ciertas piezas de código
o ciertas piezas de script que van a
repetir x cantidad de veces, muchas veces
que básicamente quieras. Entonces, por ejemplo, podemos hacer un for-loop. Puedes ver esto ya
sugiere que puedes hacer un
bucle for y esto ya se está
resaltando como una palabra clave. Y la forma en que esto funciona es voy a escribir esto
y voy a explicar. Entonces podemos decir que soy igual a
uno y voy a decir diez, y voy a decir coma otra vez y luego uno y luego hacer. Y en cuanto presiono
la tecla Enter aquí mismo, se
puede ver que
el final degenera y todo lo que hay dentro
de este for-loop, similar a lo que hemos visto
si declaraciones, ¿verdad? Todo en lugar de esto
for loop se va a hacer en este caso diez veces. Ahora, ¿cómo es esto?
¿Cómo funciona esto? ¿Qué significa esta locura? Bueno, esto significa lo siguiente. Significa que el bucle, tenemos que empezar a
contar por supuesto, porque necesitamos saber
con qué frecuencia estamos pasando. Lo que sea que pongamos
aquí, podemos simplemente imprimir i en este caso, ¿verdad? Así que
sólo vamos a imprimir el número que estamos contando. Y la pregunta es, bien, empezamos uno
va a empezar en uno, quiere decir con esto, ¿verdad? Entonces estamos empezando en uno, bien, eso debería ser bastante
autoexplicativo. Empezó uno. Ahora vamos a terminar a las diez. Esto es lo que
significa este número , y luego es
extremadamente potente. Este número significa
que estamos aumentando el conteo en uno cada
vez que terminamos el bucle. También podríamos hacer tres. Entonces estamos aumentando el
conteo en tres o dos o seis o nueve o honramos
26 si
quisiéramos, podemos hacer muchas
cosas con esto. Pero por el momento, solo
estamos pasando por esto. Y cada vez que
pasamos por esta impresión, estamos aumentando este yo en uno. Y en cuanto llegue a
diez, ya terminamos con esto. Bueno, juguemos y
veamos qué pasa. Y podrás ver si ampliamos un
poco la salida. 1 234-567-8910, exactamente lo
que hubiéramos esperado. Pero estamos aumentando este yo uno cada vez
que terminamos un bucle. Así que estamos empezando de nuevo por aquí. Estamos como, Bien, ahora mismo soy
uno. El resto no
nos preocupa por el momento porque no tengo diez o
es menor que diez. Entonces estamos como,
estamos totalmente bien. Y luego estamos imprimiendo
yo, que de hecho es uno. Estamos llegando al final. Así que vamos a volver
al for-loop. Estamos como, bien, ahora
me aumenta en uno, así que ahora soy dos, y así sucesivamente y así sucesivamente y
así sucesivamente hasta llegar a diez. Y entonces el bucle es
como, Oh, mira esto. Ahora tengo diez. Así que ya terminamos. Y eso es lo que se llama
un for-loop en este caso. Muy interesante de hecho. Ahora también podemos tener un tipo
diferente de bucle. Déjame parar el
juego por un momento. Y podemos tener un tipo
diferente de gripe y eso es un bucle while. Entonces, por ejemplo, podemos tener una variable local x por
aquí, eso es tres. Y entonces podemos decir while, y podemos decir mientras x es
menor o igual a diez, entonces vamos a hacer
algo que va a tener
en serie se obtiene una expresión booleana explícita
que tiene que ser cierta. Y si bien esto es cierto, vamos a hacer
esto ahora mientras
los bucles son notoriamente propensos
con lo siguiente, y eso es un bucle infinito. bucle infinito ocurre si, por alguna razón,
nunca se llega a falsificar esto. Entonces si x siempre es
menor o igual a diez, entonces este
bucle while va a ir, va a ir para siempre. Ahora creo, si
recuerdo correctamente, Lula y además, Roblox Studio tienen una especie de protección contra fallas
incorporada para esto, que todo tu
Roblox Studio no se estrelle si esto sucede. Pero aun así
te recomiendo que no pruebes esto porque
es un poco molesto. Entonces dentro de aquí podemos por ejemplo decir, bien, solo
vamos a aumentar x uno cada vez y
entonces deberíamos estar totalmente bien porque claro, si aumentamos esto en uno, en algún momento va a
ser más grande que x, ¿verdad? Entonces, si solo podemos decir print y eso es en realidad
también print out x, y nada sería el caso. Y hagámoslo antes de que lo
aumentemos sin embargo. Así que vamos a imprimir
tres todo el camino hasta las diez. Y entonces también deberíamos
estar fuera del bucle. Así que vamos a hacer
otra impresión por aquí fuera del bucle. Y juguemos esto y
veamos qué pasa aquí. Y claro, 3-10, donde fuera del bucle,
absolutamente no se preocupe. También podemos hacerlo, y esto
es sólo un ejemplo aquí. Dentro de ella. Si estamos dentro de un bucle while o un
bucle for para el caso. ¿Correcto? Digamos que queremos
ser como, Bien, ¿sabes qué? Cuando x llegue a siete, entonces en realidad queremos hacer lo siguiente y vamos a romper. Break es otra palabra clave
que va a
salir completamente inmediatamente del bucle como si hubiéramos llegado
al final del bucle. Y eso no quiere decir que
lleguemos a este fin. Estamos como si estuviéramos afuera
del pajarito saltando. También podemos usar continuar. Y esto actuaría como si hubiéramos llegado
al final por aquí. Por lo que esto continuará el bucle. Esto romperá el bucle. Esto básicamente
vamos a estar fuera
del bucle en ese punto.
Esa es la idea general. Entonces si usamos break aquí, entonces vamos a tener salida de
tres a siete. Puedes, o en este
caso seis en realidad porque estamos dando salida
x antes de aumentarlo. Entonces x es seis, se pone, se
incrementa a siete. X7, estamos rompiendo y por
eso tenemos 345.6. Y luego estamos fuera del circuito. Si tuviéramos que hacer
una continuación aquí, lo que pasaría es en realidad nada sería
diferente a lo que
teníamos antes porque nada después de esto si la
declaración es relevante. No obstante, si lo pusiéramos desde
el principio por aquí, ahora va a ser
interesante porque ahora son siete no
sería salida. Entonces, si vemos esto ahora mismo, se
puede ver de repente, lo que pasaría es que nos
encontraríamos con un bucle infinito. Ahora esto es por supuesto, app. Para que veas que hemos agotado el
tiempo de ejecución permitido porque lo que pasa aquí es que x es siete
y luego estamos como, bien, sigamos y
luego es como ejercicio. Sigamos, Sigamos,
Sigamos, Sigamos,
Sigamos, Sigamos. Y va a hacer esto hasta que, en este caso, se logre el tiempo de
ejecución permitido. Eso es 10 s, si
podemos ver esto bien, entonces la diferencia
aquí en el tiempo es de 10 s. Entonces, en teoría, esto puede suceder. Entonces es por eso que debes
tener cuidado con esto. Así que podríamos, por ejemplo, hacer
algo como esto. Entonces la impresión pasa
después y luego lo que el aumento
aquí sucede antes. Entonces, si tuviéramos que hacer con esto, entonces de repente saltamos 6-8
y saltamos por encima de
siete en este caso. Entonces esa es otra idea
interesante. Y luego también
tenemos un bucle de repetición, que es más o una cosa muy similar
al bucle while. Lo que básicamente
lo estamos haciendo al revés. Entonces básicamente estamos diciendo, Oye, queremos repetir el siguiente código hasta que
algo sea cierto. Eso es más o menos, es casi equivalente al bucle while, pero es un poco diferente. Y eso está escrito así. Eso es prácticamente
todo acerca de los bucles. O pueden ser interesantes. Eso debería ser más o menos
hay que hacerlo, ¿verdad? En resumen, los bucles son una manera
increíblemente fácil y eficiente de
repetir el código que
quieres repetirlo x cantidad de veces que
hay para los bucles, mientras que los bucles y
repiten hasta los bucles. Y esas son las, creo que las tres versiones principales. También hay algunas cosas
interesantes para, para bucles posteriores que podemos
ver los cuatro bucles de cada uno. Pero en general, esos son
básicamente los tres grandes. Y pueden ser muy,
muy interesantes de hecho. Así que recomiendo mucho jugar un poco con
esto. Si quieres un
poco de desafío, esto es solo un
desafío para ti mismo. Lo que puedes hacer es
aumentar esto a 100 e
imprimir números 1-100 y luego hacer exactamente lo que te
dije y básicamente decir, Oye, solo queremos imprimir números si son
divisibles por dos. Entonces si el, si hay
par o si no los hay. Entonces, esto debería ser
bastante sencillo
con la conferencia if and else y la conferencia de loops,
deberías poder hacer eso. Te recomiendo
que pruebes esto. Es un ejercicio muy divertido. Independientemente de eso, espero que esto te
haya resultado útil
y aprendas algo nuevo y los
veré a todos en la próxima conferencia. Entonces, sí.
12. (Lua) Funciones en Lua: Bien, bienvenido de
nuevo al retrete o introducción aquí para
el curso de barricadas. Y en esta conferencia, vamos a estar echando
un vistazo a las funciones. Entonces he puesto esta palabra
un par de veces. Vamos a crear un nuevo script
por aquí y cambiarle el nombre a 09 funciones de guión, y por supuesto también 09
funciones aquí mismo. Ahora la pregunta es,
¿qué son las funciones? Bueno, como una visión general de
alto, alto nivel, básicamente
puedes poner múltiples instrucciones en lugar de una función y luego siempre ejecutar esa función
en lugar de hacer todas estas cosas diferentes como ejemplo de alto nivel,
podemos escribir una función. Se puede ver que esto es una palabra clave y luego este es el
nombre de la función. Vamos a llamar a esto
cocinar, ¿verdad? Y entonces incluso podemos poner
algo aquí así que escribimos el nombre de esta función y
luego tenemos paréntesis. Tan pronto como pongas
el paréntesis abierto, el de cierre debería
generarse automáticamente. Y aquí entonces puedes poner
ciertos argumentos. Esos se llaman parámetros, son parámetros y
se pueden pasar a la función, cambiando
así la salida. Así que en nuestro ejemplo de codificación aquí, vamos a poner
nada aquí y en realidad solo en realidad
solo vamos al final, presione Enter, y
luego el final aquí, una vez más
vamos a
generar automáticamente. Esto es lo mismo
que hemos visto con los bucles y las declaraciones if y
else también. Y dentro de aquí, si estamos cocinando algo, ahora
puedo poner cosas diferentes. Ahora, en este caso,
no va a funcionar. Sólo voy a hacer
comentarios solo para que te hagas la idea de una función. ¿Qué es una función, verdad? Así que cada vez que queremos cocinar, tal vez en realidad queremos
cocinar algo específico. Así que digamos,
digamos que vamos a
llamar a esta cocinera cena por
el bien de la discusión, ¿verdad? Y cada vez que
quiero cocinar la cena, hay algunas cosas que
tengo que hacer, ¿verdad? Entonces tengo que sacar cubiertos, tengo que quizá
precalentar el horno. Tengo que hacer un corte de
verduras, cosas así. Entonces hay ciertas
cosas que siempre tengo que hacer si quiero hacer
esta función específica, verdad? Esta cosa específica. Y puedes
enumerarlos todos dentro de una función. Y luego en lugar de escribir
cada uno individualmente, si tuviéramos que hacer
esto varias veces, siempre
tendríamos que leer todas y
cada una de las instrucciones. Y eso es una locura. Básicamente una función
es un contenedor en que puedes poner múltiples líneas
diferentes
aquí en este caso, y luego se ejecutarán. Ahora bien, este es un ejemplo de alto nivel
para que te hagas la idea. Ojalá. Ahora vamos a echar un
vistazo a un ejemplo real. Entonces un ejemplo real
podría ser una función sum. Estamos dentro
del paréntesis. Ponemos en realidad el número
uno y el num dos. Y ahora lo loco es,
si tuviéramos que llamar a
esta función num, en realidad
queremos que se devuelva
algo. Entonces podemos decir retorno. Y puedes ver que esto
también es una palabra clave y queremos devolver num uno más num dos. Y esto es ahora lo que
se está devolviendo. Ahora claro, en este caso, ya
tenemos
alguna especie de función simplemente
usando el operador plus. No obstante, esto es una vez más, solo como un ejemplo
para que empieces
a entender las funciones y por qué pueden ser
sumamente útiles. Porque ahora lo que podemos hacer es que podemos imprimir y podemos decir, bueno la función de suma, ¿verdad? Y podemos simplemente imprimir
algunos y luego decir 3.10. Y esto es, como pueden ver, esto es, estamos llamando a
la función sum. Incluso se puede ver que
destaca por aquí. Si hago clic en esto
y dentro de aquí, podemos pasar en un número uno y otro número, y
esos se suman aquí. Entonces estos son parámetros que
estamos pasando en parámetros, siempre hay que tener la cantidad
correcta de parámetros. Entonces, si lo hacemos, si
tuviera que hacer esto, entonces mientras no estamos
recibiendo ningún problema aquí, si realmente tuviera que ejecutar
esto, obtendríamos un problema. Pero por el bien de la discusión,
juguemos esto. Y veremos que si
miro en la salida, intentamos realizar
un add en un número de nulo porque si no
paso algo bien, entonces lo que se pasa adentro es nulo. Ahora ya hemos escuchado
esto antes, ¿verdad? Nil, solo fue la ausencia de algún valor en una determinada variable. Entonces sí tenemos que
pasar algo adentro. Y si tuviéramos que pasar los
dos números por aquí, entonces
podremos encontrar que la función sum da salida 13, que es exactamente lo que
esperaríamos aquí. Ahora por supuesto, cuando
en realidad estás escribiendo algo, las funciones pueden
complicarse mucho más que esto, pero esto es solo una
introducción muy, muy pequeña a las funciones. Los estaremos viendo
cuando en realidad estemos haciendo algo de programación
con el propio Roblox. Para resumir aquí, funciones que básicamente puedes
usar para agrupar múltiples cosas diferentes y hacerlas todas ejecutadas
una tras otra. Esto también puede incluir
otras funciones. También se puede volver a
ciertas cosas y funciones. Por ejemplo, tenemos una función sum aquí donde pasamos
en dos parámetros. Y esos entonces van a ser devueltos después de que estemos
haciendo algo con ellos. Esa es una
mirada general a las funciones. Si no estás del todo seguro de
cómo usarlos, no te preocupes, lo más importante
es que te hayan presentado este
tema y también
podremos ver más sobre funciones en
conferencias posteriores. De lo contrario, espero que esto te haya resultado útil y hayas aprendido
algo nuevo. Te veré en
la próxima conferencia. Entonces, sí.
13. (Lua) Tablas en Lua: Bien, bienvenidos de nuevo
a la introducción del baño aquí para las puntuaciones de robots
que esta conferencia, vamos a estar echando
un vistazo a las mesas. Ahora, las mesas son algo muy
interesante y pueden ser
bastante complicadas, pero no te preocupes en absoluto, vamos a estar bien. Así que hagamos tablas por
aquí y tablas hash, y luego
lo mismo por aquí. Y esto es mesas son mesas. La idea general de
las tablas es básicamente que tienes una especie de
lista de ciertas cosas. Entonces cuando, por supuesto, una mesa es un poco
diferente a una lista, pero puedes, por ahora pensarla como una lista y para que
tengamos algo que probar. Voy a hacer una
variable local llamada días. Y en estos días,
esta va a ser una lista de todos los días
de lunes a viernes. En primer lugar, lo que
vamos a hacer es igual a y luego
un corchete, el corchete de cierre se
genera automáticamente de nuevo. Y esta va a ser una
tabla de cuerdas en este caso. Entonces esto va a
ser la coma del lunes, y luego tenemos el martes. Y ¿puedes adivinar qué
viene después exactamente? Día de los testigos, que es como se escribe el jueves y
luego por último pero no menos importante, también
tenemos el viernes. Ahí vas. Entonces esto es básicamente, bueno, estos son los días y ahora
podemos hacer lo siguiente. Podemos imprimir, ¿verdad? Y lo que podemos imprimir
es que podemos imprimir al día. Y el día que vamos a imprimir es que vamos a imprimir bien, ¿qué tal si queríamos
imprimir, digamos el miércoles? ¿Cómo hacemos esto? Bueno, pensemos en
este día para que podamos poner en días y puedas
verlo incluso sugerirnos esto. Y ahora, ¿cómo
sacamos realmente una de nuestras muertes? Bueno, tenemos este paréntesis por aquí y perspicacia que
podemos poner en un número. Y ese número representa el índice de un lado
de la lista, ¿verdad? Entonces este va a ser
el elemento del índice uno y X2 y X3 y X4 y X5. Pero todos, miércoles,
vamos a hacer tres y vamos jugar a ver si salimos el miércoles y de hecho un día, miércoles, eso ya es
bastante increíble. Ahora, el índice aquí comienza
en uno en lugar de cero. Entonces esto solo es
importante si
ya estás programando y si
has programado antes, generalmente cuando haces otras cosas en otros lenguajes
y otros lenguajes de programación, generalmente los índices comienzan en cero. Este no es el caso en Lua. En Lua, cada índice comienza en uno. Esto
es muy importante. Ahora bien, si no
sabes lo que significa nada de esto, no
te preocupes por ello. Eso está bien. Sólo digo que para las personas que ya han
programado antes, esto es algo muy, muy
importante a tener en cuenta. Ahora claro que
tenemos salida uno, pero y si tal vez queremos, vamos
a sacar todo. Entonces esto va a parecer un
poco más complicado, pero tenemos un
for-loop que podemos usar que básicamente dará salida,
bueno, todo dentro
de esta tabla en particular. Ahora, hay dos
cosas distintas que podemos hacer. O bien podemos usar un
for-loop normal justo
donde estamos como, Oye, quiero empezar en
uno y quiero detenerme en. Se trata de unas jornadas de hashtag muy
importantes. Entonces esta sería la longitud
de esta tabla en particular. ¿Como cuántos elementos
hay en esta tabla? Quiero aumentar en uno. Para esto quiero hacer y
luego solo imprimir días. Una vez más corchetes. Vi esto en teoría
debería salir lunes, martes, miércoles,
jueves, viernes. Eso debería estar totalmente bien. A ver si esto funciona. Y claro, lunes, martes, miércoles,
jueves, viernes. Absolutamente, no se preocupe. Y funciona totalmente bien. Esto bastante genial. Hay una segunda manera de
que podamos hacer esto. Esto funciona totalmente, pero hay otra manera de
que podamos hacerlo. Ahora esta, un
poco más complicada. Sin embargo, la razón por la
que el otro podría ser interesante
es porque en este momento las tablas están
mapeadas al índice. Entonces básicamente esto es
rojo, este es uno, esto es dos, esto es tres, esto es cuatro, esto es cinco. En teoría, podría
hacer lo que quisiera. Así que podría hacerlo, y sólo
voy a, voy a hacer cosas locas. Digamos que un igual a
esto es igual a esto, C es igual a esto, d es igual a esto, y entonces
F es igual a esto. F es E. En realidad, ahí tienes. Entonces puedes ver que no
hay, No, no hay errores
por aquí porque ahora
están mapeados a
diferentes claves, ¿verdad? Entonces ahora
lo loco es que si tuviera que
quedarme con esto y estoy jugando esto, lo que encontrarás es
que un día es nulo. Y además no estamos
dando salida
a nada porque no hay,
Esto es todo nulo. Eso, esto no funciona. Pero esto bien que tenemos que
hacer es que necesitamos
obtener el par de valor clave. Porque
básicamente hemos transformado esta tabla de una
lista normal en la que se puede acceder a los elementos a través del
índice a una especie de diccionario o un mapa que mapea un valor
a otro valor. Entonces ahora podemos hacer un for-loop
con una clave y un valor, y esto va a ser en
pares de la tabla de días. Entonces vamos a hacer algo. Pero esto se ve bastante loco. La idea general, sin embargo, es ésta, esto es lo nuevo. Lo que estamos tomando es que
estamos recibiendo una llave que siempre es
lo primero aquí, ¿verdad? Entonces a es igual, esta es la clave y el valor es lo que esté escrito
dentro de ella, ¿verdad? Entonces antes la clave era
solo el índice 1,234.5. Y ahora la clave es a, B, C, D y E. Esto es
lo único que cambió. Y si fuéramos a
hacer lo siguiente, si ahora hacemos día o
digamos, digamos clave. Y luego vamos
a imprimir la llave. Y voy a hacer el valor y luego imprimir el valor. Lo que encontrarás es
que esto generará valor
clave el lunes y
así sucesivamente y así sucesivamente. Pero vamos a jugar a esto. Verás clave un valor el lunes, clave C es miércoles, curiosamente, y esto
también es algo muy importante. Ya no está en orden. ¿No es una locura? Bueno, este es efectivamente el caso. Así que vamos a jugar esto otra vez. Como vemos tuvimos lunes, miércoles, martes,
viernes, jueves. Hagamos esto de nuevo y volvemos
a recibir el mismo pedido. Esta es otra lección extremadamente
importante porque si estamos usando estos
pares aquí mismo, el orden en el que hemos guardado
esto no está garantizado. Eso es sumamente
importante y básicamente hay
que tenerlo presente. No obstante, sigue siendo algo muy,
muy interesante. Pero ten esto en
mente, es muy genial. Y si volviera a borrar el valor de las claves de
aquí, ¿verdad? Y íbamos a
pasar por esto otra vez. ¿Cuál va a ser la clave? Bueno, es exactamente 12345. Ahora el orden es correcto porque no me
cito sobre esto. No estoy 100% seguro, pero
estoy bastante seguro de que las claves son ordenables
u ordenables, ¿verdad? Entonces 1234, hay un
orden definido para esas cosas, entonces el orden
siempre va a ser la forma en que
básicamente las has guardado. Y eso es bastante genial. Efectivamente. Sin embargo, esto no es
todo, porque ¿qué
falta en estos días? Bueno, claro, faltan el sábado
y el domingo. Entonces lo que podemos hacer
es que realmente podemos insertar ciertos valores
en esta tabla. Podemos hacer punto de mesa y
se puede ver que hay un montón
de cosas que podemos hacer, podemos crear, podemos
encontrar ciertas cosas. Incluso podemos ver devuelve
la clave numérica máxima. Hay cosas locas. Podemos movernos, las cosas, podemos ordenarlas,
podemos clonarlas. Pero para nuestros propósitos, lo que en realidad quiero es que solo
quiero insertar algo. Y lo que quiero insertar es que quiero insertar en días. Entonces esta es la tabla en la que
queremos insertar. Entonces tenemos que poner en lo
específico, en este caso, lo que en realidad quiero
hacer es que quiero poner esto en un lugar específico. Entonces voy a poner esto
en la posición número seis. Y luego quiero
poner en el valor. Y el valor aquí es el sábado. Y lo que podemos hacer es
simplemente copiar esto. Y luego en la posición
siete en este caso, quiero poner el domingo. Y si tuviéramos que
sacar esto ahora, así que una vez más, puedo simplemente
tomar lo que quiera. En realidad,
solo tomemos este y luego solo iremos a
eliminarlo de aquí. Eso va a estar bien para que
no abarquemos la salida por aquí. Juguemos, y
encontrarás que ahora tenemos un
seis clave y eso
va a devolver el valor
del sábado y un
siete clave que va a
devolver el valor del domingo. Muy interesante de hecho. Y luego una última cosa aquí. Ahora sé que esto ha sido bastante y esto es un montón de cosas
nuevas a la
vez. No te preocupes en absoluto. Vamos a
poder, ya sabes,
vas a poder navegar
a través esto con facilidad un
poco más tarde. No obstante, esto, lo
que siempre recomiendo como siempre es simplemente probar un montón de cosas
con esto. Pruébalo. Al tener diferentes valores aquí al tener
en lugar de cadenas, puedes poner números aquí. Y por cierto, esto también es algo
realmente interesante. Incluso puedes poner,
puedes mezclar y emparejar diferentes valores
de tipos de variables. Puedes tener números aquí
y así sucesivamente y así sucesivamente. Lo cual en realidad es
muy interesante porque esto significa que se
puede tener una cuasi clase. Ahora bien, esto es un poco
más avanzado y una vez más, algo para las
personas que
ya han programado
en otro idioma. Entonces puedes tener, así que por ejemplo podemos tener una persona que
tenga un FirstName, por ejemplo, john. Y puede tener apellido, que tal vez sea Smith. Y entonces incluso puedes
tener una h, ¿verdad? Que tal vez sea un 32. Y ahora lo que puedo hacer es que
puedo imprimir persona, persona. Y luego queremos poner
en FirstName, esta y. y luego queremos
tener a la persona. También podemos hacer
punto persona, y esto es una locura. Incluso podemos hacer punto persona. Y puedes ver las
tres cosas diferentes que hemos puesto en
esta tabla en particular. Podemos salir así. Entonces podemos hacer apellido
y luego podemos decir, es que podemos decir
persona.Nueva era, años. Déjame alejarme un
poco. Ahí vas. Entonces persona y ¿qué? Va a dar salida al nombre de la
persona. Esta es la forma en que
podemos escribirnos. También podemos acceder a esto por esto. Y solo tenemos es y
luego la edad, años. Vamos a sacar este LLS jugar
esto y ver si esto funciona. Y claro, su hijo John
Smith tiene 32 años. Absolutamente jodidamente, increíble. Esto es genial y por supuesto
podemos ir un
poco más allá. Y ahora esto es justo,
solo quiero mencionar esto. Incluso podemos hacer una
mesa de mesas. Esto quiere decir que en teoría, podemos tener múltiples personas y luego tener una lista
de esas personas. No vamos a hacer
esto aquí porque eso es absolutamente una locura. Esto va más allá del alcance de la
introducción de Lula aquí. Yo sí quería
presentarles a las mesas. Pueden ser bastante complicados. Esto puede ser un
poco complicado. Esto puede ser un
poco complicado. Pero ojalá
pude empujarte en la dirección de una especie de
comprensión de lo que está
pasando aquí. Una vez más,
recomiendo encarecidamente llevar el
guión por aquí, que por supuesto siempre está
disponible para descargar. Y puedes tomar esto
y simplemente probarlo. Intenta hacer
cosas diferentes con él, insertando cosas en
diferentes lugares, insertando cosas tendidas alrededor de
esa persona de aquí. Recomiendo encarecidamente
solo hacer eso y tratar de tener una idea
de cómo funciona esto. Pero una vez más, para
resumir tablas generales, o pueden ser listas de cosas que tienen ciertas claves
y ciertos valores. Si no especificas las claves, entonces las claves son solo
una a través de cualquiera que sea la cantidad de elementos dentro de esa tabla
o lista en este caso. Y puedes recorrerlos con dos bucles for diferentes, dos estilos diferentes
de bucles for. Y eso es muy,
muy genial de hecho. Incluso podemos usar las mesas para hacer algo
como una clase. Ahora en este caso,
es una persona por aquí que tiene
apellido y edad. Y podemos sacar esto
de dos maneras diferentes. Bueno, eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
14. (Lua) La biblioteca de matemáticas: Bien, bienvenido de nuevo
a la introducción del baño aquí para los núcleos de los bloqueos de carreteras. Y en esta conferencia
vamos a estar hablando la biblioteca de matemáticas, ¿verdad? Entonces, una vez más, por supuesto, creamos nuestro guión por aquí, 11. Esto va a ser liberal matemático. Ahí vas. Y esto va a ser 11
matemáticas, eso va a estar bien. Y esto sólo
va a ser una introducción muy, muy minúscula aquí. Pero podría ser útil. Así que, por supuesto, ya hemos hecho algunas cosas
matemáticas, ¿verdad? Hemos agregado, hemos restado, hemos multiplicado, dividido, e incluso tenemos el resto. Cosas bastante locas
que ya hemos hecho. Pero con la biblioteca de matemáticas
podemos hacer cosas aún más locas. Entonces, si tuviéramos que imprimir por ejemplo menos cinco, pero estamos
como, ¿sabes qué? En realidad,
realmente no me importa si es o no
menos cinco o más cinco. En realidad solo quiero el número
absoluto para esto. Bueno, sólo podemos
imprimir punto matemático. Y puedes ver aquí
todas las locuras que básicamente podemos conseguir
con esta biblioteca de matemáticas. Podemos obtener un número aleatorio. Eso lo vamos a ver en un momento. Incluso podemos conseguir la locura de Pi. Podemos hacer el exponente,
obtenemos coseno, podemos devuelve un
ángulo que le das en radianes y lo
convierte en grados. Obtenemos el logaritmo. Hay muchas cosas, como se puede
ver claramente que podemos hacer. Y esto puede ser sumamente útil para hacer aún más cosas
matemáticas. Si eres como, Oh, no
necesito estas cosas de matemáticas. Bueno, por ejemplo, tener cosas como la onda sinusoidal es
realmente útil. Porque lo que puedes
hacer con un letrero es, por ejemplo hacer círculos perfectos y así puedes estropear las cosas en círculos. Sólo estoy diciendo que esa
es una de las cosas que, donde esto puede ser de
suma utilidad. Pero en este caso en
realidad queremos abs, lo que significa absoluto. Entonces estamos obteniendo el
valor absoluto de menos cinco, que si solo jugamos
esto es por supuesto cinco, porque, bueno, ese es
el valor absoluto. Al valor absoluto no le
importa el signo. Simplemente le importa, bueno, ¿cuál es el valor real? Hay otras cosas
que podemos hacer. Entonces, por ejemplo, podemos hacer un verde azulado matemático. Entonces este va
a ser el techo. Puedes ver que devuelve
el entero más pequeño, mayor o igual a x ¿Qué significa eso?
Bien, Esto suena como, suena mucho
más loco de lo que realmente es. Si ponemos en 10.21, sólo
va a regresar,
bueno, va a sellar. Así que en realidad va a
hacer de esto un número entero, lo que significa que esto va a redondear hacia arriba al
siguiente número entero. Si en realidad hacemos el otro que va a ser piso, esto va a redondear hacia abajo. Así que en realidad podemos poner esto arriba, redondear hacia arriba y éste
redondea hacia abajo, dual. Ten en cuenta, esto
no ronda con las cosas normales de
redondeo, ¿verdad? Entonces también tenemos ronda. Este, en este caso también se agota porque
en realidad se ve bien. O la regla ¿verdad? 0.5 significa redondear hacia arriba y todo por debajo de
0.5, redondear hacia abajo. Pero vamos a ver,
esto debería ser 111010. A ver si ese es
efectivamente el caso. Y claro, 111010. Perfecto. Y detengamos esto y
hagamos esto de nuevo con 0.5 y luego
debería ser 111011. Y claro, 111011, exactamente como llegamos ahí. Son absolutamente perfectos. Así es exactamente como
funciona esto porque son las, digamos, las reglas normales de
redondeo. Ahí vas. Entonces eso
ojalá tenga sentido. También podemos obtener el
mínimo y el máximo. Entonces esto también es, puede ser
bastante útil en escritura. Entonces esto es min,
que es básicamente, te va a dar
el número mínimo. Pones dos números, ¿verdad? Y devuelve un
número menor dado como r Omega. Entonces eso debería tener
mucho sentido. Y entonces claro que podemos
tener dos corolario a eso, que es el máximo,
que devuelve mayor número. En realidad puedes,
estoy bastante seguro, poner tantos
números como quieras. Vamos a hacer eso. ¿Por qué no 60? O sea, eso no
cambiaría nada uno, esto en teoría también debería
funcionar. Vamos a ver. Y efectivamente lo hace. El primero es uno y
el segundo es 515. Entonces esto puede ser
realmente útil, por ejemplo, tal vez quieras obtener
el número más alto
para una puntuación alta o
algo así, las funciones Min y max
pueden ser realmente útiles. Pero también vamos a imprimir pi porque sombrero blanco y
no poder sino pi. Y luego también podemos usar
la matemática de raíz cuadrada que SQRT es la raíz
cuadrada de 25. Entonces pi por supuesto
va a ser 3.141, 5265, algo así. Y entonces la raíz cuadrada
de 25 debería ser cinco. A ver, ¿a qué
distancia estaba yo con pi? 314-15-9265? Creo que tenía razón. Creo que dije 649. No estoy seguro, pero
eso básicamente es pi. Y esto es por supuesto con
precisión, eso es amina. Nunca voy a necesitar esta
precisión en los juegos de todos modos, estoy bastante seguro de que esta es la precisión que
vas a conseguir, la circunferencia
del universo observable
dentro de milímetros. Así que estoy bastante seguro de que
esto va a estar bien. Y entonces claro, la raíz
cuadrada de 25 es cinco. Perfecto El último deja. También puedes tener
algo de aleatoriedad. Ahora aquí es muy importante que la aleatoriedad para la computadora
sea siempre pseudo-aleatoria. Básicamente, esto significa que
lo siembres con cierto valor. Y cuando generas
números que
siempre van a ser los
mismos, esto es lo mismo. La idea de por ejemplo cuando piensas en Minecraft world generation como ejemplo, puedes ponerlo en
una semilla y luego siempre genera
el mismo mundo. Bueno, ¿cómo funciona eso? Esta es exactamente la semilla
que estás poniendo. Y entonces los valores que
sacas son siempre los mismos. Entonces podemos hacer un azar, esto te va a dar
un número, el número 0-1. Y también puedes hacer
matemáticas punto aleatorio. Y en realidad podemos
poner cosas ahí. Entonces podemos poner en un 0.10
y esos van a ser los
límites inferior y superior que puedas conseguir. Así que vamos a jugar
esto y podemos ver que el primer número es 0.6,
lo que sea, lo que sea, lo que sea,
lo que sea, y luego 42. Quiero decir, qué
número perfecto por aquí para conseguir n. Si paramos esto y
volvemos a jugar esto, donde encontrarás es que, oh, exactamente los mismos
números porque, y esto es exactamente lo que pasa, porque la semilla es
la misma, ¿verdad? Entonces tenemos la misma semilla
aleatoria por aquí. Si cambio esto, ahora vamos a conseguir números
completamente diferentes. Entonces puedes ver ahora
obtenemos 0.0, 69.57. Entonces cuando lo pones en la semilla, bien, si pones
100 también, deberías en teoría obtener exactamente
los mismos
números que yo obtuve. Y es decir, esa es la idea de esta aleatoriedad o la
pseudo-aleatoriedad. Eso es bastante genial de hecho, generalmente si quieres
aleatorizar esto por completo, lo que tomas es como
la cantidad de segundos en tu computadora o la cantidad de ticks
en tu computadora, porque eso suele ser lo suficientemente
aleatorio para una semilla. Para resumir. En general, las
funciones matemáticas son, bueno, hay abundantes y pueden conseguirte muchas cosas
diferentes. Puedes números absolutos, puedes redondear hacia arriba y hacia abajo. Puedes obtener minimax, e incluso puedes obtener algunas
constantes como pi aquí e incluso números aleatorios cuyos
juegos finales son extremadamente útiles. Y ellos pueden simplemente, te pueden ayudar mucho para un
número de cosas diferentes. Son enemigos matutinos en un área determinada
que es un poco aleatorio o que le dan
atributos aleatorios a los enemigos. Todo tipo de cosas.
Realmente genial de hecho, ¿verdad? Pero eso en realidad
concluye esta conferencia y también toda la introducción
inferior. Ojalá esta fue una introducción
lo suficientemente buena como
para que te agarres un poco aquí con Laura. Si todavía no te sientes muy confiado en
esto, está totalmente bien. Hay dos cosas que definitivamente
puedo recomendar. Número uno, si hay ciertos temas que hemos discutido en los que estás
un poco tembloroso, intentaste volver a pasar por la
conferencia y ver si con todas las diferentes
cosas de las que hemos
hablado hasta ahora en retrospectiva, ahora
son un poco
más fáciles de entender. Número dos, lo que recomiendo
encarecidamente es simplemente jugar con estos, con los diferentes temas
que hemos conseguido. Simplemente juegue
un poco con las funciones matemáticas de aquí, juegue con mesas,
juegue con bucles y declaraciones if and else. Ya puedes hacer
muchas cosas con solo estas 11 cosas de las
que hemos hablado. A pesar de que puede que
no parezca mucho. Te lo digo, estas son las
bases en las que todo, cada juego básicamente se crea
con todos estos conceptos básicos. Sí, claro, también hay
muchas otras cosas. Pero estos conceptos básicos, si no
puedes usarlos, entonces todo lo
demás es irrelevante porque necesitas conocer los
fundamentos, los fundamentos. De lo contrario, simplemente
no funciona bien. En cuanto a esto,
estamos saltando los controles de carretera propiamente dichos si esto le ha
sido útil hasta ahora, realmente agradecería
una reseña de usted. De lo contrario, los veré en
la próxima conferencia. Entonces, sí.
15. (Roblox) Roblox Studio explicado: Bien, bienvenidos de nuevo
a los puntajes de Roblox. En esta conferencia,
vamos a echar un vistazo a algunas de las UI de Roblox Studio. Ahora esto solo te va a
dar una visión general, no
va a entrar en
cada botón y lo que hace todo, porque eso llevaría básicamente un video de
dos horas. Y eso no es exactamente
lo que tenía en mente. Solo quería
mostrarte cada una de las diferentes ventanas de
aquí y más o menos lo que hacen. Entonces o esto o tal vez sin
la salida va a ser aproximadamente lo que
verás cuando abras Roblox Studio por primera
vez con un juego personalizado, lo primero que realmente
quiero que hagas es ir a ver y agregar la
salida por aquí, porque la salida es una de las cosas más importantes que usaremos a lo largo de todo
el curso, porque básicamente nos
permite generar cualquier cosa que
queramos a través de scripts. Y aquí es donde se
va a exhibir esto. Entonces centrémonos en esta
gran área de aquí mismo, que es una especie
de vista de cámara. Y
ya puedes ver que estoy en modo selecto. También hay modo de movimiento, modo escala y modo de rotación. Digamos en modo selecto. Y si tuviera que hacer
clic derecho sobre esto, ahora puedo moverme
si muevo la cámara, pero puedo acercar con el
desplazamiento de la rueda del mouse. Y si hago click izquierdo, en realidad
puedo seleccionar
ciertas cosas. Entonces puedes ver ahora hay
un borde azul alrededor de él, es
decir, he
seleccionado este objeto. Esta es la idea general. También puedo moverme con WASD y con E y hacer cola
arriba, va arriba y abajo. Se puede ver cuando muevo la
cámara en la parte superior derecha, el cubo de aquí también
se mueve, porque este es un espacio
tridimensional, se representa
con un valor x, un valor y, y un valor z de este es solo un sistema de
coordenadas tridimensional. Puedo pinchar en las
caras de aquí y luego va a
cambiar a esa cara. Para que pueda ir a la vista
de arriba hacia abajo. Y ahora tengo todo
en vista de arriba hacia abajo. Podría ser útil
para ciertas cosas, pero también siempre puedo
rotar fuera de ella. Si selecciono un determinado objeto, se
puede ver que se ilumina en el Explorer a la derecha, a
la derecha, para que pueda ver la
pequeña ubicación aquí que luego se resalta. Y la idea general es
que también pueda simplemente hacer clic en esto y luego
también se pone de relieve. Entonces esta idea del explorador. El explorador
representa todo lo que hay dentro de nuestro juego, tanto dentro del mundo del juego. El mundo del juego es todo lo
del espacio de trabajo, ¿verdad? Entonces, si tuviera que hacer
clic en el más de aquí, podría agregar un montón
de cosas por aquí. No vamos a agregar
nada ahora mismo, pero podría agregar una cantidad
increíble de cosas. Esto es básicamente
todo lo que vemos. Y luego también hay
otras cosas, ¿verdad? Entonces hay servicios de
iluminación de un jugador, algunas cosas de almacenamiento. Algunas cosas también
pasarán por la mayoría de estas cosas durante
las conferencias. Pero por el momento, el espacio de trabajo es realmente más
importante que tenemos. Y tal vez el servicio de
script del servidor, donde básicamente cargaremos en todos nuestros scripts
por el momento. Después en la parte inferior derecha, cuando hayamos seleccionado algo, podemos ver que tenemos
algunas propiedades. Las propiedades representan un
determinado objeto, ¿verdad? Entonces en este caso, esta
ubicación de desove particular
tiene estas propiedades particulares, igual que cómo
eres humano, ¿verdad? Y tienes un cierto nombre
que sería una propiedad, igual que una idea general. Y se puede ver que
diferentes tipos de objetos tienen diferentes
tipos de propiedades. Entonces en este caso, la ubicación de
spawn es de tipo spawn location
y tiene algunos datos. Entonces puedes ver estos son lo que es su pluma naranja o
este nombre tiene una talla? Entonces esto es parte de la
transformación y tiene un pivote, tiene
cierto comportamiento, tiene colisiones, tiene
algunas propiedades de puerto, y así sucesivamente y así sucesivamente. Incluso tiene un
campo de fuerza que es específico de las ubicaciones de desove. Lo mismo con los equipos,
estoy bastante seguro. Así que hay un montón
de cosas e incluso
puedes agregar más
atributos por aquí. Así que muy, muy interesante. En efecto, las propiedades
son algo que
veremos también en una
futura conferencia. Y luego solo para dar un poco de
visión general también. Entonces si seleccionamos esto y ahora
podemos cambiar a modo de movimiento, y ahora podemos moverlo alrededor. Para que veas ahora
puedo mover esto. También puedo escalarlo. Puedo ver las escalas que
básicamente si sostenemos Shift, entonces lo escalamos de manera uniforme. Si mantenemos el control y
lo
escalamos en un eje, incluso podemos
girarlo así. Y si quieres que esto se ajuste, entonces podrías hacer esto en la rotación en el
movimiento por aquí, snap to grid, y entonces ahora
solo puedo girarlo 45 grados. Sólo puedo moverlo en incrementos de
una estrella. Esa es la
idea general aquí mismo. La mayoría de estas otras
cosas también veremos a lo largo del curso. La transformación podría seguir
siendo algunas cosas interesantes. Entonces, si seleccionamos nuevamente la ubicación del
spa, puedes ver que esta no es
la transformación aquí. Podemos entrar en forma más detallada sobre cómo
hacer ciertas cosas. Para que puedan ver, yo solo tengo como mucho más fino control
de todo, sobre todo cuando caliento esto más alto. Ahora se puede ver que el
tamaño del estudio está realmente representado
aquí en números, lo cual es realmente impresionante. Así que puedo ponerme
muy, muy preciso con cosas
avatar del momento actual. Realmente no
necesitamos nada aquí. Entonces esto es solo para agregar avatares, en este caso, pruebas, solo para probar ciertas
cosas aquí mismo. Desde aquí podemos jugar, podemos iniciar un servidor local
con x cantidad de jugadores. Incluso podemos cambiar
el emulador del jugador. Es muy interesante. La vista es en realidad
bastante importante porque aquí podemos habilitar y
deshabilitar ciertas ventanas. Y como puede ver,
en realidad hay bastantes gestor
de activos y
tenemos la caja de herramientas, y tenemos el navegador de objetos, y el análisis de script
y la barra de comandos. Entonces hay un montón
de cosas aquí, la
mayoría de las cuales en realidad
no necesitamos en este momento en absoluto. La mayoría de las cosas interesantes es que tal vez la caja de herramientas
va a ser interesante. Entonces aquí es donde
puedes cargar ciertas cosas de Roblox en
tu juego, ¿verdad? Entonces puedes agregar luces, incluso
puedes agregar algunos plugins en
este caso, ¿verdad? Para que puedas agregar plugins. Algunos de ellos cuestan, algunos Roebuck, algunos de ellos
no. Algunos de ellos son gratuitos. Sin embargo, siempre tenga cuidado, cuando agrega cosas de
otras personas que
podrían tener código malicioso
en sus scripts maliciosos. Eso sí existe. Sobre todo esto es para
cosas que son gratis. Siempre echa un vistazo a
cuántas reseñas tienen y también cuántas
críticas positivas que son la mitad, ¿verdad? Entonces algo que es como 91% positivo y tiene como 100 más críticas, eso
probablemente va a estar bien. Así que tenlo en mente
y podemos cerrar esto. Puede agregar una cuadrícula que
ahora es una fuerza esa cuadrícula que
podemos hacer una cuadrícula de dos tipos
o una cuadrícula de 16 notas también. Esto solo te ayuda a
ver lo que está pasando. renderizado
de estructura de alambre básicamente apaga todos los sólidos, solo te da una
estructura de alambre de todo. Esto puede ahorrar cierta cantidad de potencia de
procesamiento de su
PC es muy lento básicamente. Y luego aquí los plug-ins
por el momento, no
vamos a utilizar ningún complemento
para el ciclo de conferencias, porque normalmente podemos hacer casi todo lo que
necesitamos manualmente o nosotros mismos. Sin embargo, hay
algunos complementos bastante geniales que
están disponibles. Pero por el momento, no nos vamos a centrar en eso, ¿verdad? Y esa es una visión general. Como dije, podríamos entrar en detalles
locos en todo tipo de
cosas por el momento, vamos a estar bien con esto. Y entonces básicamente iremos de aquí y daremos
un paso a la vez. Pero eso va a
ser para esta conferencia aquí
mismo hasta la próxima vez. Entonces, sí.
16. (Roblox) Referencia a una pieza: Bien, bienvenido de nuevo
a los fundamentos de Roblox aquí para el curso de robótica. Y en esta conferencia
vamos a estar echando un
vistazo a las partes y
a cómo hacer referencia a ellas. Entonces, ¿qué son las partes mientras que
los poros son todo lo que existe en el
espacio de trabajo, por así decirlo Entonces, si hacemos clic en
esta parte de aquí mismo, puedes ver que estamos
creando un nuevo puerto. Podemos borrar esto de nuevo. También podemos ir al plus en
el espacio de trabajo y podemos
bajar todo el camino hasta el puerto o simplemente podemos poner en
parte y se puede ver parte y luego también crea una nueva parte para nosotros es que
tenemos este puerto. Ahora podemos arrastrar esto
y moverlo alrededor. Y podemos hacer todas las cosas que hemos visto hasta ahora, ¿verdad? Podemos
movernos y podemos escalar este puerto. Podemos hacer esto más grande,
podemos hacerlo más pequeño. Podemos mover esto. Entonces hay muchas cosas que podemos hacer con este puerto
en particular. Y va a ser
muy interesante hecho ahora este
se llama puerto. Y lo que podríamos querer
hacer es que queramos referencia
a esto dentro
de un guión, ¿verdad? Así que hay un montón de
maneras en las que podemos hacer esto. Por el momento. Vamos a
crear casi todos
nuestros scripts en lugar del servicio de script del
servidor, lo que va a hacer de este un,
bueno, un script de servidor, ¿verdad? Esto sólo se va a
ejecutar en el servidor. Las diferencias
entre servidores y clientes
hablarán de esto un poco más en los próximos años como
una pequeña visión general, el servidor es básicamente
lo que controla Roblox. Eso es como
en algún lugar de un servidor, en
algún lugar de tierra de Roblox, que no tienes nada
que ver con eso. Tú eres el cliente, por lo que
tu PC es el cliente. Cuando te conectas a un juego, te conectas a uno
de esos servidores y tu cliente obviamente no puede
hacer todo, ¿verdad? Para que el cliente pueda cambiar el número de
monedas que tengas. Porque si pudieras
hacer eso, podrías simplemente como
presionar un botón o hacer un guión personalizado
y estás como,
Oh, tengo mil monedas y luego los servidores
como si, absolutamente. Tienes 1,000 monedas.
Entonces tiene que haber un desacoplamiento
independientemente de eso,
ahora mismo, una especie de servicio de guiones. Vamos a crear un nuevo
guión, voy a llamar a esto. Vamos a elegir
este guión F2 O2, y llamaremos a esto
la referencia. Ligo hará zoom en esto una
vez más y llamaremos a esto están haciendo referencia a una
parte en el espacio de trabajo. Esto va a ser realmente muy
interesante. Entonces hay un par de
cosas que podemos hacer. Entonces digamos que queremos hacer
referencia a la placa base. Esto lo podemos hacer. Vamos a hacer una placa base
variable local y eso es igual al juego. Así que siempre queremos comenzar
con el juego en minúsculas. Eso es muy importante,
y ahora se puede ver que estoy consiguiendo todo lo
que está en lugar de aquí. Entonces básicamente el juego es la
raíz del explorador. Ya ves que consigo jugadores, que es este tipo de aquí. Tengo espacio de trabajo con este tipo. Y ahora hay un montón
de otras cosas, me pregunto si
tienes un espacio de trabajo. Una vez más, muy importante. La carcasa es importante aquí. Siempre tenlo en
cuenta. El espacio de trabajo con una w minúscula podría
parecer que podría funcionar,
pero no funcionará. Así que tenlo en mente. Siempre asegúrese de que la
carcasa sea correcta. Eso y ahora de repente, se
puede ver que hay
un montón de cosas, pero también hay cámara,
que está justo aquí. Y ahí está la primera parte. Mira esto. Esta es la parte genial, ¿es este
el mismo puerto? Efectivamente lo es. Y el nombre aquí tiene
que coincidir exactamente. Si renombro esto,
si hago clic en esto, presione F2 y cambie el nombre de esto
a puerto p minúscula Esto ya no funcionará. Ahora, incluso se puede ver, nos sugiere un
puerto con minúsculas porque ese es el nombre de la parte a la que
estamos haciendo referencia. Tiene que coincidir exactamente. Sé que estoy
insidiando en este punto, pero es sumamente importante porque he visto
esta y
otra vez que la gente
acaba de cambiar la carcasa. La carcasa es importante. Bien, entonces ahora estamos haciendo referencia a la parte con p
minúscula, ¿verdad? Bien, está bien. Como placa base, eso
no es lo que queremos. En realidad queremos hacer
referencia a las placas base. Entonces básicamente, ahí tienes. Puedo autocompletar
esto con tab. Ahora he hecho referencia a
la placa base. Puedo hacer cosas con él. Bueno, bien. Pero ¿qué pasa con mi parte a la
que quiero hacer referencia? Bueno, vamos a volver
a decir local. Y entonces llamémoslo mi parte ya que es solo el nombre
de la variable, que es diferente del nombre del objeto de la parte. Esto también es muy importante. Esto es lo que se representa. Inserte el código mientras esta es la parte real del objeto físico. Y una vez más, vamos
a decir espacio de trabajo de juego y luego puerto, no padre. En realidad, queremos
estacionar. Ahí vas. Y ahora podemos hacer las cosas
con un puerto porque la parte tiene diferentes
tipos de propiedades. Podemos cambiar esas propiedades
desde dentro del script. Entonces podemos decir mi parte, que es la variable que apunta
a esta parte en particular. Eso, y ahora pueden ver
puedo cambiar la posición, puedo cambiar el nombre, la rotación, el color. En nuestro caso,
sólo vamos a cambiar la transparencia a 0.5. Y luego también haremos
mi parte punto punto color. Y entonces podemos cambiar esto
a un color tres puntos nu. Y luego simplemente haremos
algo así como mientras en realidad
podemos cambiar
el color aquí mismo. Así que vamos a escoger
como un bonito azul. Sí, eso es lindo. Entonces esto es simplemente
generar automáticamente esos colores. Puedes ver si hago clic en
la altura de este, si hago clic en el sábado, como puedes ver, el
color aquí mismo, y puedes dar click en la
rueda de colores para cambiar el color, lo cual es muy, muy genial en verdad. Ahora, ¿qué va a pasar cuando realmente empecemos el juego? Bueno, vamos a
entrar en la vista del juego. Escuchamos el puerto
ahora mismo se ve completamente normal, pero si empiezo el juego, esto debería ser transparente en un 50
por ciento. Por lo que debería ser 50% transparente
y debería ponerse azul. Juguemos el juego y veamos dónde
en lugar del juego. Y si voy por aquí, pueden
ver que
ahora es un poco transparente y es azul, exactamente lo que queríamos. Si entramos en el espacio de trabajo, incluso
podemos ver la
parte de aquí. Ahora tiene un color diferente
y la transparencia es de 0.5. Bastante genial de hecho, puedo ver cuando ya no estamos
jugando al juego, básicamente
se restablece a sus propiedades originales
en este caso, porque cambiándolas
en lugar del script, no
las cambia permanentemente. Entonces esa sería una
forma de hacer referencia a una parte en un espacio de trabajo
a través del nombre de aquí. Ahora, una vez más, es
extremadamente importante que si cambio los
nombres aquí por ejemplo mi parte genial, ¿verdad? Ahora bien, si tuviera que tocar esto ahora, ¿qué pensarías que pasa? Bueno, estamos haciendo referencia a
algo que se llama parte. Sólo vamos a jugar. Y veremos que parte no es un miembro válido de obras o no desarrolla
miembro del espacio de trabajo. Workspace y no ha cambiado su color ni su transparencia porque ahora la parte se llama Mike cool part.
Así que tenlo en mente. Si obtienes este
error aquí mismo, simplemente
significa
que probablemente
estés haciendo referencia a algo
que tiene un nombre cambiado. Si nos aseguramos de que estamos
haciendo esto, de repente, si jugamos esto, ahora podemos ver que no estamos
recibiendo ningún error. Y una vez más, obtenemos nuestra parte
azul que es transparente. Bastante genial de hecho,
cierto, para resumir, como ya he dicho, se asegura de
nombrar las cosas correctamente. Puedes usar game
dot workspace dot, cualquiera que sea el nombre de tu puerto que quieras hacer referencia. Asegúrese de que estos aseguren que la carcasa esté
siempre correcta. Y luego puedes acceder a las propiedades haciendo
tu parte variable punto. Y luego se puede
acceder a todo tipo de propiedades que forman parte
de esta parte en particular. Y puedes
cambiarlos con un guión, pero eso va a ser todo para
esta conferencia de aquí mismo. Espero que esto les haya
resultado útil y las alertas y la nueva, los
veré a todos en
la próxima conferencia. Entonces, sí.
17. (Roblox) Tipos de guiones: Continuemos con
los conceptos básicos de los bloqueos aquí sigue el curso de Roblox y en esta conferencia
vamos a estar echando un
vistazo a los diferentes
tipos de guiones. Así que ya hemos
visto esto anteriormente cuando
hacemos un nuevo script en el servicio de script
del servidor, es básicamente el uso frecuente dice Script y script del módulo. Hay, sin embargo,
otro tipo de guión. Si solo escribimos esto
aquí, van a ver que también
hay un guión local. guión normal lamentablemente, al parecer
no tiene una punta de herramienta, sin embargo, el guión local sí. Así se puede ver que un script local es un script que se ejecuta en el
cliente y no en los servidores. Por lo que los scripts del logotipo se pueden colocar debajo de las
siguientes cosas. La mochila de un
jugador, el modelo de personaje del jugador, un uso de la GUI, el script del
jugador y el
primer servicio replicado, el script del módulo, derecho, es un fragmento de script
y solo se ejecuta cuando otros scripts usan
los Requiere en él. Entonces esa es una interesante. Y el guión, bueno, eso es
sólo un guión normal. Hasta ahora hemos estado usando scripts
normales bajo el servicio de script
del servidor. Y esto entonces se ha corrido tanto en el servidor
como en el cliente. Esa es la idea general. Ahora hay algunas
cosas que
solo quieres que sucedan en el
cliente. Esas son principalmente cosas que básicamente
son específicas del cliente. Entonces tal vez visuales, ¿verdad? Tal vez quieras agregar
visuales a un determinado cliente. Eso es más o menos algo
que quieres hacer con el cliente. Guiones locales o scripts de cliente. Pueden comunicarse con un servidor a través
de eventos remotos. Pero ese es un tema
muy intermedio, avanzado del que
no hablaremos ahora mismo. Pero la
idea general es que sí, podemos tener guiones locales. Entonces, si tuviéramos que, una vez más, echar un
vistazo a dónde podemos agregar esto, una mochila, un modelo de personaje, un GYE, un jugador guiones
replicarán el primer servicio. Entonces lo que podemos hacer es agregar esto a lo
replicado primero. Se puede ver que hasta
dice: Oye, guión local. Y si tuviéramos que hacer esto,
y solo diremos print,
print, Hello, World is
actually totally fine. Cambiemos el nombre de esto y voy a decir O3 script local en este caso. Y luego solo un
ejemplo de guión local en este caso, solo
vamos a
imprimir hola mundo, y vamos a
ver si jugamos esto, va a ser output. Pero ahora, y esto
es algo crucial. Ahora conseguimos cliente por aquí. Entonces esto es lo que
no teníamos antes, ¿verdad? Ahora en realidad obtenemos algo de
salida del cliente. Y esto es sumamente importante si solo entráramos en la referencia de
aquí y vamos a hacer una impresión HelloWorld, solo lo mismo, solo por el bien de la discusión
y jugamos esto. Vas a ver que ahora está en el servidor.
Puedes ver ahí vas. Entonces HelloWorld está
en el servidor de O2 haciendo referencia a la línea
ocho y la otra, a la derecha, el HelloWorld,
este es
del cliente o tres guiones
locales para escribir. Ahora se podría decir, bueno, ¿cuál es la maldita
diferencia, verdad? No pasa nada loco. Bueno, ahora mismo este
es mi cliente y de
hecho puedo cambiar al
servidor y al servidor. El servidor básicamente
controla todo, ¿verdad? Entonces el servidor en teoría, podría
decir, Oye,
sabes qué, no, voy a mover a mi chico por aquí y solo
voy a moverlo. Ahora, puedes moverte por
las reglas de movimiento normales. Pero si trataras cambiar tu posición
desde el cliente, solo, eso no
funciona porque ahí
sería ahí es donde entran las cosas anti
trampas. Por lo que la separación cliente-servidor
es muy importante. Entonces esa es básicamente
la idea general con un guión local entra en juego. Y como dije, puedes
comunicarte con el servidor, pero eso es algo para
un nivel intermedio. Y entonces un script de módulo es
un poco más complicado. Así que sólo vamos a
hacer un módulo script O3 módulo de prueba aquí. En este caso,
llamemos a esto testimonial.
Ahí vas. Entonces en el script del módulo,
la idea general es poner funciones o ciertas, básicamente funciones que
vas a usar muchas
veces, ¿verdad? Entonces diferentes multiplicadores,
diferentes funciones de bonificación, algunos cálculos que
podrías estar usando. Muchas veces lo que puedes usar es que puedes hacer
una nueva función. Y la manera de
hacerlo es que vamos a tomar esta mesa por aquí. Voy a decir módulo. Entonces este es el nombre de
la tabla que suma. Entonces este va
a ser el nombre
del método y luego
lo que queramos. Así que básicamente sólo
vamos a hacer un método sum otra vez y vamos
a devolver este caso, no repetir, vamos
a devolver x más y Así que una vez más, esto
es sólo un ejemplo. Escribe un método de suma. Realmente no harías un script de módulo
personalizado para ello, sino solo para que veas, bien,
así es como
harías un método en
un script de módulo y luego lo harías
referencia más tarde. Entonces si tenemos esto, ya
podemos en el script del servidor, los servidores vuelven a hacer un script
normal y llamaremos a esto 03 módulos de prueba dash. ¿Por qué no? Eso está bien. Ahí vas. Y lo que
vamos a hacer es que necesitamos ahora alguna manera conectar
este script de módulo a este script en particular. La forma de hacerlo es que necesitamos
usar el
método require de aquí, pero en realidad queremos hacer
una variable local. Entonces llamemos a
esto la suma. Claro, y esto es igual
al método requerido. Y luego necesitamos hacer
referencia al script del módulo. Entonces este es el servicio de script
del servidor de puntos de
juego y el módulo de pruebas.o3
exactamente así. Y entonces realmente
lo
representará así porque podemos comenzar una referencia de un punto con un número,
pero eso está bien. Podemos usarlo
así, está bien. Y entonces podemos decir,
vamos a imprimir esto. Así que vamos a imprimir punto de
suma y ya lo
puedes ver ahora incluso nos
dice, oye suma, podemos usar esta prensa Tab
para autocompletar y
podemos decir 50.23 camisa. ¿Por qué no? Entonces esto sería 73 que estamos imprimiendo aquí afuera. Así que vamos a jugar. Y vamos a
ver que el servidor imprime 73 aquí mismo. Bastante impresionante de hecho. Y claro que esto es una
vez más, sólo un ejemplo. La idea aquí es que ya sabes, si tienes ciertos, si tienes ciertos
números, ¿verdad? Entonces podrías agregar cosas como una, ya
sabes, podrías
agregar diferentes tablas. Podrías agregar tal vez haya
como una
experiencia, multiplicador de experiencias o
algo así, ¿verdad? Y entonces podrías simplemente agregar una nueva mesa y
estarías como, ya sabes, tal vez fácil, obtienes
más experiencia, ¿verdad? Entonces obtienes como 25 puntos. Más experimentado,
medio, se obtiene como una experiencia normal. Y luego en duro tal vez
obtienes menos experiencia. Esto es solo una vez más, como solo un ejemplo de lo
que podrías usar aquí. Ahora bien, esta no solo
estaría disponible en el módulo, esto es sumamente
importante porque ahora es una
variable local, ¿verdad? Solo echemos un vistazo. Si tuviéramos que imprimir la suma R e
intentaríamos usar esto. No podríamos hacer eso. Solo usamos algunos por aquí,
lo cual es interesante. Ahora bien, si tuviéramos que hacer no
locales, ¿qué pasaría ahora? ¿Crees que
ahora podremos usar esto? Bueno, vamos a
echar un vistazo, derecho, suma que todavía no
somos capaces de usar esto, porque para usar esto, vamos a necesitar hacer módulo punto. Y ahora, de
repente, se le
agrega una especie de tabla a este
particular. Y ahora si entramos aquí, de
repente tenemos,
tenemos el
multiplicador de experiencia disponible para nosotros que es realmente increíble
y básicamente puede, quiero decir, simplemente tiene
mucho sentido, ¿verdad? Podrías almacenar todas muchas
cosas en lugar de módulos, scripts en los que
vas a usar,
bueno, en todos los scripts diferentes. Tal vez un
jugador especial nombra que tal vez ciertas cosas para conectarse a ciertos
servicios más adelante en la línea. Entonces un script de módulo
extremadamente, extremadamente útil para
muchas cosas. Y sólo para
mostrarte, puedes ver sumatoria experiencia,
multiplicador medio. Si tuvieras que imprimir esto, entonces obtendríamos uno
o aquí porque ese es exactamente el medio que
hemos definido aquí mismo. Ahora eso es bastante
impresionante de hecho. Entonces, para resumir, existen tres tipos de scripts diferentes que son scripts locales que se
ejecutan únicamente en el cliente. Luego hay scripts
normales que pueden ejecutar tanto en el
servidor como en el cliente, y son una especie de
sincronía automáticamente. Y luego también hay módulos, scripts que se utilizan
para almacenar variables o funciones que
podrás usar
en cualquier parte de tu código. Y eso básicamente
te ayuda a no repetirte. En fin, espero que
esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
18. (Roblox) Propiedades: Continuemos con la porción para principiantes de
barricadas del curso de barricadas. Y en esta conferencia
vamos a estar echando un vistazo a las propiedades. Así que vamos a hacer una
inmersión profunda en las propiedades. Así que vamos a ampliar esta
ventana y tomemos nuestra parte genial y echemos un vistazo a todas las locas propiedades
diferentes que tenemos disponibles. Entonces el primero es el color
ladrillo en general, el color ladrillo y el color, o casi lo mismo. Entonces, si aquí elegimos un color
ladrillo diferente, digamos como un azul oscuro, se
puede ver que el
color aquí cambia. Y la idea general del
bricolage solo son colores
predefinidos
que son fáciles de usar. Si bien el color puede ser
literalmente como cualquier color, ¿verdad? Si solo elijo un color
aleatorio por aquí, no va
a tener nombre. Para que veas sí dice que es como marrón, verde amarillento. Entonces se va a
aproximar a éste, pero no es exactamente
ese color, ¿verdad? Para que veas
que este es todo amor. Y entonces no sé que
este es olivino, pero si tuviera que cambiar un poco los
números aquí, bien, no va a cambiar demasiado en su
apariencia, ¿verdad? A lo mejor esto va a
ser como un dos por aquí. Y entonces va a
ser un violeta arena. Pero se puede ver que
es, no está exactamente aquí. Es simplemente similar a
donde esta la arena, violeta. No tengo idea. No lo encuentro. Bueno de todos modos, esa es la idea
general, ¿no? Entonces puedes poner un número aquí. Entonces esto sería un hexágono, ¿verdad? Algo así. Entonces
ahora es negro metalizado, pero esa no es realmente la mentalidad
negra. Se puede ver este
color y este color, no
son lo mismo. Entonces, es la
idea general del color ladrillo y el color a la
hora de lanzar sombras, que debería ser bastante
autoexplicativa. Ahora mismo proyecta una sombra
y ahora no lo hace. Eso es, eso es
prácticamente todo lo que
hay para ello, el material. Para que puedas elegir diferentes
tipos de material. Por lo que ciertos materiales tienen
ciertas propiedades para ellos. Así que puedes elegir metal, por ejemplo , que va a ser un
poco de luz reflectante. Entonces puedes ver esto ahora realmente se parece mucho al metal. El plástico no
iba a ser nada. Entonces si elegimos vidrio, correcto, no
es 100% translúcido porque claro que la
transparencia no está ahí. Pero si tuviéramos que hacer
esto transparente, ahora tendría como un cristal Shine n sería
transparente también. Bastante genial. Y así hay un montón de materiales diferentes
que puedes elegir. plástico es solo el normal sin textura
real, ¿verdad? Entonces la
variante material en este caso, no
tenemos ninguna
varianza material y en realidad ni
siquiera estoy seguro de cuál de
los materiales sí tiene uno. Podemos ir al encargado de
materiales aquí arriba y de hecho podemos
echar un vistazo a todos los materiales que son, que existen por aquí. Campo de fuerza, por ejemplo, podríamos
elegir el campo de fuerza. Entonces así es como se vería el
campo de fuerza. Y entonces podemos entrar
aquí y podemos elegir el campo de fuerza,
por ejemplo, campo de fuerza. Y ahora este es un campo de fuerza. Así se puede ver que es muy
transparente desde todos los lados. Entonces eso es realmente interesante. Y hay un montón
de otras cosas. Tenemos metal por aquí, diferentes tipos de metal, lámina de placa de
diamante, corroe. El metal es realmente increíble que
puedas solo con algunas de
estas cosas, ¿verdad? Si elegimos corroer metal por ejemplo si pueden ver el
color aquí cambia lo que cambia en la
textura misma, ¿verdad? Entonces ahora puedes ver
como el color aquí es como el color base. Si tuviéramos que elegir este rojo, entonces de
repente se pone rojo, verde, cosas así. Así que es genial lo
que te puede gustar cambiar aquí, y es realmente increíble. Así que recomiendo
jugar un poco con esto y tener una idea
de este ladrillo también
es genial y obtienes una textura de ladrillo
justo encima de él. Bastante impresionante de hecho,
reflectancia roja y transparencia. Ya hemos hablado de
esto antes, ¿verdad? La reflectancia solo básicamente hace que la cosa real se refleje más. Ahora se puede ver que
esto depende del material porque
ahora
el material de ladrillo, en realidad no pueden
reflejarse. Si
volviéramos a cambiar al plástico, que puede ser básicamente
cualquier cosa que quieras, podemos hacer que esto
se refleje como quieras. 100% sería literalmente, refleja toda la luz. Entonces ahora tiene un, ahora es un espejo, ¿verdad? Y eso
refleja perfectamente esto. Pero debido a que nuestro guión hace que la transparencia sea 0.5,
en realidad no queremos eso. Y ahora tenemos un espejo otra vez. Ahora se puede ver que
no refleja al jugador. Eso será demasiado intensivo para gran parte del procesamiento. Pero esa es la idea general para la reflectancia y
luego la transparencia. Esto
ya lo hemos visto, básicamente lo transparente que es en esta parte en
particular. Entonces archival, una cosa muy importante sobre todas
las diferentes propiedades. Y esto en realidad es
muy importante. Puedes pasar el cursor sobre esto y te
va a dar una breve descripción de lo que hace
esta cosa en particular. Entonces se puede ver archival
básicamente es como, ¿Esto va a salvarse aquí? Entonces tenemos un nombre de
clase que suele estar
bloqueado porque en
este caso se trata de un puerto. También podemos hacer esto bloqueado. Entonces si hacemos esta cerradura, entonces en realidad podemos
moverla más. Entonces si bloqueamos esto
y ahora ni siquiera me puede
gustar ya ni siquiera puedo
intentar seleccionar esto. Y ahora puedo volver
aquí y puedo desbloquearlo, y ahora puedo seleccionarlo de
nuevo, puedo moverlo de nuevo. Muy interesante.
En efecto, el nombre aquí y el padre deben ser
bastante autoexplicativos. Y entonces estos
suelen ser también incambiables. No obstante, el tamaño es cambiable, así que a lo mejor queremos dimensionarlo, tal vez hacer 758, tal vez
algo que no sea demasiado. Ahí vas. Así que eso es bastante genial. Así se puede ver que ahora está dimensionado y también podemos
cambiar la posición. Entonces cuando cambiamos la posición, se
puede ver la posición
tanto en el origen
como en los cambios del cuadro C. Por lo que también puedes hacer esto
manualmente. Entonces podría volver a hacer -25.20, y ya se puede ver ahora se movió
y eso es bastante genial. Ahora el
punto de origen es básicamente, puedes pasar el cursor sobre esto, ¿verdad? Esta contiene la
información de la posición y la matriz de la rotación. Puedes cambiar esto y
puedes leer de él. El origen, si
alguna vez pensabas
esto, aquí es básicamente donde gira
esto. Entonces la idea general
es que si lo giro, gira alrededor de
cierto punto en el espacio y
se puede ver que apunta, gira alrededor de
la mitad exacta de esta parte en particular, ¿verdad? No obstante, si tuviera que cambiar
la posición del origen, tomemos el control Z para que la rotación vuelva a cero, si tuviera que cambiar esto
a 000 aquí mismo, ¿verdad? Ahora, la cosa en realidad viene con ella. Eso
no es lo que queremos. Queremos desfasar
el pivote, ¿verdad? Entonces ahora si tuviéramos
que compensar el pivote 20 menos cinco y -20, eso será por lo que
queremos compensarlo. De repente, el
pivote está en ceros, ceros. Entonces puedes ver ahora la posición es 00 porque
hemos compensado el pivote. Y si yo fuera a rotar, ahora
rotaríamos alrededor de
esta posición en particular. Entonces ahora giramos alrededor de esto. Entonces eso es bastante genial en realidad, porque lo que puedes hacer
es compensarlo. Y si por ejemplo
quisieras tener una
plataforma giratoria, bueno, ellos solo pueden
cambiar la, cambiar la rotación
aquí y ahora de
repente tienes una plataforma giratoria. Puedes volverte loco
como a distancias. Pero sí, eso es
genial y se puede usar para muchas cosas
diferentes. En este caso, puede
chocar y puede tocar debe ser bastante
autoexplicativo, ¿verdad? Es solo si
una interacción física puede
ocurrir o no aquí, puede tocar. Básicamente si se convoca al
evento Tocado sobre esto, también
hay
diferentes
grupos de colisiones que puedes definir. Un anclado significa
que no lo hace, que no se ve afectado por la gravedad. Entonces, si tuviéramos esto, vamos a poner esto al aire y no esté anclado. Si jugamos, va a
caer al suelo. Así que en realidad podemos ver esto. Así se puede ver que
ahora está en el suelo, pesar de que
lo colocamos en el aire. Y si tuviéramos que
anclar este derecho, si bajamos por
aquí y anclamos esto, entonces va a significar que
se va a quedar en
esa posición en particular y
no se verá afectado por la gravedad. Entonces se puede ver ahora
que está en el aire. Bastante genial, ¿verdad? Propiedades físicas personalizadas,
sin masa, cosas así. Por lo general te recomiendo
estar un poco
alejado de esos porque entonces
te metes en cosas locas, ¿verdad? Las propiedades físicas personalizadas que puedes ver, puedes cambiar la fricción, la elasticidad, la densidad. Entonces hay algunas cosas geniales
que puedes hacer con él. Pero esto definitivamente es
un poco más para usuarios intermedios y
avanzados, ¿verdad? Y el resto con el que no
me metería por el momento. Sin embargo, siempre podrías pasar el cursor sobre las cosas y echar un
vistazo a lo que básicamente significan las diferentes
propiedades. Y ahora esas son, por supuesto, propiedades que son específicas de una parte dependiendo de lo
que estés creando aquí. Si hacemos clic en crear
una textura o vaca D, o una tasa de diálogo o
un prompt de proximidad. Todas esas
locuras,
todas esas van a tener propiedades
diferentes. No obstante, hay que pensar, simplemente darse cuenta de que una
propiedad no es otra cosa como una variable o un atributo adjunto
a un determinado objeto. En este caso, en
realidad no debería ser nada loco. Pero si tienes una
propiedad, es algo así como la tasa de generación, por ejemplo, también
podría ser una
propiedad personalizada. Y entonces estarías como, oh, ese es probablemente un número que
tiene cierta relación con A's con la tasa
de desove de cierta cosa, ¿verdad? Entonces esta es la
descripción general de las propiedades puede ser realmente útil y realmente genial para jugar un poco
con esto. Y luego verás que hay muchas cosas que
puedes hacer con propiedades e
incluso propiedades personalizadas, que veremos más adelante en
la línea para resumir, cada uno de tus objetos
que existe tiene propiedades. Algunas de ellas son propiedades que comparten todas las
diferentes cosas. Como si esto fuera una cosa
en lugar de espacio 3D, siempre tiene un
marco C y un origen, significado y un tamaño. Entonces esta es básicamente la
transformación que significa la posición real
del objeto en el espacio 3D. Y hay otras
cosas como colisiones, las cosas que están
descendiendo de parte
también se pueden anclar sin masa,
todo tipo de cosas. Entonces hay un montón de
propiedades que existen. Recomiendo mucho
jugar un poco con esto, solo agregar un nuevo puerto, jugar con algunas de las propiedades que existen aquí. E incluso puedes agregar tus propios atributos por el momento. No nos aventuraremos
en eso en este momento. Pero basta decir
con propiedades, podrías hacer muchas
cosas geniales. Bien, eso va a ser
para esta conferencia de aquí mismo, o nos pareció útil
y aprendimos algo nuevo. veré a todos en la
próxima conferencia. Entonces, sí.
19. (Roblox) Vector3 y posición: Bien, Bienvenido a los
fundamentos de Roblox para el curso de Roblox. Y en esta conferencia
vamos a estar hablando de vectores y cambiando la
posición de una parte. Por lo que antes hablamos de
hacer referencia a partes. Hemos hablado de módulos, scripts, y hemos
hablado de las propiedades. Y ahora vamos a cambiar esas propiedades correctamente
dentro de un script. Así que hagamos un nuevo
guión por aquí. Necesita servicio de script de servidor. Llamémoslo 05 posiciones de guión. Y luego vamos a ver. Entonces llamaremos a esto el
vector tres y posiciones. Comenta por aquí y luego
hablaremos de qué es eso. Entonces, antes que nada, vamos a conseguir
realmente nuestra parte. Así que eso va a ser, mi parte aquí va a ser igual
al espacio de trabajo del juego, mi parte genial. Así que ya hemos visto esto anteriormente
en la conferencia de referencia. Entonces eso no debería
ser nada loco. Y ahora lo que podemos hacer mi parte y ahora podemos
cambiar lo que quiero decir prácticamente todas
las diferentes propiedades
que hay ahí, incluyendo algunas algunas cosas que son como un rayo aquí. E incluso tenemos estas cosas raras como archivador tipo archivador. Por el momento, solo
vamos a usar los cubos azules y por ejemplo la posición que puedes ver esta
es de tipo vector tres, y esto describe la posición de esta parte dentro
del mundo. Actualmente, si
acabamos de hacer esto y
solo imprimimos esto solo
por el bien de la discusión. Vamos a imprimir esto. Deberíamos obtener un vector
y eso es -21.8 y así sucesivamente y así sucesivamente a
0.4, 99.1, 17.93. Entonces esa es básicamente
esta posición. Y si tuviera que cambiarlo, nada va a cambiar en la salida porque
sólo estamos dando salida a la vez. Entonces si voy a la posición
aquí y voy a hacer 50,
50, 50, como la
posición real va a cambiar. Entonces ahora está por allá. Pero no actualizaría la salida porque
si bien esta ya era salida y solo la estamos sacando una vez, ya es justo. ¿Y si cambiáramos
esta posición, verdad? Entonces, ¿y si
sacamos
la posición y luego estamos diciendo y parte
esa posición, y luego queremos cambiar esto ¿Cómo cambiamos esto? Bueno, cambiamos
esto dándole un nuevo vector tres, ¿verdad? Entonces queremos decir
vector menú de tres puntos. Y entonces aquí
ponemos un número X, un número, y un número Z. Ahora
lo importante aquí es que un vector tres, escriba un vector. A lo mejor has tenido
esto en matemáticas. A lo mejor has tenido esto
en matemáticas en general. Es muy fácil de entender. Lo que probablemente
hayas visto antes es, hagamos algo como esto. Entonces probablemente hayas visto
una cuadrícula bidimensional antes con un eje
y y un eje x, ¿verdad? Y sobre eso, se puede describir cada punto
con dos números. Ahora es lo mismo
en tres direcciones, igual que otra
dirección, ¿verdad? Entonces esta posición, como
hemos visto antes, es que hagamos esto
un poco más agradable. 2015 y -17 por el
bien de la argumentación, ¿verdad? Entonces ahora está por aquí
y ahora podemos cambiar esta posición simplemente
dándole diferentes coordenadas. Entonces digamos en vez de -21, vamos a tener, volvamos a
hacer 50, 50, 50. Y esto ahora está
anclado las partes, así que va a
permanecer en el aire. Entonces lo que esperaríamos
encontrar son estas salidas -20, 15, -17, entonces vamos a cambiar
la posición a 50, 50, 50. Entonces, cuando realmente
cargamos en el juego, pesar de que esto genera
los números antiguos, esto ahora se cambia
a 50, 50, 50. Y podemos confirmar esto, sólo
vamos
bajando y podemos ver la posición es 50, 50, 50. Muy interesante en efecto, pero sólo
podemos cambiar eso. Por supuesto podemos cambiar, quiero decir, prácticamente todo. Incluso podemos cambiar la rotación, que también es un vector tres. Ahora, hay algunas cosas
interesantes sobre la rotación en el espacio
tridimensional. Por el momento, sólo
vamos a hacer el
vector por aquí. Entonces por ejemplo podríamos
hacer 4500, digamos, y ahora debería
en la dirección x, giramos 45 grados. Así que vamos a echar un
vistazo y ya podemos ver, si echamos un vistazo a esto, se
puede ver que ahora se gira alrededor de 45 grados. Y si realmente echamos un
vistazo a esto, también se
puede ver que
la orientación ahora no
es del todo 45,
sino más o menos 45. A veces hay problemas de
redondeo. Así que ten eso en mente que a veces el redondeo
puede ser un poco raro con especialmente
estos vectores porque hay muchos cálculos
que hay que hacer. Así que a veces redondean hacia abajo o redondean hacia arriba de una manera un
poco rara. También podemos hacer algo
que sea muy interesante y es
que tal vez queremos
mover la parte, ¿verdad? Entonces tal vez realmente queremos
decir, ¿sabes qué? En realidad quiero que cambie la
posición. Entonces quiero tomar
la posición real de mi parte y solo
quería tal vez bajar por
un par de estudios. Entonces digamos hacer un
nuevo vector por aquí. No queremos mover el eje x. Nosotros sí queremos moverlo tal vez
25 hacia abajo sobre el eje z. Y tal vez queremos
hacer un más cinco en el, realidad no un más cinco,
solo un 5 años en el eje z. Puedes ver esto todo funciona
porque si haces un vector, vector menos un vector, eso todo funciona totalmente bien. Entonces, si solo
jugamos esto, ahora vamos a ver que el cubo se ha movido a
donde se ha movido. Bueno, vale la
pena, está ahí mismo. Y si echamos un
vistazo a este micro aparte, ahora
está en 50, 75, 45. Ahora estás como,
eso es un poco raro. Sí, eso es un poco raro.
¿Cómo sucedió esto? Bueno, restamos
este vector, ¿no? Entonces tomamos 50 menos
cero, eso es 50. Bastante justo. Hicimos 50 menos -25. Oh, bueno menos, menos, eso es un plus, es
decir, hay un 75. Y entonces aquí
restamos cinco. Entonces esa es
una interesante donde si restamos algo que en realidad no queremos ningún
número negativo aquí. Y entonces si volviéramos
a ejecutar esto, ahora se puede ver que cada uno va a estar
más abajo y ahí está. Entonces ahora es un camino más abajo. Y ahora nuestros cálculos
para funcionar totalmente bien. Entonces esa es la idea general de los vectores calcular, ¿verdad? Así que básicamente es
siempre el primer elemento menos o más tasa,
por ejemplo, que va a funcionar. Entonces haríamos si
nos quedamos con el menos, ese será el primer elemento. Los nuevos elementos
serán 50 menos cero. Y entonces el
segundo sería 50 -25, y luego el último
sería 50 menos cinco. Esa es la
idea general de esto. Qué pasa si dijéramos, ¿
sabes qué? Vamos a veces esto. ¿Esto va a funcionar?
Bueno, vamos a hacer 22.2 por aquí. Y vamos a ver qué pasa. Entonces no hay errores. Y si echamos un vistazo, ahora
está muy, muy lejos. Y si le echas un vistazo a esto, puedes ver 150, 90. Entonces, exactamente lo que
esperaríamos aquí que sucediera. La misma idea, ¿verdad? En lugar de hacer un menos, ahora
hacemos veces dos. Y entonces hacemos esto básicamente
para todos ellos, ¿verdad? Entonces hacemos esto, y
luego lo hacemos. Ahora esto es en realidad
45 y esto fue 25. Y es por eso que obtenemos 150.90
como las partes por aquí. Muy interesante de hecho. Ahora hay un par
de otras cosas que son interesantes y eso es, por ejemplo si queremos dimensionar
algo, ¿verdad? Entonces tenemos el tamaño por aquí. Podemos, por ejemplo, hacer a
veces iguales y luego podemos dimensionarlo en un 50
por ciento extra. Eso va a simplemente multiplicar o dimensionar números por 1.5
aquí en este caso. Entonces, si volvemos a mirar esto, se
puede ver que esto es
ahora más grande ahora realidad
no lo
parece tanto. Pero si vamos aquí y vemos el tamaño es ahora
10.57 punto 5.12. Y si no estamos corriendo, el tamaño es de sólo 75.8. Pero esos son algunos
de los ejemplos aquí de cambiar la posición, la rotación, el tamaño. Esto
ya es genial, ¿verdad? En resumen, la posición o rotación está representada
por un vector. Y un vector es simplemente
tres números aquí, teniendo un x e y
y el valor z. Y puedes cambiarlos con las operaciones normales, ¿verdad? Multiplicando, restando
todo ese trabajo. Entonces eso es bastante genial
y lo haces así. Bueno, eso es todo para esta
conferencia de aquí mismo. Espero que esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
20. (Roblox) La función de espera: Bien, continuemos con los conceptos básicos de
robótica aquí
para el curso robusto. En esta conferencia,
vamos a estar
hablando de la función de peso. Entonces, la función de peso es algo increíblemente
importante que
encontrarás muchas veces a lo largo del scripting y Roblox. Y vamos a crear un
nuevo script por aquí, llámalo 06 dash waiting. Y simplemente llamaremos a esto la función de peso porque se
trata de la función de peso. Digamos que tengo un for-loop. Empecé en cero y voy a
diez e incremento en uno. Hagámoslo. Y
digamos que imprimo el número. Entonces, si tuviéramos que hacer esto, va a imprimir
los números ¿verdad? De inmediato. Se puede ver cero
hasta diez en cuestión de,
quiero decir, literalmente
casi todos ellos, incluso en la misma garrapata, como los mismos milisegundos. Así de rápido fue. Pero digamos que no,
no, no, no, no. Quiero que esto se
imprima cada segundo. Bueno, solo usaremos la función de
peso por aquí. Voy a pasar en uno. Entonces, lo que realmente hace es que produce el hilo
actual hasta que transcurra la cantidad de
tiempo especificada en segundos. Ahora es muy importante
es que esto puede tener, digamos como consecuencias
negativas si hay muchos
guiones pasando. Entonces la función de peso
no es un final, todo lo que deberías
usarla en todas partes. También hay otras formas de esperar
a que las cosas sucedan. Así que este no es
el fin de todo. Pero en este caso, si
fuéramos a ejecutar este 012 y se puede ver
que sigue adelante. Se mantiene puedo correr
por ahí, todo está bien. Y sigue yendo
exactamente 1 s tras otro y nuestro atendemos y ahora
el peso está hecho. Entonces eso es bastante genial. Esto es genial para ciertas cosas como para contar
cosas, cosas así. Eso es realmente increíble. Este es un ejemplo de donde la función de peso
podría ser realmente útil. A veces también
puede ser importante si estás importando ciertas cosas y a veces estás como, solo
voy a esperar
un poco y luego puedes seguir
ejecutando algo. Pero como dije, lo real que hace
es que básicamente rinde
el hilo actual. Ahora bien, este es un alto
nivel de
lenguaje informático básicamente por
decir que es una especie de detiene
todo lo que está haciendo en este tipo particular de carga de trabajo y luego la
continúa después de que hayan transcurrido los
segundos. Entonces hay cosas
que cuando usas esto, posiblemente
podría romper
ciertas cosas en tu juego. Así que ten cuidado y no
uses tus pesas en todas partes. Estamos como, oh,
esto no funciona. Vamos a poner
una espera por aquí que eso no suele ser
lo que quieres hacer. Sólo quiero enfatizar
esto una vez más. Lo que voy a comentar la impresión y eso es
prácticamente todo lo que hay para
la función de peso. Realmente no hay
nada que resumir. Simplemente espera un
par de segundos y no deberías usarlo en
todas partes de tus guiones. Va a haber algunos ejemplos de dónde lo vamos a usar, que van a
ser interesantes. Y luego hay algunos
ejemplos donde podríamos usarlo, pero tal vez queramos
usar otra cosa. Bueno, eso va a ser para
esta conferencia de aquí mismo, o nos pareció útil y
aprenderán algo nuevo y los veré a todos
en la próxima conferencia.
21. (Roblox) Movimiento de parte básica: Bien, bienvenido de nuevo
a los conceptos básicos de robótica aquí para el curso de Roblox. Y en esta conferencia
vamos a estar viendo mover una parte. Entonces esto va a ser realmente muy
interesante. Entonces para esto en el servicio de
scripts del servidor, una vez más, haciendo un nuevo script y
llamaremos a esto 07, y llamaremos a este movimiento. Entonces esto básicamente va a tomar en algunas de las cosas
que hemos aprendido hasta ahora. Por supuesto, para apartarse, hay muchas maneras
de hacerlo. Por cierto, este es solo
un ejemplo que
podemos usar con un
entendimiento actual que tenemos. Entonces hay diferentes formas en las que estaríamos mejor
incluso para mover partes, pero es posible
hacerlo de esta manera. Entonces solo quiero enfatizar que esta no es la única manera y puede que no sea la forma correcta para cada cosa cierta
que quieras hacer. Pero sólo vamos a
echar un vistazo a esto. Entonces básicamente, vamos a
obtener nuestra parte genial aquí. Órgano, digamos local mi parte. Y vamos a decir, este es el espacio de
trabajo del juego punto mi parte genial. Ahí vas. Entonces lo que
haremos es hacer un for-loop. Una vez más, vamos
a empezar esto a la una. Entonces vamos a ir a, digamos 15 y
vamos a aumentar en uno. Y lo que vamos a hacer entonces es dentro de ese bucle for
va a decir mi parte, esa posición ahora
va a ser igual a mi parte esa posición. Entonces la posición real que
está en más un nuevo vector. Entonces van a
ser vector tres nuevos. Y luego solo diremos,
hagamos IO por aquí, 0.0. Entonces estamos fijando la
posición actual a sí mismo más I. Así que estamos comenzando con uno. Y entonces si tuviéramos que
hacer esto y
empezáramos, básicamente conseguimos la posición
más 15 porque eso es todo. Pero, ¿y si ahora esperamos un segundo entre esto,
qué pasaría entonces? Bueno, vamos a echar un vistazo. Detengamos esto. Y si entonces encontramos nuestra
parte y corremos hacia ella, puedes ver, oh, mira esto. Se está moviendo un paso a un segundo porque está
esperando 1 s y luego aumentando y luego esperando 1 s en aumentar y
esperar 1 s y aumentando todo el camino hasta que haya llegado a su destino
final, que sería más 15 en la dirección x. Y
podemos ver esto. Entonces ahora su posición es 220, así que debería haber sido 205
antes por los, todos los reclutas, las
cosas que hemos estado haciendo antes con los guiones. Entonces esa es la idea general. Entonces puedes usar la
función wait en este caso para retrasar la configuración de
la posición y esto, y así hace que
parezca que en realidad está
haciendo algo. Entonces podrías por ejemplo también hacer, también
podrías hacer
esto, tal vez 50 y luego tal vez lo pones
agregarle un poco menos. Entonces tal vez como un
cuarto de segundo. Y si tuvieras que
mirar esto ahora, se verá mucho más suave. Entonces, si miramos esto, ya
puedes ver que
no es como suave, pero es un
movimiento casi suave, ¿verdad? Y podríamos
hacerlo aún más suave. Ahora tengo que aumentar esto porque claro
que se va a mover más rápido si aumento esto o
si disminuyo el tiempo de espera. Y si tuviera que
mirarlo así,
ahora, se puede ver que es
casi un suave. Entonces, para resumir, si bien esta es una forma posible de hacerlo, veremos también veremos
algunas otras formas en
futuras conferencias. Esto se debe a que
hay algunas cosas que debemos cubrir
antes de que realmente hagamos esto. Porque solo hay algunas cosas
más interesantes que son, bueno que hay que agregar
a tu kit de herramientas, por así decirlo. Pero por el momento, eso
fue todo para esta conferencia aquí mismo. Espero que esto te haya
resultado útil y hayas aprendido
algo nuevo. veré a todos en la
próxima conferencia. Entonces, sí.
22. (Roblox) El acontecimiento tocado: Bien, bienvenido de
nuevo a los
conceptos básicos de Roblox aquí para
el curso robusto. Y en esta conferencia
vamos a estar
hablando del evento Touched. Ahora hemos visto muchas
cosas que podemos cambiar en el código
y en los guiones. Sin embargo, realmente
no hemos llegado a ninguna parte donde
podamos realmente tipo de entradas de algo
o podemos hacer que algo suceda mientras
esto está a punto de cambiar, vamos a crear un nuevo script por aquí en el servicio de script
del servidor. Vamos a llamar a
este evento 08 tocado. Y esto va a ser realmente
muy interesante. Por lo que el
evento Touched es un evento, como su nombre indica. Y los eventos son básicamente, bueno cosas que pasan. Estos son, estos
son eventos que pueden desencadenar ciertas funciones
para luego ser ejecutadas. En el evento Tocado
se llama básicamente cada vez que una parte
toca otra parte. Así que vamos solo por el
bien de la discusión, en realidad deshacernos de todos mis cambios de
posicionamiento aquí. Porque en realidad
no queremos a esos dos. Bueno, ya no vamos a
querer que esto afecte a la parte del núcleo R aquí. Así que vamos a jugar esto y entonces nuestra parte
genial debería quedarse donde está. Bueno, va a alejar el zoom, pero eso es realmente un poco gracioso. Entonces eso por
el movimiento aquí. Entonces, deshagámonos de
nuestro movimiento también. Y ahora deberíamos
tener borrón y cuenta nueva. Entonces para el evento
Touched, antes que nada, vamos
a conseguir nuestra parte de nuevo. Entonces mi parte es una
vez más, el espacio de trabajo del juego. Y luego mi parte genial en
este caso, ahí tienes. Y entonces vamos a
tener un evento tocado. Entonces vamos a decir mi parte punto y luego podemos decir tocado. Y se puede ver que esto
es un perno de aligeramiento. Entonces un rayo, eso es un, un evento. Para que veas que
esto se dispara cuando una pieza entra en contacto con
otra parte. Muy cool. También puedes echar un vistazo a todos los otros pernos de
aligeramiento. También hay un
cambio, un derecho, disparado inmediatamente después de que una
propiedad de un objeto cambió. Podría ser interesante
que queramos ver esto destruyendo
incendios inmediatamente antes de que se destruya una instancia. Bien, toque terminado es cuando
dejas de tocar otra parte,
y así sucesivamente y así sucesivamente. Ahora queremos usar el evento
Touched por aquí. Y luego lo que queremos
hacer es que queremos hacer dos puntos y luego conectarnos. Esto es muy interesante. Entonces también puedes hacer
algunas otras cosas. También puedes hacer una vez esto
entonces llamaría algo una vez. Esta conecta una función a un evento, básicamente diciendo, Hey, es este
evento en particular se llama, entonces queremos
llamar realmente a esta función donde también
hay un peso
que espera algo. Y entonces aquí conectar paralelo
es aún más complicado, básicamente una vez y conectar
son las cosas interesantes. Entonces digamos que decimos que
uno está justo aquí,
dentro de esta función en particular, la función unos, podemos
poner otra función, ¿verdad? Y luego decimos otra parte, y sólo vamos a hacer esta función
en lugar de ésta. Entonces puedes ver que esta es
la función aquí mismo, y este es el
paréntesis de cierre de la once. Y entonces podemos simplemente decir print, y luego podemos decir
por ejemplo otra parte, ¿verdad? Entonces lo que pasa aquí es que esta otra parte es la parte
que ha tocado mi parte. Entonces, si solo tuviéramos que tocar esta cosa en particular,
¿qué va a pasar? Placa base, ¿
podrías ser como qué? Bueno, mira esto. La micro parte está tocando
la placa base, ¿verdad? Y si tuviera que saltar
aquí, no pasaría nada. ¿Por qué es eso? Bueno,
porque una vez significa una vez, pasa una vez. Y entonces dije, sin embargo, si tuviéramos que
conectar esto, bien, si dijéramos conectar,
¿qué pasaría ahora? Bueno, vamos a jugar esto y ya
verás Se va a spam placa base por aquí hasta que ya no
abarque placa base. Bien, interesante
¿qué pasa si ahora saltara sobre esto? Bueno, solo hagámoslo. Y se puede ver parte de raíz
humanoide, pie
izquierdo, pie derecho. Y también las preguntas,
¿por qué se detiene? Bueno, el
evento Touched básicamente, hay
que empezar a tocar y no como tocar continuamente. Eso es algo un
poco diferente. Pero se puede ver que ahora
dependiendo de como un movimiento,
se pone como diferentes
partes de mi cuerpo. Porque si entramos en el
área de trabajo contar y Joe, en realidad
estoy representado por una gran cantidad de diferentes
como partes diminutas. El pie izquierdo, la mano izquierda,
y así sucesivamente y así sucesivamente. Y no como todo mi
cuerpo por así decirlo. Bien, entonces eso es
muy interesante. Pero ahora podemos
hacer que las cosas sucedan tocando un objeto específico. Entonces podríamos por ejemplo
en la micro parte, vamos a hacer esto anclado para que
quede en el aire. Entonces ahora está flotando. Así que nunca va a
estar tocando el suelo. Y entonces podemos hacer
podemos hacer lo que queramos. Podemos imprimir algo. Podemos dejar que empiece a moverse. Podemos disparar al jugador
hacia el cielo. Quiero decir, hay todo tipo de cosas porque esta
otra parte, ¿verdad? Siempre tenemos
acceso a lo que ha tocado nuestra parte. Por lo tanto, deberíamos tener acceso al jugador en alguna capacidad
o al personaje, ¿verdad? Para que podamos hacer algo
con él también. En nuestros propósitos,
lo único que vamos a hacer es que sólo
vamos a hacer que la
transparencia del objeto sea menor. Entonces solo vamos a decir, vamos a hacer que la
transparencia sea igual a una que así que básicamente va
a cambiar 2.5 de todos modos, y luego la cambiaremos a uno una
vez que esto realmente
toque algo. Así que en cuanto salté sobre este objeto o simplemente lo cepille, básicamente va a desaparecer porque la
transparencia va a ser una. Ahí, ahí tienes. Se ha ido. Ahora claro que
no se ha ido, ¿verdad? Sigue ahí,
pero es invisible. Así que es
genial que puedas cambiar ciertas
propiedades ahora como, ya sabes, como algo está
sucediendo dentro del juego. Así que ahora ya no
solo estamos cambiando de propiedades, en realidad
estamos respondiendo a cosas que suceden
dentro de un juego. Y ahora solo porque es
algo muy divertido de hacer, lo que vamos a hacer
es que ahora voy a usar
realmente lo que
tenemos hasta ahora. Voy a hacer que una
propiedad booleana se mueva por aquí. Y voy a preguntar, bueno,
si mover es igual a falso, entonces en realidad quiero
hacer lo siguiente. Entonces quería, en primer
lugar poner el movimiento a la verdad. Y luego quiero hacer
un for-loop por aquí. Yo es igual a uno y luego
haremos diez y haremos uno, y luego haremos. Y lo que vamos a hacer aquí
es que vamos a esperar 1 s. Y entonces en realidad quiero
decir mi parte esa posición. Y luego quiero
cambiar su posición. Entonces simplemente vamos a
ir con más iguales. Digamos más es igual
y luego simplemente decir vector menú de tres puntos y
luego solo uno ceros, ceros. Así que una vez más, sólo
vamos a moverlo en la dirección X por
una n al final. Después de que este
bucle for haya terminado, entonces queremos decir que
mover es igual a falso porque de lo contrario
nunca podremos restablecerlo básicamente. Y luego va
a, no va a funcionar básicamente la idea general,
pero esto, bien,
si hacemos esto,
ahora, cuando, una vez que
toquemos la parte, va a empezar a moverse
hacia la dirección x, diez cuadras por 10 s, y luego va
a parar y entonces en realidad
podemos moverla otra vez. Así que vamos a ver por el
bien de la discusión aquí, ¿verdad? Entonces nada debería
pasar toda esta multa. Toqué esto después de 1 s. Ya puedes ver
que empieza a moverse. Ahora no sé qué
va a pasar una vez que llegue aquí en esta almohadilla de desove. En realidad estoy bastante, Oh,
¿qué va a pasar? Y va a parar. Ahora está parado. Y
puedo tocarlo de nuevo y
seguirá moviéndose. Como se puede ver. Esto está claro, ¿no? Porque está hecho de nuevo. Y si lo
vuelvo a tocar después de un segundo, puedes verlo continuo. Así que esto es
realmente, realmente genial. Eso es algo increíble que
básicamente está trabajando aquí
en este caso es en realidad un ejemplo de cómo puedes responder a algo que sucede
en lugar del mundo. Para resumir, un evento se
adjunta a un determinado objeto. Y si ese objeto, si ese evento es disparado, dependiendo de lo que suceda, entonces realmente puedes
conectar una función a él, y puedes llamar a esa función cada vez que ese
evento en particular sea capturado. En el caso del evento
Touched, por ejemplo, esto realmente te permite ahora responder a las cosas que
el jugador podría hacer, insertar el mundo y luego
hacer ciertas cosas con él. Bueno, eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya
resultado útil y aprendas algo nuevo
y
los veré a todos en la próxima
conferencia. Entonces, sí.
23. (Roblox) Creación de instancias a partir de scripts: Bien, continuemos con los fundamentos de
los bloqueos de carreteras aquí para el curso de Roblox. Y en esta conferencia,
vamos a estar echando un vistazo a desovar nuevas partes. Entonces, ¿qué significa desovar
nuevas partes? Bueno, vamos a
engendrar corazones a través de guiones. Entonces antes que nada, en los servidores de script
del servidor, vamos a hacer un nuevo script
y
lo vamos a llamar 09 dash spawning. ¿Qué tal eso? Y a esto le
llamaremos objetos de desove. Ahí vas. Y lo que vamos a hacer es
simplemente engendrar un nuevo objeto. Así que sólo vamos a generar nuevas partes. Y antes que nada
hagámoslo en el propio guión. Y luego lo vamos a hacer
en contacto en un poquito. Entonces, ¿cómo
engendraríamos un nuevo puerto? Bueno, vamos a hacer un
local y llamarlo nueva parte. Y esto va a ser mientras una nueva parte,
¿cómo la engendramos? Vamos a decir instancia, y se puede ver que ya nos
sugiere esto. Podemos autocompletar esto
presionando la tecla Tab nuevo. Y luego dentro de aquí,
tenemos que obtener el nombre de la clase. Así que tenemos que poner en el nombre de la
clase como una cadena tan pronto como empiece a escribir entre comillas, se
puede ver que
en realidad podemos elegir, bueno, un montón de
clases diferentes que existen por aquí. Entonces podemos agregar un nuevo controlador de
aire, un nuevo vector de tres valores, nuevo script de módulo
si así lo elegimos. Pero en nuestro caso
queremos un nuevo corazón. En este caso, sólo
vamos a elegir una nueva parte. ¿Y qué pasa si
tuviera que hacer esto? Juguemos y
veamos qué pasa. Y lo que vas a encontrar es eso, bueno, en realidad no pasa nada. A ver. No hay,
no hay partes nuevas. Entonces nada pasó realmente
porque esta parte, en este caso, no se ha creado
en ninguna parte. Para que podamos cambiar las
propiedades de esta parte. Entonces podemos decir, por ejemplo, el nombre es igual a una nueva parte por aquí, ¿verdad? Entonces ahora le hemos dado un nuevo nombre e incluso podemos
cambiar la posición, ¿verdad? Podemos decir mientras la posición
es ahora vector tres nuevos y digamos 0150 o
algo así. Y también queremos que
quede anclado, ¿verdad? Así que sólo vamos a
hacer este ancla. Y ahora en teoría, si
todo esto está bien, entonces deberíamos verlo aproximadamente
flotando por encima del engendro. Y no se puede ver nada. Y si miramos en el espacio de trabajo, también se
puede ver mi
nueva parte no
es, no es parte de esto porque
en realidad necesitamos establecer también a
los padres. Esto es sumamente importante. Entonces, la crianza de los hijos literalmente es solo la idea si
miras al explorador de aquí, pero el guión de referencia o a la referencia y
todos mis otros guiones. El padre de esto son los servidores de script
del servidor. Entonces solo ves que esa
es la relación. También puedes ver el
padre aquí mismo. Y si vamos al espacio de trabajo, se
puede ver la micro parte, ese padre es el espacio de trabajo. Y si vas a
la placa base, si vas uno más abajo, la textura aquí, ese
padre es placa base. ¿Qué placas base? Padre es el espacio de trabajo. Esa es la
idea general. Esto realmente no
debería ser
nada confuso. Simplemente básicamente te muestra la estructura jerárquica
del explorador, y eso
es prácticamente todo. Y ahora si decimos nueva parte, parent es igual al espacio de trabajo del punto del
juego, de
repente lo estamos
configurando en el espacio de trabajo. Y ahora veamos si
realmente podemos ver nuestra nueva parte. Y lo que va a encontrar
esto de repente, ahí está, ahí está
nuestra nueva parte. Si entramos en el espacio de trabajo, vemos un nuevo puerto, exactamente el mismo nombre que le
hemos dado aquí mismo. Y lo hemos engendrado
completamente a través de un guión. Y por lo general este es siempre el pedido que quieres tomar. Entonces básicamente, quieres
crear el nuevo objeto, entonces quieres establecer algunas de
las variables de aquí, ¿verdad? Entonces vamos a
cambiar las propiedades. Y entonces esto
siempre es importante. Queremos establecer el
padre, ¿verdad? Y esto es como una cosa
muy, muy importante que
queremos poner aquí al padre de familia. De lo contrario, no
se mostrará en absoluto. Ahora bien, ¿y si tuviéramos que hacer
algo interesante, verdad? Y si solo tuviéramos que conseguir
el evento Touched, ¿verdad? Entonces estamos haciendo lo
mismo por aquí, pero en lugar de movernos, en realidad hará
algo diferente. Entonces lo que vamos a hacer es
simplemente copiar esto nuevo y solo voy a comentar
esto porque bueno, en este caso, en
realidad no quiero que la cosa esté
conectada con otra cosa. Vamos a hacer esto
en el desove. Así que sólo vamos a
generar un objeto. Y entonces
vamos a decir, bueno, ya
sabes lo que
hagamos, en lugar de movernos realmente va a
generar algo. Entonces en el evento
Touched, cuando estábamos tocando
mi parte genial, ahora
quiero que se creen nuevos
puertos. Así que estamos haciendo
un Newport local y podemos hacer casi
lo mismo que este, ¿verdad? Solo podemos decir,
Oye, en Newport, y llamemos a esto,
llamemos a esto otro Newport. Y pongamos un 015. Vamos al teléfono y en realidad
me gustaría algo así como 20 y en este caso
no va a hacerlo anclado. Y luego,
en realidad, pongamos esto arriba, empujemos esto un poco. 525, ¿bien? Y entonces todavía tenemos que
pararlo al espacio de trabajo. Y también vamos a añadir un poco de una función de peso por aquí, digamos medio segundo, porque de lo contrario sólo nos vamos a
quedar inundadas con nuevas, nuevas y joditas partes a un
poco de retraso por aquí. Pero ahora lo que esto debería hacer
es siempre y cuando me quede en el, en mi parte genial, cierto, va a
Swan nuevas partes en. Entonces veamos que eso hace cualquier cosa pero estoy bastante
seguro de que lo hará. Una vez más, tenemos nuestra
parte que teníamos antes. Y si tuviéramos que saltar sobre esto, se
puede ver, de
repente, ellos pueden ver. Y ahora podrías preguntarte, Espera, ¿por qué
engendró tantos? Lo hicimos específicamente para que la función de peso esté ahí dentro. Entonces, si
solo tuviera que pararme en esto, pero para que puedan ver que
no está estropeando nada. Y si tuviera que
moverme y
se puede ver que está funcionando. Y la razón, por supuesto,
es que el evento Touched, en este caso, en realidad
se llama para cada parte, ¿verdad? Entonces básicamente estamos diciendo
que ni siquiera importa cuál la parte que está tocando
nuestra micro parte aquí. Para cada uno de esos, estamos engendrando una nueva parte. Y ya hemos visto anteriormente
que el jugador está
conformado por pequeñas, diminutas partes
diferentes. Por lo tanto, esto va a ser llamado una cantidad de tiempo insana. Así que para resumir rápidamente, cuando engendramos una nueva parte, en este caso, podemos hacer instancia punto nuevo e importante
en este caso. O también podemos engendrar
casi cualquier otra cosa. Podemos engendrar toda una serie de diferentes tipos de clases
es lo que se llaman. Básicamente solo están
diciendo, bien, ¿qué tipo de parte o qué
tipo de objeto es este? En nuestro caso, solo queremos portar y hay
otros, ¿verdad? El lugar de desove como su
propia clase, cosas así. Así que también podríamos engendrar
estas cosas también. En nuestro caso, solo nos estamos pegando a las
partes en este punto. Entonces podemos cambiar
las propiedades. Y entonces muy importante
que fijemos el padre de la nueva parte que acabamos de
engendrar al espacio de trabajo del punto del juego, lo contrario no se mostrará. Y al final aquí,
hemos visto que
también podemos conectar esto con
el evento Touched, que es realmente increíble. Así que ahora estamos generando cosas cuando en realidad estamos
interactuando con el mundo. Bastante genial, pero eso va a ser todo para esta
conferencia de aquí mismo. Espero que hayan encontrado este útil y desodorante y el
nuevo
los veré a todos en la próxima
conferencia. Entonces, sí.
24. (Roblox) Click Detector: Bien, continuemos
con el Robo space X aquí, sigamos curso de libros de reglas
y en esta conferencia, vamos a estar
hablando de detección de clics. ¿Qué podría ser esto? Bueno, bueno, bueno vamos a crear un nuevo script en el servicio de script del servidor. Y llamaremos a esto detección de click de diez
y dash. Y esto va a
ser muy interesante. Entonces, detección de clics,
¿qué significa eso? Bueno, probablemente hayas jugado uno o dos juegos donde
pudiste hacer clic en algo. Y esto es exactamente lo que
vamos a hacer también. Así que simplemente crearemos una
nueva parte en el espacio de trabajo. En primer lugar, vamos a crear
una nueva parte por aquí, y tomemos esto y vamos a
dimensionarlo un poco, solo para que sepamos que
esta es una parte diferente. De hecho hagamos esto 55.5. Ahí vas. Y luego también colorearemos
un poco diferente. Hagamos esto.
El azul es un poco bonito, pero hagámoslo un
poco más azul. Sí, ahí tienes. También se
hacen esto anclado así que sigue flotando en el aire
así y en realidad estoy
bien con eso. Entonces ahora tenemos un puerto flotante y cambiaremos el nombre de
este a clicker. Y lo que esta parte necesita es que realmente
necesita un subobjeto. Entonces vamos a hacer click
en este plus por aquí. E incluso se puede ver
si el uso
frecuente del detector de clics es exactamente
lo que necesitamos agregar a esto. Y haces clic en el detector solo
tiene un par de cosas,
a saber, la distancia máxima de
activación. Hablaremos de eso
en un momento. Pero ahora tenemos un
detector de clics sobre esto. Lo que queremos hacer es que
realmente queremos obtener eso como una variable. Entonces, consigamos el detector de clics,
y esta es una variable. Y ahora vamos a ir
al punto de juego, punto de espacio de trabajo. Y entonces tenemos que
tratar de encontrar el clicker. Entonces vamos a usar
la parte clicker. Y luego debido a que
el detector de clic aquí es un objeto hijo
del clicker, en realidad
podemos obtener el
detector de clics como puede ver. Impresionante. Entonces ahora tenemos el
detector click aquí mismo, y esto se refiere a este detector de clips
en particular. Y ahora solo podemos
hacer una nueva función. Así que vamos a hacer una
nueva función al hacer clic. Y también vamos a poner en el jugador porque
esto es en realidad lo que vamos a conseguir para
la función, ¿verdad? Cuando haces clic en algo, en realidad
vamos a obtener el jugador real
que haga clic en esto. Entonces, antes que nada, vamos a
imprimir a este jugador. Haga clic en Me, y luego
simplemente imprima el reproductor, solo, eso es todo lo que
vamos a hacer. ¿Y cómo conectamos esto? Bueno, una vez más, el detector de
click en este caso tiene ciertos
eventos por aquí, ¿verdad? Así que tenemos, y
en realidad tenemos bastantes. Entonces destruyendo, esos
son eventos normales, pero luego también está el evento mouse-click
y el mouse hover, el mouse sobre leave y
el evento de clic derecho. Y los, creo que
esos son los principales. Y eso es bastante impresionante. En realidad. Vamos a usar el evento
MouseClicked una vez más usando connect aquí. Y luego podemos simplemente
poner el método onClick dentro de él sin
los paréntesis aunque. Entonces solo queremos pasar
esto así. Y luego cuando hacemos clic en esto, realidad
vamos a
ejecutar esta función. Esta es la misma idea que hemos visto antes en el
evento Tocado, donde conectamos una función
inline aquí. Acabamos de crear la
función aquí mismo. Pero en este caso, hemos hecho la función antes y luego la
estamos poniendo ahí. Es la misma idea. Ahora bien, si esto es todo el caso, entonces vamos a jugar y cuando realmente
vamos por ahí. Entonces lo primero que
podrás ver es que cuando pase el cursor sobre
esto con mi mouse, puedes ver que se
convierte en una mano porque, bueno, esto ahora es clicable. Si tuviera que hacer clic con el botón izquierdo, se
puede ver que este
jugador hizo clic en la cámara. Así que ahora, de repente,
el servidor es como,
sí, el jugador hace clic en este detector de clips
en particular. Así que eso es realmente increíble
porque ahora, de
repente , podemos interactuar con el juego
a otro nivel. En este caso, en
realidad hay una segunda forma hacerlo factiblemente. Y eso es que se puede agregar un
script al clicker mismo. Entonces puedes llamar a esto
el guión de los clickers, digamos, correcto. Y entonces solo
tomemos lo mismo que
tenemos aquí. Y vamos a agregar esto
al guión de aquí. Entonces este es ahora el
detector de clics, pero en realidad podemos hacer algo diferente. Podemos decir guión. Esto es llevar nuestro guión
dentro de nuestra jerarquía. Y voy a decir padre. Y luego vamos
a decir detector de clics porque este script, derecho, vamos a ir al padre
que es el clicker, y luego vamos
a hacer clic en la textura. Esto también funcionará. Entonces, si yo fuera a solo,
digamos, vamos a comentar
esto porque eso es un poco mejor si hacemos esto. Ahí vamos. Entonces esto se
comenta y luego tenemos el guión clicker como
hijo del clicker. Y también podemos hacer esto. Y vamos a ver, en teoría
esto todavía debería funcionar. Y si vamos por aquí, se
puede ver que todavía estamos obteniendo esta salida y eso
a veces puede ser mejor. Entonces antes, claro ponemos todo en el servicio de script
del servidor. Así que podría tener
sentido tener realmente el guión debajo de
nuestra parte clicker. Porque tal vez si
tuviéramos que duplicar esto, y entonces tenemos una
segunda aquí. Ahora bien, este también funciona sin que yo tenga que
hacer nada. Ahora hay dos
guiones diferentes, y por supuesto, ahora viene
el tema de que hay que hacer un
seguimiento de qué guión
es cuál y todo eso. Pero independientemente de eso,
sin embargo, es un poco genial. También puedes tener este guión debajo de la parte real.
Eso no es lo principal. Por supuesto lo principal es
la detección clicked en sí, que es otra forma de interactuar con el mundo ahora y ahora podemos usar lo que has
aprendido hasta ahora, ¿verdad? Mover cosas, enviar
la posición y puedes hacer algo
clicable y puedes cambiar de posición, por ejemplo, a la derecha. Entonces solo por el
bien de la discusión, he creado algo aquí que podría ser
algo interesante. Entonces, si solo toco esto y
vamos, y te lo mostraré. Entonces si voy por aquí, bien, tenemos este
cubo rojo en la parte superior. Y si hago clic en este, el cubo rojo se desplaza
por encima de este. Y si hago clic en el izquierdo
, entonces se desplaza hacia atrás. Entonces básicamente solo una forma de cambiar esta posición particular de
los cubos. Eso es algo bastante genial. Ahora en realidad no
voy a mostrar el código. El código estará
disponible para que
puedas descargarlo y
puedes descargar el archivo Excel con esta pantalla de
parte móvil en particular en él. Lo que yo diría es
que, antes que nada,
trata de crear esto tú mismo. Y si puedes hacerlo, eso
sería absolutamente increíble. Si estás atascado, siempre
puedes
echarle un vistazo. Básicamente son dos clickers por aquí en el clicker izquierdo
y el clicker derecho. Y son dos guiones. Sin embargo, los guiones son
literalmente exactamente los mismos. Entonces, podría haber una
manera de condensar esto en un solo guión por
el momento, solo tratando de ver
si puedes
averiguar cómo crear esto. Porque esa ya
sería una forma genial de solidificar algunas de las cosas que hemos
aprendido hasta ahora. Entonces, en resumen, el
detector clics es una herramienta realmente útil que puedes usar para
interactuar aún más con el
mundo y Roblox. Y se puede utilizar
para cualquier cosa realmente. Simplemente puede hacer una
nueva función que
luego se llama cuando el jugador
hace clic en un detector de clics. Y eso puede hacer lo
que quieras, ¿verdad? Pero eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
25. (Roblox) para aplicar fuerzas: Bien, continuemos con los conceptos básicos de Roblox aquí
para el curso de robótica. Y en esta conferencia,
vamos a estar echando un vistazo fuerza y a todo lo que tenga que
ver con eso básicamente. Entonces, lo que fuerza
forzará es básicamente agregar una fuerza a
una parte en particular. Y sólo vamos a echar un
vistazo a un ejemplo de esto. Entonces solo estamos agregando una
nueva parte por aquí, y llamaremos a esto la
parte contundente por el bien
de la discusión aquí. Y lo que queremos
hacer por esta parte, bueno, queremos mover esto. Sin embargo, antes que nada,
queremos dimensionar esto. Vamos a dimensionar esto a 444 de nuevo. Y luego podemos agregar un, bueno, podemos agregar muchas
cosas como hemos visto, pero si buscamos fuerza, se
puede ver un campo de fuerza. Ahora, en realidad no
queremos agregar un campo de fuerza. Queremos o bien añadir una fuerza
lineal o una fuerza vectorial. Ahora esos son casi
lo mismo. Hay una ligera diferencia, pero antes que
nada echaremos un vistazo a la fuerza vectorial y luego
veremos la
fuerza de línea en un momento. La fuerza vectorial en
teoría simplemente apunta a un vector y básicamente luego dispara esta parte
a un vector en particular. Sin embargo, necesitamos un apego. Entonces puedes ver que este es un
apego que se necesita. Y la fuerza que se está
aplicando como aplicada a, en este caso, 1,000
a la dirección x. Entonces, de repente
dispararía en esta dirección. Así que vamos a ponerla aquí abajo. Y si
solo tuviéramos que tocar esto, podrás ver
eso, bueno, no pasa nada. Para que puedas ver la parte de
aquí, no pasa nada. Cambiemos el color
a amarillo en este caso. Y vamos a poder
ver que en teoría, debería disparar en
esta dirección. Sin embargo, no lo hace porque no
tengamos un apego. Entonces, en realidad, a
este informe de fuerza, necesitamos agregar un archivo adjunto. Puedes ver que solo podemos
buscar esto y podemos
agregar adjunto. Y ahora el apego es
parte de esta parte en particular. Ahora bien, si fuéramos a mover el
archivo adjunto, ya lo puedes ver. Bien, ahora ese apego está directamente en medio de esto, que suele ser lo que en realidad
queremos. Entonces solo podemos decir apego. Podemos dar click sobre esto, dar click en el archivo adjunto y ya puedes
ver esto se adjunta. Ahora bien, si queremos asegurarnos de
que este es el correcto, también
podemos renombrar este
contundente accesorio de pieza. Y si tuviéramos que mirar
en la fuerza vectorial, se
puede ver contundente apego
parcial. Bien, juguemos esto y
veamos qué pasa ahora. Lo que verán es que
esto todavía no se mueve. Entonces podrías estar como,
eso es un poco raro, ¿verdad? Porque podemos moverlo,
pero no se mueve. Bueno, el tema es que
hay fricción entre esta parte y la placa base porque por supuesto
que hay toques. Y puedes imaginar esto
si tienes un cubo que está tirado igual que sobre
una mesa para moverlo. Eso no va a ser tan malo. Pero si es como una superficie
gomosa, eso va a ser un
poco más difícil porque hay diferente
cantidad de fricción. Entonces, si tuviéramos que
aumentar esta fuerza a, digamos algo así como
3 mil 500 aquí en este caso. Estoy bastante seguro de que eso
debería ser suficiente para que empiece
a moverse en
la dirección x. Y ya verás, ahí va. Y frecuentemente se
aleja a los cielos hasta,
bueno, hasta que básicamente se ha ido. Entonces eso ya es bastante genial. Tratemos de hacer 2,500. A lo mejor eso va a hacer
que sea un poco más lento. Y tal vez entonces podamos
ver a alguien más también. Al parecer, 2,500 no es suficiente por
aquí como puedes ver. Entonces tenemos que hacer un
poco más, pero eso está bien. Hagamos 3 mil y luego eso ojalá no sea demasiado rápido. Y entonces
en realidad podemos ampliar esto. Podemos ver parte contundente. Se puede ver que la
velocidad en realidad es algo porque se mueve
en esta dirección, ¿verdad? En realidad es tener una
velocidad porque se está
aplicando una fuerza si
tuviera que aumentar esto. Entonces, digamos que fueron 50. Ahora la parte se ha ido
porque ha
volado del suelo del cielo. Y si solo estamos
reiniciando esto e ingresamos
al espacio de trabajo rápidamente y
cambiamos la fuerza por aquí, digamos 5,000, ¿verdad? De repente, donde ahora
conseguimos una increíble cantidad de velocidad y
es mucho más rápido. Ahora bien, esta es una forma de
mover una parte, ¿verdad? Con una fuerza. Eso ya es realmente
interesante. Para tener esto, hay un tipo
diferente de fuerza. También podemos tener, Vimos esto. Hay una fuerza de león. Entonces la diferencia
aquí es sutil. fuerza vectorial básicamente aplica una fuerza en cierta dirección. En este caso, la dirección x ahora hace esto en relación con
el archivo adjunto. También se puede hacer con esto
relativo al mundo. La diferencia aquí es que
si tuviéramos que rotar esto, bien, entonces ahora mismo estamos
usando la dirección x, que es esta
estructura aquí mismo. Lo cual está bien. Porque la
extracción del mundo es así y la dirección x del apego también
es así. Si fuéramos a rotar
los archivos adjuntos. Así que ahora he seleccionado
el archivo adjunto y lo estoy
rotando 90 grados, ¿verdad? Así que vamos a volver a
verificar por aquí. Modal gira 90 grados. Acabo de comprobar esto. Y si tuviera que
girarlo 90 grados, de
repente la x
del accesorio está
en esta dirección. Ahora nos estamos confundiendo todo tipo
de porque, bueno, la fuerza, bien,
vamos a deshacernos de la línea
primero por un momento. La fuerza vectorial se usa en
relación con la unión. Entonces ahora vamos a
alejar el zoom en esta dirección. Si eres como, espera ¿qué
carajo está pasando? Bueno, vamos a echar
un vistazo y
verás que ahora no está haciendo zoom
en esta dirección, sino en esta dirección. Porque la fuerza se está
aplicando localmente, porque tenemos coordenadas
mundiales. Entonces el mundo en esta dirección
es x, esta dirección es z, y la dirección hacia arriba es la razón por que todo eso debería estar
más o menos fino. Pero entonces también tienes indicaciones para tus
propias partes, ¿verdad? Porque si rotas aparte, de
repente se gira. Verás, esto es ahora x, esto es x, esto es z, esto es y. Todo está bien. Pero si tuviéramos que girarlo alrededor de 90 grados alrededor de
la dirección x, ¿verdad? De repente, y ahora es diferente porque hemos
cambiado la rotación. Entonces, si cambias la
rotación de algo, cambias su sistema de
coordenadas locales 3D corrió una
cosa bastante loca, pero en general, ojalá algo
comprensible que haya una diferencia entre un sistema de
coordenadas local
y el sistema de
coordenadas global. Y esta fue la fuerza vectorial. Hablemos también
de la otra fuerza. Esa es la fuerza de línea. Vamos a desactivar aquí la fuerza
vectorial. Y la fuerza de línea necesita de
accesorios como se puede ver. Entonces lo que podemos hacer es simplemente hacer un nuevo puerto. Este va a ser el, este de aquí mismo, y
vamos a hacer este amarillo, pero como naranja,
eso va a estar bien. Vamos a escalar esto solo un poquito. Algo así. De hecho estoy bien con. Y si fuéramos a, digamos rotar esto un poco
y mover esto
alrededor de dos,
algo así. Lo que podríamos hacer es que
podemos agregar que esta va a ser la parte de la línea de fuerza. Sólo para demostrarlo, queremos agregar un, otro
apego a esto. Ahora bien, este apego una vez más, está en medio de esto. Podemos mover el archivo adjunto y deberías poder
ver si hacemos esto. Cambiemos el nombre a esto también. Fijación de fuerza de línea. Ahora podemos mover esto también. Y puedes ver que es un
puntito por aquí que
serás C. También
puedes hacer esto visible y luego siempre
va a ser visible aunque no
lo hayamos seleccionado a veces puede ser útil. Entonces, si tuviéramos que mover
esto como en la parte superior de aquí, lo que ahora podemos
hacer es tomar el apego de parte contundente y adjuntarlo al otro apego,
el apego la fuerza de trabajo
hacer una línea y luego este objeto en particular va
a moverse a través de esa línea. Entonces básicamente va a tirar del primer archivo adjunto aquí. Entonces, si vamos a la fuerza de
línea, a la derecha, va a tirar del apego contundente
hacia el accesorio de línea. Si hacemos una
fuerza de reacción habilitada, esta es una importante. Y luego magnitud una vez más, es solo la idea de
lo rápido que va. Entonces, si solo tuviéramos que ejecutar esto, veamos si esto hace
algo alguno verá, no pasa nada pero mil
probablemente no fue lo suficientemente alto. Sólo hagamos 4 mil 500,
algo así. Quizá sea
suficiente en este caso. Y eso sí es suficiente. Y se puede ver que está
tratando de llegar a esto. Sin embargo, en realidad no puede levantarse debido a la gravedad
en este caso. Entonces lo que podríamos hacer
es que también podríamos conseguir esto más alto para que podamos hacer que
la fuerza de línea sea aún más fuerte. Entonces podríamos hacer
algo así como 7.500, tal vez no 75 K, eso es un poco mucho 7.500,
tal vez algo así. Y podemos ver si
eso hace algo. Y ahora es como que realmente
derribó el pabellón auditivo, lo cual también es un poco divertido. Pero se puede ver
básicamente que está dibujando una línea desde la mitad de este cubo hasta éste. Entonces del
apego contundente al otro. Entonces estos son los dos
tipos de fuerzas, en este caso, la
fuerza vectorial y la fuerza de alineación, ambas utilizadas con accesorios, que también son bastante interesantes porque se pueden hacer muchas cosas con el apego
es en realidad, y veremos bastantes
cosas con esas en futuras
conferencias también. Entonces, para resumir, en general, hay dos tipos de fuerzas, la fuerza vectorial
y la fuerza lineal. La fuerza vectorial simplemente
aplica una fuerza en una cierta dirección vectorial
para una unión particular, la dirección del vector puede ser relativa a la
unión misma. Por lo que va a
cambiar la dirección dependiendo de la rotación
del propio accesorio. O puede ser relativo
al mundo, lo que significa que los objetos, la orientación
o rotación de los objetos
no factorizan en qué dirección se está aplicando
la fuerza. También hay una fuerza de línea que en realidad utiliza
dos accesorios. Por lo que básicamente
aplica una fuerza de un apego
hacia el otro. Entonces dibuja una línea de
un apego a otro y luego aplica
una fuerza sobre esa línea. Y eso va a ser
para esta conferencia de aquí mismo. Espero que esto les haya resultado útil
y aprendan algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
26. (Roblox): Bien, continuemos con
la sección para principiantes de Roblox aquí para el curso de Roblox. Y en esta conferencia,
vamos a estar echando un vistazo a las limitaciones. Las restricciones son
algo
muy, muy interesante que puedes volver a
agregar en tu espacio de trabajo, que va a limitar
el movimiento de tus partes. Ahora bien, esto va a ser un panorama muy superficial
como introducción aquí,
esto es, puede ser, quiero decir, esto podría tener su propia conferencia teórica como de
dos horas. Entonces solo vamos
a agregar una nueva parte y solo haremos esto, digamos como un
poco de naranja más oscuro, tal vez un poco
de naranja más oscuro. Ahí vas. Y
solo vamos a escalar esto un poco y agregaremos
un apego a esto. Entonces esta va a ser la parte con, drenada y esto
va a tener una restricción. En primer lugar, va
a tener un apego. En realidad. Esta va a ser la trampa, el apego reproducido solo para
que sepamos lo que es esto. Y luego podemos
buscar para que
podamos, así podemos
agregarle algo y
solo podemos buscar restricción. Y se puede ver que hay
un montón de restricciones. Como puede ver claramente, la
balsa puede constreñir. Hay una bisagra de
consentimiento cilíndrica, sin juego de colisiones en
prismático, rígido, como si hubiera todo tipo de
cosas que puedes tener aquí, y esas hacen cosas diferentes. Por ejemplo, la restricción de la cuerda hace una cuerda entre
dos accesorios. Entonces en nuestro caso,
vamos a tener el primer apego
B, nuestro propio apego. Y luego vamos a ver. El segundo apego
es el apego por nuestra parte contundente. Y entonces se puede ver de
repente que hace una cuerda entre ellos. Entonces, si en realidad
habilito la visibilidad, se
puede ver que esta es
ahora una cuerda que se hace girar entre este accesorio
y este accesorio. Y la cuerda es realmente genial. Para que puedas tener
diferentes espesores. Entonces esta sería una cuerda muy
gruesa, gruesa. Así que volvamos a ponerlo a 0.1. Se puede cambiar el color de la
misma por supuesto también, ¿verdad? Entonces, si tienes un color de
cuerda
diferente al que quieras,
eso también funciona. Y luego hay algunas cosas
interesantes y esa es la
longitud por aquí, la restitución, así
como el cabrestante habilitado. Si habilitamos el
cabrestante, entonces hay algunos atributos más
que podemos usar. Pero vamos a ver, solo
vamos a hacer la longitud para que veas si
aumento la longitud, diez no es más
que si hago dos, Wendy, por ejemplo si hago 50, vamos. Bien, Entonces, entonces 20
no es suficiente, sino 30, no del todo 40. Y entonces empieza a
holgazanear por aquí porque es más largo de lo que
realmente necesita ser, ¿verdad? Entonces, si tuviera que hacer 32, algo así, todavía
se enseña. 35 ya está algo así como
bajando. Así se puede ver eso porque la cuerda tiene
cierta longitud. Si entonces lo muevo, ya lo
puedes ver. En realidad lo es. Se trata de
tomar en cuenta la longitud de la cuerda
cuando la está exhibiendo. Así que eso es
realmente genial, ¿verdad? ¿Y qué va a pasar ahora? Digamos que hago esta
parte en particular por aquí ancla. Esto significa que este tipo no se mueve como lo que hagas
tú, enloquece. Pero lo que va a
pasar es que voy a
volver a habilitar mi
fuerza vectorial por aquí. Entonces el cubo quiere
alejar el zoom en esta dirección. ¿Qué opinas?
¿Qué va a pasar? Solo echemos un vistazo y
veamos qué va a pasar. Entonces encontraremos que el cubo, mientras está tratando de moverse
en esta dirección. Pero claro que
puede, porque está constreñido por la restricción
de la cuerda. Esto es realmente increíble. Y puedes hacer algunas cosas
interesantes con esto. Entonces ese es un ejemplo de
la restricción de la cuerda. Como si hubiera tantas limitaciones como has visto claramente, ¿verdad? Otra restricción interesante es la restricción de resorte. Este es este de aquí, y esto es un poco
quisquilloso de usar, pero una vez
que entiendes es realmente genial. En primer lugar, para esto, en realidad
voy a bajar un
poco
el
archivo adjunto de restricción solo porque es
solo para que esté como en el mismo nivel
que el otro. Entonces esto sería, ¿dónde está? Esto es menos cuatro. Entonces la palabra posición
es en realidad 1.5 en la y y la
posición mundial aquí es dos. Entonces, solo agreguemos, haz esto 12. Ahí vas. Y ahora debería estar
en el mismo nivel. Y entonces podemos realmente adjuntar este apego
cero es una vez más la parte de restricción
y el accesorio uno es el puerto contundente. Se puede ver que
ahora hay un resorte y podemos cambiar la apariencia
por aquí agregando algunas bobinas más. Podemos cambiar el
radio de aquí a locura y el grosor
a algo realmente grueso. Nuevamente, vamos a
hacer esto siempre visible solo para que tengamos
esto por el momento. Y esto es sólo apariencias. Entonces esto no cambia nada cuando se trata
de la funcionalidad. La funcionalidad se hace entonces
por aquí con la primavera. Por lo que la longitud actual es de 16. Entonces digamos que
los tres largos, este es básicamente el
largo que quieres. Esto, se puede ver
en realidad es la longitud a la que el resorte
no ejerce fuerza de rigidez. Esto quiere decir que ya no
va a empujar este objeto
en particular. Y eso está bien. Si dices 16, entonces si solo tuviéramos que ejecutar
esto, no va a pasar nada. Y además es cero rigidez, así que nada va a pasar de todos modos. Pero si tuviéramos que establecer
la rigidez en 1,000, digamos pongamos amortiguación hasta como cinco,
algo así. Y vamos a jugar a esto. Oh, pero antes de empezar,
deshabilitemos la fuerza vectorial, solo que tenemos esta desactivada. Y entonces realmente vamos a
entrar aquí y
podrás verlo
cuando yo esté dentro, ¿verdad Entonces ahora mismo no
pasa nada si
tuviera que tratar de poner esto aquí
y mirar esto, bien. De repente vuelve a
rebotar, ¿verdad? Para que pueda mover esto. Hacia la primavera. Y siempre se
va a tratar de obtener la distancia que se define
en la restricción de aquí. Por lo que se puede ver la
distancia actual es de 17. Puedo hacer esto más pequeño
básicamente empujando esto a la derecha. Y luego se va
a extender de nuevo. Ahora la longitud actual
aquí no cambia. Probablemente solo
cambia en el servidor, lo que en realidad es algo interesante. Entonces, en realidad veamos si
este es efectivamente el caso. Y puedes ver que puedes hacer algunas cosas bastante
locas por aquí. Pero sí, sí
cambia en el servidor. Entonces eso es bueno saberlo. Pero sí, entonces esta es una de
esas cosas que puedes hacer, algunas
cosas realmente interesantes para que esto funcione. Por supuesto, la
restricción de resorte necesita una rigidez lo suficientemente alta y una cierta
longitud tres básicamente, ¿verdad? Entonces, si tuviéramos que disminuir
esta longitud libre de
repente, va
a tirar esto hacia atrás porque, bueno ahora la longitud libre es
12 y va a
intentar que la longitud actual sea
aproximadamente la longitud libre. No exactamente, pero tanto
como básicamente puede conseguir. Y porque la
primavera en este caso, una
vez para realmente
mantener un equilibrio, tanto de
lo similar, no quiere ser demasiado larga y tampoco
quiere ser demasiado corta. También puedes habilitar los límites. Entonces esta sería la longitud
máxima, ¿verdad? Así que puedes, la longitud máxima
es menor que la longitud libre, realmente
no tiene ningún sentido. Entonces puedes decir algo
como 20 y minlength, puedes decir algo
como cinco y luego ni siquiera
puedes acercarlo a eso. Entonces, si ahora tuviéramos que mover esto por aquí
solo un poquito más. Veamos algo como
esto que va a ser más fácil que si
intentaras menos de cinco, en realidad
hagamos diez. A lo mejor eso va a ser
un poco más fácil y eso ni siquiera
va a funcionar. Entonces puedes ver ahí, de hecho
veo, ya ni siquiera me gusta empujar esto porque esa es como la longitud mínima real. Si es cero, entonces puede
ser tan corto como quieras. Entonces, lo que recomiendo encarecidamente
con las restricciones, especialmente la restricción de
resorte, porque eso a veces puede ser, hay muchas cosas que
puedes cambiar por aquí. Recomiendo encarecidamente
jugar un poco con esto, incluyendo algunas de las
otras limitaciones. Entonces, la restricción de fila es probablemente una de las
más fáciles de trabajar. La restricción de resorte es un
poco más complicada, y algunas de las otras
son aún más complicadas. Sin embargo, sí permiten casi todo tipo de cosas
basadas en la física. Entonces en teoría con la restricción de resorte y
algunas de las otras,
las bisagras y las
cilíndricas se acoplan. En realidad puedes
construir como física, autos
simulados y
cosas así. Eso en realidad como nuestro
simulado con la física real. Es una locura que eso
sea algo que funcione, pero sí que funcione. Pero eso es algo para
gente avanzada, avanzada, ¿verdad? Como que eso no es nada
para nosotros en este momento, pero es bastante genial. Así que solo puedo recomendar encarecidamente
jugar un poco con algunas de las limitaciones y solo ver lo que se
te ocurre, esa es básicamente siempre una de las mejores ideas para aprender
cómo funciona todo esto. Para resumir, hay múltiples restricciones que puede agregar a sus piezas y luego
agregar dos adjuntos. Y puede limitar las piezas sobre cómo son capaces de moverse. Hay muchos
tipos diferentes de restricciones. Hemos visto la cuerda y
la restricción de resorte como dos ejemplos aquí. Y una vez más, mencionaremos, sugiero encarecidamente que
solo juegues con algunos de ellos y luego ojalá podamos encontrar algunos usos geniales para ellos también. Pero eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya
resultado útil y aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
27. Puntos de Spawn (Roblox): Muy bien, continuemos con
los fundamentos de los bloqueos de carreteras aquí siga curso de robótica y
en esta breve conferencia, hablaremos de agregar
nuevas ubicaciones de spawn. Entonces, por supuesto, agregar
una nueva ubicación de desove. Eso no es nada como
eso es una locura, ¿verdad? Literalmente puedes simplemente
hacerlo yendo a modelar spawn y luego
hay otro spawn, o podrías duplicar el spawn
ya existente. ¿Qué pasa si
tienes dos de esos en el mismo lugar? Bueno, sólo
vamos a jugar. Y obviamente veremos
que engendro aquí mismo. Así que engendro los dos siguientes están
haciendo clic Juego por aquí. Sólo paremos y
volvamos a jugar. Y vamos a ver
dónde nace ahora. Ahora engendro también
al lado del juego de clic. Entonces eso es bastante genial. Y volvamos a nacer. Y esperemos que
las fuerzas de la aleatoriedad estén de
mi lado porque ahora he engendrado no al lado del juego
del click, sino en realidad al lado la primavera por aquí,
lo cual es bastante genial. Entonces la idea es que si tienes múltiples spawns que
son del mismo equipo, lo que va a pasar es
que solo te van a asignar uno
de ellos al azar. Si seleccionas una de las ubicaciones de desove y
vas hasta el final, puedes ver que hay
algo llamado
cambio permitido al tacto y
también el color del equipo. Entonces para esto,
en realidad necesitas equipos. Sólo vamos a
echarle un vistazo a esto. Entonces en nuestro Explorer, realidad
podemos agregar algunos equipos. Para que podamos sumar un equipo.
Sólo vamos a llamar rojo a este equipo. Y luego también agregaremos
otro equipo y ese va a ser equipo azul. Equipo azul. Sólo vamos a hacer de
esto un color azulado. Y el otro, vamos a
hacer de esto un color rojizo. Realmente listo, me gusta
eso es, eso es bastante genial. Y esto es prácticamente
todo lo que tienes que hacer. Podemos hacer que el auto
asignable se encienda o apague. Solo
mantengámoslos puestos para los dos. Y si ahora vamos a la
pequeña ubicación, ¿verdad? Y bajamos, podemos cambiar el color del equipo, realmente rojo y podemos decir, Permitir que el equipo cambie. Y entonces podemos ir aquí
y también podemos decir esto, y este va
a ser el azul. Creo que fue
así, azul eléctrico. Estoy bastante seguro de que
tenemos nuestros dos equipos. No obstante, ahora mismo,
las cucharas o neutrales, queremos que no sean neutrales. Entonces cuando engenzas,
tienes ciertos equipos que
están asociados a esto. Así que vamos a entrar aquí. Entonces ahora mismo estoy en rojo del equipo
porque engendro aquí mismo. Si voy al otro engendro y toqué el otro lapso,
de repente soy Tim azul. Vamos y puedo regresar
y volver al equipo rojo otra vez. E incluso puedes ver que
cambias de equipo. Ahora bien, esto no es siempre
lo que quieres, ¿verdad? Podría ser, tal vez
en realidad no quieres que la gente
cambie de equipo. Entonces entonces solo dices, Oye, no
puedes permitir que el
cambio de equipo aparezca sobre nosotros. Entonces eso sí funciona. Así que solo puedes apagar eso. Y también lo importante
es que si
cambiáramos esto a, digamos, realmente azul ahora en lugar de azul eléctrico, ¿verdad? Pero si tengo esto encendido, el color del equipo va
a ser azul eléctrico,
pero el azul del equipo
en realidad va a tener el color del
equipo realmente azul. ¿Qué va a pasar
ahora? A ver, voy al equipo pequeño rojo. Y si voy por aquí, esto ahora está cambiando el equipo. Se ve que me cambia a neutral porque no
encuentra el color del equipo. Esto es muy importante. Entonces esta es una
parte importante de esto. Entonces, básicamente, si entramos aquí, el color del equipo justo
en la ubicación de desove, esto en realidad tiene que ser
exactamente los mismos colores del equipo. Entonces esto sería azul eléctrico. Y entonces esto también tiene
que ser azul eléctrico. Esos colores del equipo
básicamente coinciden. Esta es también la razón por la que puedes tener dos equipos con el mismo color. Esa es en realidad una parte muy
importante sobre esto, pero esa es la idea
general de agregar equipos y nuevas ubicaciones de desove. Ahora bien, lo que te gustaría
hacer en lo bueno es crear
todos
esos equipos y todas
esas cuatro ubicaciones
a través de un guión. Esa también es una idea inteligente. No vamos a hacer esto
por el momento. Solo quería
mostrarte básicamente cómo agregar otra ubicación y también
cómo echar un vistazo al equipo. Así que eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya resultado útil y aprendas algo
nuevo y
los veré a todos en la próxima
conferencia. Entonces, sí.
28. (Roblox) Jugador vs personaje: Continuemos con
los conceptos básicos de Roblox aquí para el curso de barricadas. Y en esta conferencia
vamos a estar
hablando de personaje contra jugador. Entonces, ¿qué es un jugador y
qué es un personaje? Hemos visto a los jugadores
por aquí en el Explorador. Y si nos unimos, entonces en realidad podemos ver que hay algo
agregado y eso es contable. Entonces ahí estoy yo, me
agregan como jugador, pero si entramos en el espacio de trabajo, también
me agregan en el espacio de trabajo, lo cual
es bastante interesante. Echemos un vistazo a esto desde
la perspectiva del servidor. Entonces en el servidor podemos ver
que también tenemos al jugador que viene a través y también tenemos
el kilómetro modal. Para que puedan ver que esto es un modelo, mientras que este de
aquí es un jugador. Entonces, ¿cuál es ahora la diferencia
entre el jugador aquí y el modelo
o el personaje, como lo que hace cada una
de esas cosas Entonces el jugador en realidad contiene
qué datos del Jugador, ¿verdad? Entonces esto va a
ser algo que me sea único en mi ID de usuario, tengo un equipo, ¿verdad? Entonces esto es específico
para mi jugador. Mientras que el personaje
o el modelo es solo la representación física aquí
mismo, ¿verdad? Entonces esto va a ser, este es
el modelo o el personaje, y esto tiene diferentes colores. Tiene, tiene un conjunto de salud, tiene un componente humanoide. Y los
componentes humanoides como responsables, como se puede ver para
algunos de los escalamientos, para algunos de la anchura,
esta descripción par. Para que veas que hay
diferentes accesorios. Entonces estas son todas
las cosas visuales. Esto también incluye guiones, como puedes ver,
guiones locales como animate. Entonces esto es básicamente todas
las animaciones que
ves cuando me muevo por
aquí. Esas animaciones, ¿verdad?
La animación de caminar, la animación de salto,
todo eso, Todo
eso se hace a través de la
animación de aquí, este tipo, al que
realmente puedo entrar. Así que en realidad se puede ver, este es el guión animado
que ya está aquí. Y se puede ver
que aquí hay muchas cosas. Entonces, como puedes decir claramente, algunos de esos matorrales pueden
volverse bastante locos. Entonces, en general, cuando
realmente lo piensas, lo importante es
que el jugador, si queremos agregar
algún tipo de valores, se
agreguen con el jugador mientras que cualquier otra cosa se
agrega al personaje. Entonces puedes ver,
si, puedes ver si explico el jugador por aquí, hay una mochila por aquí, hay algo de equipo de arranque. Entonces, si tienes equipo, bien, lo
guardarías en
el jugador y se
mostraría en el
personaje o en el modelo. Entonces, si por alguna razón
quisieras cambiar la forma en que se veía nuestro
personaje, tendrías que hacer referencia
realmente
al personaje y
no al jugador. Ahora puedes conseguir el personaje
a través del jugador, ¿verdad? Porque si hago clic
en controlar aquí, realidad se
puede ver que
tenemos una
referencia de personaje por aquí, y eso es colegial, que es exactamente este tipo de
aquí, ¿verdad? Por lo que están vinculados. Puedes obtener el personaje
del jugador. Pero esa es la idea general. Entonces, para resumir, el personaje es todo lo que es visual. Básicamente tiene una referencia a todos los modelos y
todas las cosas humanoides, y está disponible
dentro del espacio de trabajo. En teoría, sin embargo,
siempre irías vía el jugador. Siempre esperarías
hasta que el jugador haya cargado o
algo así, y luego ir a través del
jugador al personaje, porque el jugador
tiene una referencia al personaje y
el jugador en sí es básicamente el cliente real y tiene todo tipo
de inflamación, incluyendo alguna tienda de
valor en él, que realmente verá
en la próxima conferencia. Bueno, eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya resultado útil y aprendas algo
nuevo y
los veré a todos en la próxima
conferencia. Entonces, sí.
29. (Roblox) para ahorrar variables en el jugador: Continuemos con
los conceptos básicos de robots aquí para el curso de robótica. Y en esta conferencia,
vamos a estar echando un
vistazo a cómo puedes guardar ciertas variables
en tu jugador. Ahora bien, esto al principio puede
parecer un poco, y eso
no es realmente útil, pero en realidad es muy,
muy interesante de hecho. Entonces, ¿dónde podemos
sumar esos valores? Queremos agregar esos valores
al pack de inicio. Entonces lo que puedes hacer es
agregar valores como puedes ver, si busco valores,
vas a agregar color en valores números. Entonces hay un montón de cosas
que podemos agregar aquí. Digamos que
agregamos un valor final y llamemos a esto. Experimenté solo por el
bien de la discusión aquí mismo, solo para que tengamos
algo con lo que trabajar. Si tuviéramos que
empezar ahora a jugar, ¿verdad? Y si tuviéramos que investigar
al jugador y calmar a Joel, y luego dentro de la mochila, puedes ver que tengo algo de
experiencia en mi mochila. Ahora, claro, en este caso, experimentar la mochila
no tiene
mucho sentido conceptualmente, sino que solo
piensa en ello ya que, bien, ahora
tendrás algo de
experiencia agregada a tu jugador. Vamos a ver esto
en la próxima conferencia de una manera un poco más agradable. Pero solo por el
bien de la discusión, vamos a mantenerlo
así por el momento. Ahora, ahora mismo, realmente
podemos hacer cualquier cosa
con la experiencia, como si no te
cambiara de opinión. Supongo que aquí podemos
cambiarlo, pero eso no hace nada, ¿verdad? Pero lo que queremos hacer es,
digamos que queremos cambiar la experiencia cada vez que cambie la posición de aquí. Digamos que cuando
salté a la otra
cuadra por aquí, ¿verdad? Entonces este sería el bloque
táctil, ¿verdad? Si salto sobre esto, lugar de explorar
mil millones de cosas, en realidad
querría hacer
es que solo quiero imprimir la experiencia real de
este jugador en particular. Bien, eso suena, eso
suena muy interesante. Ahora bien, en teoría,
ya deberías poder
hacer esto por tu cuenta. Pero vamos a pasar por esto. Ahora primero voy a
hacer un nuevo objeto por aquí y vamos a cubrir esto
un poco diferente. Así que vamos a colorear esto en un
poco de un color diferente, tal vez un poco
más rojo oscuro. Sí, eso es bueno. Borgoña. Absolutamente. Esto es burdeos.
Mantendremos esto como clicker con
otro guión. Este en realidad va a
ser el clicker de experiencia. Y esta va a
ser la experiencia,
experiencia clicker guión
porque esto en realidad
va a dar salida a lo que la experiencia real
de los jugadores. Entonces ahora tenemos al
jugador aquí, ¿no? Cuando hace clic en esto, en realidad
podemos hacer player dot y luego podemos hacer mochila
y luego punto experiencia. ¿Esto va a funcionar? Bueno,
va a buscar esto. Y mientras hayamos escrito
todo aquí correctamente, entonces esto debería funcionar, ¿verdad? Entonces deberíamos poder
decir este jugador, ¿verdad? Y entonces en realidad podemos
hacer jugador que va a
sacar el
nombre del jugador tiene XB, ¿verdad? Entonces esto debería ser salida, tiene
este consejo de jugadores, y luego cualquier experiencia que
tengamos realmente dentro de
la mochila. Vamos a ver si eso
realmente hace algo, ¿verdad? Entonces entremos aquí
y veamos, dónde está justo aquí. Entonces, si hago clic en
esto, deberíamos
poder ver este conteo,
esta fila de conteo de jugadores
ha experimentado XP. Bien, bueno, eso
no es del todo entrenamiento como queríamos que hiciera porque
nuestra experiencia aquí, bien, este es un valor int. En realidad necesitamos hacer valor de punto y luego obtenemos el
valor porque por supuesto, cuando solo tenemos experiencia, solo
obtenemos el nombre, correcto. Así que por defecto es el nombre y en realidad queremos
obtener el valor. Entonces ahora en teoría,
si vuelvo a hacer esto, si entramos aquí
y damos click en esto, entonces podemos ver
venir a este jugador , tiene
cero experiencia. Ese es un primer paso
muy, muy bueno. Ahora veamos cómo podemos
aumentar la experiencia. Para ello. Queremos cambiar tanto el clicker izquierdo como
el clicker derecho. Ahí vas. Y para ello, una vez más,
conseguimos al jugador. Así que solo podemos cambiar
la experiencia, ¿verdad? Así que básicamente podemos tomar este valor de
experiencia de mochila de jugador. Entonces esta es la experiencia. Y cuando esto, cuando
el jugador hace clic, solo
queríamos aumentar
el valor en uno. Eso es literalmente
todo lo que queremos hacer. Bien, hagámoslo aquí, y hagamos
lo mismo aquí mismo. Y eso debería ser
más o menos lo que necesitamos. Por lo que ahora
el valor de la experiencia se incrementa cada vez que hacemos clic en la izquierda
y la derecha. Así que vamos a ver si esto
realmente hace algo. En primer lugar, solo para
verificar alguien verifique experiencia
HasZero que
sea absolutamente correcta. Si vamos al
jugador por aquí, mira en la experiencia mochila. Ahora, hago clic en éste. Se puede ver de repente
tengo una experiencia. Ahora tengo que 3456 y de hecho
puedo hacer clic
en el mismo y obtener múltiples
experiencias por supuesto, pero esto es solo un
ejemplo en este caso. Si ahora hago clic en esto, pueden
ver que tengo
16 experiencia. Sí, eso es genial, ¿verdad? Entonces si se guarda valor en el reproductor y
ahora se está almacenando. Ahora bien, si tuviera que
parar y ordenar de nuevo, vamos a, por supuesto, que
va a restablecerse, ¿verdad? Si vuelvo por
aquí, bienvenido de nuevo. Esto es cero una
vez más porque no lo estamos
guardando en ningún lado. Eso es algo que en realidad
vamos a echar un vistazo a unos pasos
intermedios porque en realidad tenemos que guardar esto en los obstáculos Cloud, que es un poco más
complicado en también viene con algunas otras cosas que
realmente hay que tener en cuenta. Pero ahora mismo, has guardado un valor particular en el jugador con un valor
int aquí. Y una vez más, puedo
mostrarte que hay diferentes
valores que puedes tener. Valores booleanos,
valores de color y números de valores. Incluso puede tener
valores de objeto, vector tres valores. Entonces es bastante genial qué tipo de valores puedes
almacenar en el reproductor. Y básicamente puedes
mejorar tu juego con eso en estadísticas o
atributos al jugador. Ahora esto ya es bastante genial, pero en la próxima
conferencia
veremos realmente cómo se pueden agregar
los conjuntos de líderes. Entonces esto sería
sumar las estadísticas en la tabla de clasificación en
la parte superior derecha, derecha. Si me uno aquí, nosotros, hemos visto la
tabla de clasificación porque
tenemos diferentes
equipos y puedo agregar ciertos valores a
esa tabla de clasificación como estadística y luego
cambiarlos también. Y entonces podemos
verlas como más o menos en juego. Así que no tenemos que ir
básicamente a como una piedra aleatoria y hacer clic en esa para ver cuánta
experiencia tenemos. De hecho vamos a
poder ver esto en el juego. Entonces, una vez más, eso es
bastante increíble. Nuestro, eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya
resultado útil y aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
30. (Roblox) Leaderboard con Leaderstats: Bien, continuemos los fundamentos de Roblox aquí para
el curso de obras mundiales. Y en esta conferencia,
vamos a estar echando un vistazo a unas tablas de clasificación, o también llamadas estadísticas de líder.
Esto es muy interesante. Así que para esto en realidad se eliminará la experiencia que hemos
puesto en el paquete de inicio, ya que esta vez
realmente va a generar todos nuestros diferentes
valores a través
de un script. Entonces, en los servidores de script del servidor, vamos a hacer un nuevo script
y esto va a ser estadísticas de
16 dash litros. Y solo agreguemos, esto es una tabla de líderes
o estadísticas de líder. Esa es la idea general
y esto en realidad es muy importante que hagamos
todo esto correctamente. Entonces, antes que nada,
tendremos jugadores locales y esto es igual
a jugadores del juego. Entonces esto va a echar un
vistazo a este de aquí mismo. Entonces los jugadores de aquí,
y va a conseguir esto. Y lo que podemos hacer es que podemos hacer una función local por aquí. Y esta función va a
ser la configuración de la tabla de clasificación. Y esto va a pasar
para cada jugador y va a
quedar así. Entonces haremos una nueva carpeta. En primer lugar, se le
va a llamar estadísticas de
líder y luego a
la propia carpeta. Entonces esta es una carpeta nueva y
esta es una instancia dot nu, y esta es una
carpeta nueva. Como se puede ver. Esta es solo una nueva carpeta que se
va a crear para cada uno de nuestros jugadores verá
cómo se van a agregar para cada jugador
en un momento. Pero antes que nada, y esto
es sumamente importante. El nombre de aquí tiene que
ser exactamente estadísticas de litros. Por favor, preste atención a esto. Tiene que escribirse
exactamente así. L minúscula, Estadísticas de litros. No hay espacio en el medio, no
hay guión,
exactamente así. He visto esto tantas
veces que la gente está como, Oh, no sé dónde no
funciona. Es porque tiene que
escribirse exactamente así. Una vez que ese es el caso,
puede establecer las estadísticas de líder punto padre
igual al propio jugador. Entonces esto va a establecer las
carpetas padre al reproductor, que es exactamente lo que queremos. Y ahora podemos agregar
diferentes valores. Entonces, por ejemplo, podemos devolver
el valor experimentado. Así que podemos hacer experimentado
igual instancia punto nu, y esto ahora va
a ser un valor int. Y entonces podemos ver que el nombre del punto
experimentado es entonces por supuesto, la experiencia. Ahí vas. Entonces el
valor de punto experimentado va a ser ceros. Entonces vamos a empezar con
cero, lo cual tiene sentido. Entonces muy importante
aquí al final. Experimente que el padre es
entonces igual a las estadísticas de litros. Entonces queremos ser
padres de cada una de nuestras variables bajo
las estadísticas de líder. Y en teoría, podemos
simplemente duplicar esto o,
o copiar esto y luego
cambiarlo a, por ejemplo oro también, ¿verdad? simplemente cambia todo esto a oro. Y digamos que empezamos
con algo así como diez de oro. Y ahora tenemos esto. Ahora bien, esto no es
frío todavía en ningún lado, porque ¿dónde llamamos a esto? Bueno, vamos a decir
jugadores punto jugador añadido. Este es un, un evento por
aquí como puedes ver, y esto se llama cada vez se agrega
un jugador al juego. Y vamos a conectar
esto a la configuración de la tabla de clasificación. Y ahora cada vez que un nuevo
jugador se une a nuestro juego, se
les va a dar
la carpeta de estadísticas líder con la experiencia de valor int
y el valor del oro con cero
experiencia y diez voltios. Así que eso es genial. Juguemos y
veamos si esto funciona. Y les aseguro
que va a funcionar. Ya puedes ver contando Joel tiene cero experiencia
y diez de oro. Y si abrimos el
jugador por aquí, en realidad
podemos ver que hay
una carpeta de conjuntos de líderes. Y en vez de eso tienes
la experiencia y el oro. Y básicamente la tabla de
líderes de aquí siempre busca una
carpeta de estadísticas de líder y luego muestra esto. Ahora, por supuesto, lo que
ya no podemos hacer es que
ya podamos hacer clic en esto porque ahora mismo no
hay nada en nuestra mochila, así que en
realidad podemos mostrar esto. Así que volvamos a aquí y consigamos el clicker de
experiencia. Y luego vamos a conseguir
también
los dos clickers aquí mismo. Entonces el izquierdo
y el derecho, y vamos a cambiar
esto aquí mismo. Estábamos cambiando el valor
de la experiencia en la mochila y ahora realmente la
cambiamos en los conjuntos de líderes. Entonces, ¿cómo funciona eso? Bueno, hay un par de
formas en las que podemos hacer esto. Si no queremos
verificar nada, literalmente
podemos decir estadísticas de litros que el valor del punto de oro es igual
a más igual a uno, por ejemplo o experimentado, quiero decir,
lo que queramos. Vamos a hacer
experiencia por aquí, y vamos a hacer experiencia
por aquí también. Entonces podemos hacer esto. Ahora solo vamos a hacer esto por el bien de la discusión, ¿verdad? Así que vamos a entrar
aquí y deberíamos
poder encontrar que si hago esto, se
puede ver que nuestra experiencia por aquí aumenta.
Eso es bastante genial. Pero ¿y si, digamos que esto
es propenso a flechas muy fáciles? Porque en este caso, hago un error tipográfico por aquí. Y de repente estamos como, hago un tipo por aquí
y de repente hago clic en esto y me sale
un error porque oye, la experiencia
no es un miembro válido. Yo soy como, Lo que está pasando el
bastón. Echo de menos escribir esto. Entonces hay un poco de validación aquí
que puedes hacer. Y eso va a ser
algo así. Entonces podemos por ejemplo decir, Oye, dame las estadísticas de líder
para el jugador de aquí. Entonces vamos a conseguir que el
líder se ponga de pie como una variable. Esto no arrojará errores
aunque no haya litros. Eso es porque,
bueno, no importa. Y entonces podemos hacer un local y esto es realmente muy
interesante. Entonces lo que podemos hacer es decir experiencia stat,
y esto es una locura. Podemos decir estadísticas de litros. Y luego poner en
litros postura colon, encontrar primer hijo, esta es una función y esto
buscará experiencia. Esto podría parecer
absolutamente una locura. Lo que haremos entonces es
decir, si se experimenta eso Entonces, y entonces
en realidad podemos aumentar esto. Y podemos usar esto
usando la experiencia. Eso es lo que podemos
decir, experimentado eso, ese valor es más igual uno. ¿Por qué es esto mejor que esto? Bueno, antes que nada, esto
asegura que ambos conjuntos de
líderes existan, así
como encontrar la experiencia real por
aquí con fine first child, se valida usando la declaración
if aquí mismo. Y la idea general de esta tarifa
lineal es que esto es cierto y luego devuelve lo
que sea que esté aquí, ¿verdad? Entonces básicamente estamos diciendo,
Oye, ¿esto no es nulo? Esa es generalmente
la idea, ¿verdad? Entonces líder dice que no es nulo. Y luego encontramos
esto, este niño, que luego se guarda en la
experiencia esa experiencia, ese valor más igual a
uno es lo mismo que esto. Entonces, si tuviéramos que, solo
por el bien del argumento, copiar esto
también al clicker rojo, y cambiamos esto. Usted, ya veremos que todo
esto va a funcionar. Entonces entramos aquí y
vamos a hacer click aquí y se
puede ver que la experiencia
sigue aumentando. Esto es mucho mejor
scripting en este caso, y solo se asegura de
que todo exista. Ahora, ¿qué pasa con la salida?
Esto todavía no funciona bien, vamos al
clicker de experiencia de aquí. Y entonces aquí, se aplica
lo mismo, ¿no? Básicamente podemos conseguir esto. Y luego en lugar de
hacer los más iguales, solo
podemos decir que vamos a imprimir el experimentado ese
valor de datos aquí en este caso. Y entonces
en realidad podemos hacerlo también. Podemos hacer una declaración else. Entonces, si la experiencia que
no existe por cualquier razón, solo
podemos decir que este jugador, jugador no tiene experiencia en aras de
la discusión, ¿verdad? Y entonces si jugamos esto
y íbamos a entrar aquí, aquí ahora tenemos cero
experiencia, ¿verdad? Y entonces podremos subir
esta experiencia. Ahora tenemos seis, así que ahora
tenemos seis experiencia. Todo eso funciona, bien, así que ya es bastante genial. Ahora, podemos volvernos aún más locos solo por
el bien de las discusiones. Entonces por ejemplo lo que podríamos hacer
es que podríamos decir, bueno, si haces clic en esto, realmente
queremos
saber si no tenías o no
suficiente oro, ¿verdad? A lo mejor cuesta oro
mover la cosa. Entonces, lo que podemos decir
es que entonces podemos hacer esto. Y entonces también podemos decir,
también encuéntrame el oro, ¿verdad? Y entonces podemos
decir lo siguiente. Si no hay experiencia que esta ahora
será estrella de oro, ¿verdad? Entonces esta es la estadística del oro Entonces podemos decir si la estadística del oro, entonces vamos a
comprobar cuál es el valor. Si la estadística de
oro y el
valor de datos estándar de oro es más de uno, porque lo vamos
a disminuir. Entonces podemos continuar
con esto y
podemos incrementar el valor
experimentado. Y vamos a disminuir
el valor estándar oro. Entonces ahora nos vamos absolutamente
locos por aquí. Simplemente copiemos esto también
al otro,
como ya mencioné
anteriormente. Ahora, hay una mejor
manera de hacerlo. En lugar de tener dos
scripts como este, solo
puedes tener
un script y hacer la misma función OnClick
para ambos. Por el momento, sólo
vamos a mantenerlo así,
Eso va a estar bien. Pero la idea general es
que estamos comprobando, bien, ¿también
tenemos una estadística de oro? Y si lo hacemos, ¿es el valor mayor que uno o
mayor o igual? En realidad, esto es lo que queremos. Sí. Y si este es el caso, entonces estamos comprobando
la experiencia de que estamos aumentando la experiencia
que al disminuir el oro. Y también podemos rastrear
por aquí en lugar de un, si, podemos hacer otra por aquí. Y entonces podemos
imprimir algo así como que el jugador no tiene suficiente oro
por el bien de la discusión. Entonces, si el jugador
tiene cero oro o por debajo de aproximadamente cero sería
lo que probablemente tendría. Entonces se va a
imprimir jugador no
tiene suficiente oro. Entonces echemos un
vistazo a esto. Así que vamos a jugar, y vamos a
poder ver eso
si sigo aquí,
bien, no tengo
experiencia a las diez de oro. Hago clic en esto. Ahora tengo una experiencia
y nueve de oro y puedo, puedo hacer clic en la misma. Estoy en cero Oro, todo
sigue funcionando bien. Si hago esto ahora, entonces de repente, la computadora
no tiene suficiente oro. Ahora, la cosa
todavía está movida. Lo que podemos hacer es que podamos cambiar esto para decir, Bueno, ya
sabes qué, sólo
se va a mover si en realidad se
resta la meta, ¿verdad? Entonces vamos a mover el
movimiento de esto solo para aparecer. Y entonces, de
repente, sólo podemos mover la parte si
en realidad tenemos oro. Bueno, eso es muy
interesante, ¿verdad? Para que podamos mover esto. Todo esto está bien, ¿verdad? Ahí vas. Y nos movemos esto una vez más, y ahora hago clic aquí
y de repente, no, ¿no funciona bien? Como me hiciste clic, pero no
tienes suficiente oro. Eso es muy interesante de hecho, que esta es una funcionalidad bastante
genial ya. Para resumir, usamos el
evento agregado del jugador para
que los jugadores creen una carpeta de clasificación para cada jugador que
se une a nuestro juego. Y esta carpeta
va a contener cualquier cantidad de
variables diferentes que queramos. Y pueden
representar cualquier tipo de número o cualquier tipo de valor. Aquí, en nuestro caso, agregamos experiencia y oro, y usamos esto para validar. Lo necesitamos en cierto
número de oro por aquí para mover una parte. Y entonces también tendríamos
experiencia. Esto es realmente increíble
y te permite, te
permite hacer tantas cosas. Ahora, las cosas realmente se están
abriendo y
vamos a ver como
muchas más cosas que podemos hacer. Pero eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
31. (Roblox): Bien, continuemos con
los conceptos básicos de Roblox aquí, sigamos el curso de barricadas. Y en esta conferencia,
vamos a hacer partes que puedas recoger. Entonces, ¿cómo va a quedar esto? Bueno, antes que nada,
hagamos una nueva parte por aquí y luego veamos. Entonces, antes que nada,
vamos a hacer de este nuestro 333. Es decir, pienso rotonda, el tamaño correcto que quiero. Quiero hacerlos
anclados y solo quiero
moverlos hacia arriba solo un
poquito del suelo. Entonces vamos a tener
algo como esto. Ahora en realidad
los colorearemos de un amarillo más brillante. Entonces tal vez este amarillo, creo que ese es
otro diferente a él, ¿verdad? No, este es amarillo nuevo y
este también es amarillo nuevo. Hagamos entonces el
naranja profundo también está bien. Entonces ahora tenemos este
puerto y vamos a
llamar a esto la cola de oro, porque esto va a ser,
bueno, un cubo de oro. Esto va a tener un
nuevo guión adjunto, y este va a ser
el guión de la recolección de oro. Ahora vamos a hacer esto
por aquí por el momento. Y luego te voy a mostrar cómo
puedes hacer de esta manera, mucho mejor. Un guión de recogida de oro
por el momento, sólo para comprobar esto
y ¿qué necesitamos? Bueno, necesitamos saber realmente lo que este
oro en particular cubistas, así que necesitamos un cubo de oro local y eso es igual al
guión punto padre. Y entonces también necesitamos tener
unos jugadores locales y eso es
igual a los jugadores de punto de juego. Una vez más, esta es la misma idea que estamos
consiguiendo a esos jugadores. Y ahora tenemos una función local llamada en parte tocada
porque estamos usando el evento Tocado por
aquí en tan solo un momento para recoger este
artículo de oro en particular o este oro básicamente, hay varios
pasos, por supuesto, el primero sería, vamos a conectar
este
punto en cubos de oro tocado colon conectar. Y luego vamos a
poner en la parte tocada por aquí sin paréntesis. Así que así, y ahora esta función o esta
función local va a ser llamada cada vez que se desencadene el
evento Touched. Pero solo queremos
asegurarnos de que esto se despida cuando el
jugador toque esto. Entonces para este que vamos a
hacer es que vamos a conseguir un, el padre de la otra parte. Entonces esta va a ser la
otra parte de ese padre. Y entonces obtendremos el humanoide
de este humanoide, ¿verdad? Entonces este va
a ser el padre de familia. Entonces el padre de la
otra parte, colon, encuentra primero hijo, que
es un y luego humanoide. Humanoide. Ahí vas. Hay una llamada de función larga. Asegúrate de escribir
esto correctamente. Así
que encuentra a primogénito que también está
escrito exactamente así en la
misma carcasa. Y si esto existe, entonces podemos hacer si
humanoide entonces y ahora todo dentro de aquí sólo
será ejecutado alguna vez. Si la otra parte que
toca este cubo de oro va a ser un jugador que tenga un humanoide
unido a él. Entonces lo primero que
vamos a hacer es que vamos a hacer cola de
oro colon destruir, decir que va a
destruir este cubo de oro. En sólo un momento. De hecho veremos que podemos hacer esto de una manera un poco
diferente. Pero por el
momento, solo haremos esto y luego podremos
hacer lo mismo que ya hicimos en el
clicker aquí, ¿verdad? Así que básicamente estamos haciendo Leary exactamente todo esto, ¿verdad? Entonces obtendremos las estadísticas de los jugadores, entonces diremos capa local. En primer lugar, en realidad
necesitamos conseguir al jugador. Entonces para esto, tenemos que
hacer jugadores colon, sacar jugador de personaje porque hemos hablado de
esto a partir del personaje. Y nos metemos en el
pelo y por aquí, le
ponemos al padre por aquí,
porque pensemos en esto. Necesitamos el jugador
ahora mismo de los jugadores, pero solo tenemos acceso
al personaje a través del
padre de aquí. Porque el personaje es lo que realmente
tocó ¿verdad? Esta es la representación 3D
del modelo y en realidad
toca la otra parte. Y tenemos que sacar
al jugador de esto. Esta es la manera de hacerlo. Entonces obtendremos las estadísticas del líder. Entonces litros que es igual al jugador punto litro establece
estadísticas de líder. Ahí vas. Y luego una vez más,
obtendremos las estadísticas de oro, en este caso la estrella de oro
igual a las estadísticas de litros. Y esto es exactamente lo mismo
que hemos visto aquí hasta ahora. Sólo vamos a
obtener las estadísticas del líder, colon, encontrar primer hijo. Y el primer juicio
que queremos encontrar es el oro en este caso, si las estadísticas de oro son ciertas, estadísticas de
oro son ciertas. Éste. Ahí vas. Entonces lo que queremos hacer
es entonces querer, bueno, no el nombre,
pero luego ahí tienes. Queremos decir que el
valor del punto estrella de oro es más igual a uno. Con esto, ahora tenemos
un puerto de recogida de oro, así que tenemos uno de
esos aquí mismo. Entonces eso es bastante genial. Juguemos esto y veamos si realmente puedo recoger esto. Pero estoy bastante seguro de que
debería poder hacer esto. Entonces, si camino hacia
él y lo toco, el cubo va a desaparecer y
voy a conseguir uno de oro. Y ahí tienes, el cubo
ha desaparecido y yo he ganado 1 v. Ahora el
cubo se ha ido para siempre. Y en teoría, podríamos
simplemente duplicarlo, Control D, y podemos
duplicarlo y agregar algunos cubos más. Pero en algún momento sí obtienes
un problema, Digamos por ejemplo , ya
sabes, en realidad, todos esos cubos realmente te
van a llevar al oro. Bien, bueno, vamos a cambiarlo. Bueno, espera un segundo. Esto lo ha cambiado en
uno de esos, ¿verdad? Esto ha cambiado
este en particular, pero este no se cambia y este guión no se cambia, y los otros
tampoco se cambian. Eso es un poco de derecho, eso no es demasiado bueno. Entonces, ¿qué podríamos hacer
para mitigar esto? Hay un par
de opciones que
tenemos a nuestra disposición
para mitigar esto. Una de ellas sería
usar un script de módulo. Digamos solo por
el bien del argumento, cree un
script de módulo por aquí, y llamaremos a esto, es
decir 17 guiones. Y esta sería
la camioneta de oro. Vamos a llamarlo
así. Ahí vas. Y entonces lo que podríamos hacer
es simplemente decir, bueno, tomemos
casi casi la totalidad de esto y veamos qué vamos a conseguir como
una función, ¿verdad? Entonces vamos a hacer
una función por aquí. Y vamos a llamar a este
módulo punto goal pickup. Y ya veremos qué tipo de parámetros
vamos a necesitar. Entonces necesitamos la otra parte. Entonces este va a ser
el primer parámetro. Y entonces también
necesitamos el cubo de oro, ese va a ser el
segundo parámetro. Y el último
van a ser los jugadores. Ese va a ser
el tercer parámetro. Y ahora esto debería funcionar en
teoría el signo de interrogación. Bueno, quiero decir, vamos
a ver, bien, así que vamos
a poder hacer un dos por aquí, y luego solo necesitamos requerir esto
para
poder decir recogida local,
Digamos poder decir recogida local, que los iguales requieren. Y luego queremos
decir puntos de juego, una
especie de
servicio de guion y luego un corchete entre
comillas 17 y pickup de oro. Puedes autocompletar
con la tecla Tab. Y ahora deberíamos
poder llamar a pickup pickup de oro oscuro, pasando a la otra parte
como primer parámetro, pasar en el cubo de oro como segundo y luego a los
jugadores como el tercero. Y ahora, no sólo esto es un
poco más fácil de leer, escribir, y
siempre podemos entrar en esto. En realidad puedes, puedes mantener Control y hacer clic en esto y luego vas a ser
realmente
traído a esta función por aquí. Entonces eso es bastante genial. Y ahora tenemos esto dentro
de esta parte en particular. Así que eso es bastante impresionante. Ahora todavía una vez más
necesitaríamos cambiarlos a todos. Pero si tuviéramos este fue
el que cambiamos. Sí. Así que vamos solo por
el bien de la argumentación, borremos el resto y si
ahora duplicamos esto, ¿verdad? Entonces ahora tenemos una
vez más un par de esos, así que tenemos cuatro de esos, pero ahora todos llaman uno a
la camioneta de oro. Bueno, ahora si quiero
cambiar el valor, van a cambiar de
piso o de noche. Si ahora cambio el valor
en este script de módulo, van a cambiar
para todos ellos. Entonces, si tuviera que tocar esto bien, y íbamos a entrar aquí, íbamos a recoger esta. De repente, me dan
seis de oro y consigo seis de oro por éste y
éste y éste también. Entonces ahora lo que pasó es
que el oro en realidad, porque todos comparten la
misma función aquí mismo, todos
pueden usar esta. Eso es genial porque de
lo contrario
solo estaríamos usando la
misma función de todos modos. No hay razón real para
no cambiarlo. Ahora bien, esto ya es muy chulo y
sencillo. No obstante, digamos solo por el bien de la discusión
en la recolección de portería, ahora
voy a ser
como, ¿sabes qué? En lugar de tener la estadística
de oro así, como el aumento, en realidad solo quiero hacer una variable de
aumento por aquí. Y voy a
poner esto aquí que básicamente pueda
cambiar, ¿de acuerdo? Una recolección de goles en realidad puede
tener diferentes valores. Ahora vamos a
toparnos con el tema de esto ser nulo, ¿verdad? Y entonces si toco esto por el momento, no
va a pasar nada. Sin embargo, en cuanto luego
recoja uno de esos, va a ser
como si fuera a ser nulo porque no está definido. Y ahora ya
volvemos al mismo tema. Si lo cambio aquí a un
dos, va a estar bien. Pero ahora tengo un montón de otros donde este no
es el caso. Entonces, obviamente, lo
que quieres tener
al final aquí es de alguna manera que todos
tus cubos de oro
tengan un guión en lugar de que cada uno de ellos tenga su propio guión ¿verdad? Ahora la forma en que
podemos lograr esto es simplemente
seleccionémoslos todos, haga clic con el botón derecho y vamos
a agruparnos como carpeta. Esto va a subir
a la cima por aquí. Voy a llamar a esto las pastillas de
oro. Ahí vas. Y luego también voy a dejar caer el script dentro de la
carpeta aquí también. Esto no es estrictamente necesario, pero es sólo un
poco más agradable. Ahora vamos a cambiar un poco estas pastillas de
oro. Entonces ahora mismo
no tenemos un cubo. Escribe el guión aquí es
en realidad ahora el padre. Entonces esta va a
ser la carpeta de recogida. Digamos, bien, ahí tienes. Y lo que vamos a
hacer ahora es que queremos iterar a través de todos los hijos
de esta carpeta en particular. Entonces esto es un for-loop ahora, así que esto va a ser cuatro. Y entonces lo que
podemos hacer es que podemos hacer un yo y una camioneta por aquí en, y esto va
a ser un i pares. Entonces, lo que hace esto, en realidad se
puede ver, en realidad dice devuelve
una función iteradora y la tabla para su uso para bucle. Entonces ahora podrías estar como lo que
el **** está pasando aquí. No te preocupes, solo
dale un momento. Entonces solo vamos a usar
esto para lo siguiente, y vamos a usar esto
para la carpeta de recolección, dos puntos consiguen niños. Así que esto va a conseguir a todos
los niños, ¿verdad? Eso está bien. Y luego
vamos a hacer algo. ¿Qué vamos a hacer aquí? En primer lugar,
vamos a decir, si soy igual a uno,
entonces quiero que continúes porque ese va a ser
el guión de la recolección de oro. Bien, eso es justo. Entonces
quiero que hagas es recoger ese toque de colon conectar. Y luego quiero
usar tocados a bordo. Bien, quiero hacer esto
primero y ante todo. Ahora, tiene más sentido, en lugar de hacerlo así
, literalmente, simplemente tomar esta función por aquí
y ponerla dentro de aquí. Porque ahora el
tema se convierte en que vas a, no
vamos a nombrar esto ahora. Entonces solo vamos a
tener una función por aquí que va a llamar a esto, porque el acceso
del cubo de oro y los jugadores
es un poco más difícil. Así que vamos a mover a
los jugadores aquí arriba, y todavía tendremos
que recoger por aquí. Y también necesitamos el cubo de oro. No obstante, tenemos el cubo de oro
que acaba de recoger ahora. Entonces esta es una desafortunada
duplicación por aquí. Entonces este es el guión de recogida.
Vamos a llamarlo así. Ahí vas. Y
entonces la camioneta es en realidad el cubo de oro. Y entonces no
necesitamos ninguno de estos. Y pasé por esto
quizá un poco rápido. Así que vamos a pasar
de arriba a abajo otra vez. Entonces tengo una
carpeta para recoger, ¿verdad? Esta va a ser
esta foto que ahora se pide. Accidentalmente
llamo esto adelante. Esto se llama camionetas. Llévanos. Ahí tienes, ¿verdad? Porque vamos a
hacer script dot parent, que es el script
parent, ¿de acuerdo? Y entonces tenemos a
los jugadores, esto aún
queda por
ser estos jugadores. Y entonces tenemos el guión de
recogida por aquí, que es lo requerido para esto. Ahora bien, si
miramos esto, en realidad podemos reducir aún más
la complejidad de esto simplemente diciendo, simplemente cortando esto. Porque, ¿por qué pasamos
los jugadores por aquí? Podríamos simplemente decir,
Oye, necesitas conseguir a los jugadores. Y
luego ahí vas. Tenemos a los jugadores. Podemos hacer esto y tiene acceso
a los jugadores. Entonces puedes ver que así, estamos separando
ciertas cosas de
ciertos guiones para que el
número uno
los haga un poco
más fáciles de leer. Y número dos, para reducir
las cosas que tenemos que
hacer para poder seguir
trabajando en este juego en
particular, ¿verdad? Porque imaginemos
que estamos teniendo. Si tenemos como un campo
gigante de, no
sé por muchos cubos de
oro por aquí, ¿verdad? Tener cada uno de ellos tiene su guión separado y necesitamos
cambiarlo para todos ellos. Eso es todo ridículo. Eso es una locura. Es por esto que un guión de oro sería
increíble si todo esto funciona. Ahora, en este caso, todos ellos van a tener
el mismo número por aquí. E incluso eso podríamos cambiar, vamos a mantenerlo a las dos ahora mismo. Y vamos a ver qué pasa
si fuéramos a ejecutar esto. Entonces lo primero que
va a ver no
tenemos que ir a
recoger, ir a recoger. Eso es probablemente
porque en realidad estamos viendo esto es
a las 11 por aquí. Entonces el problema es que en este momento, en realidad sí intenta
usarlo para el
guión de recolección de oro por aquí, lo cual en realidad es
algo interesante. Yo hubiera esperado que
el ojo dijera:
Oye, esta es la
recogida de oro, entonces no lo hagas. Este momento en el que en realidad es un cero. Eso va a ser interesante. Pero no creo que
lo sea. No, sigue siendo, todavía
va a estar ahí. ¿Bien? Bien, entonces el yo igual a
uno no ha funcionado. Entonces, vamos a hacer lo
siguiente. Simplemente diga si el nombre del punto de recogida
es igual a pick up de oro, entonces queremos continuar. Ahora bien, esto en teoría debería saltar por encima de él,
y de hecho lo hace. Así que aquí no hay más
errores. Y si tuviéramos que
encontrarnos con este 2222, vamos. Entonces ahora se puede ver, a
pesar de que las
camionetas reales, bien, los propios cubos de oro
no tienen sus propios guiones. Están siendo
destruidos adecuadamente. Y todo esto se hace
a través de un solo guión. Así que esto
es absolutamente increíble. Ahora mismo podríamos ir incluso
un paso más allá, ¿no? Este es ahora el último paso
que vamos a dar. Y es decir, son
dos por aquí, sigue siendo un
poco raro, ¿verdad? Entonces podrías agregar otro, un valor a este
particular cubo de oro. En teoría, podríamos llamar a
esto el valor del oro, ¿verdad? Entonces podríamos llamar a esto el valor del oro en
aras de la argumentación. Y podríamos llamar a
esto, digamos. Y entonces podríamos decir, oye, cuando termine la recolección, en realidad
quiero obtener el valor del
oro, el valor de punto. Ahora va a buscar este valor
por aquí, y va a
leer el valor que está escrito dentro
del cubo de oro, obtienes casi el
mismo problema que
obtienes con los otros donde tienes que cambiarlo de nuevo. Así que también podrías hacer
algo interesante. Esto es una vez más, esto
es sólo un ejemplo. Esto es sólo
para que pienses en esto. Esto no es necesariamente como lo
harías absolutamente, pero lo que él podría hacer también está
en puede decir, ¿sabes qué? Vamos a obtener el tamaño x y
luego hacerlo un dependiente, como la cantidad de oro
que se obtiene, dependiendo del tamaño del bloque real. Entonces digamos que este bloque
es ahora de dos a dos. Y luego podemos simplemente borrar
un montón de los cubos. Y digamos que
tenemos un montón de cubos pequeños y un
montón de cubos grandes, y luego tenemos un montón
de cubos aún más pequeños. Así que van a ser
cubos que son 111. Entonces el, por el bien de la
discusión aquí, ¿no? Así que vamos a tener
como un montón de cubos muy, muy pequeños y un manojo
de cubos medianos. Y tal vez hay como un cubo
gigante como 999, ¿verdad? Sólo por el bien de la discusión. Ahora la pregunta
es, ¿funciona esto? Bueno, quiero decir, estamos
literalmente tomando como valor
el tamaño x del
puerto de recogida. ¿Por qué no funcionaría esto?
¿Correcto? Así que entremos aquí
y podremos ver si
recojo uno de esos pequeños. Obtenemos un uno de oro. Hay dos, hay
tres de oro, ¿verdad? 311, esto es dos. Eso es un dos. Y hay tres otra vez, tres otra vez, y esta es una
gigante y eso es nueve. Entonces eso es como una vez más, solo para hacerte pensar en cómo puedes apilar
todas las cosas de las que hemos estado hablando
hasta ahora en una cosa gigante. Ahora voy a admitir que esto fue
un montón de cosas aquí dentro. Entonces sí entiendo si
todavía hay un poco confuso, lo que te recomiendo que
hagas es el número uno, tienes el archivo RB Excel disponible para descargar, para
que puedas descargarlo. Echa un vistazo al guión. número uno, el guión de la recolección de
oro, y el número dos,
el script del módulo. Vea cómo trabajan juntos. Tratando de simplemente cambiar
algunas cosas aquí. Y tal vez puedas agregar
algunas de tus propias camionetas. Tal vez como un poco
de ejemplo que puedes agregar tú mismo es
tal vez puedas agregar, tal vez como dañar cosas
o curar cosas, ¿verdad? Pastillas curativas y pastillas
curativas curativas
y pastillas de heridas o
algo así, solo para tener una idea de lo que realmente
está sucediendo. Pero en general, esto es
absolutamente increíble. Entonces, para resumir, tenemos una recolección que hemos hecho
con el evento Touched. Empezamos por
tener un guión para cada uno de nuestros cubos
y luego fuimos tan lejos como para ahora tener un guión por aquí
que controla los cubos, que básicamente agrega el evento
Tocado a esos cubos. Y luego un script de módulo donde está toda la
funcionalidad. Y esta es una de las cosas
destacadas donde un script de módulo es absolutamente
increíble para esto, ¿verdad? Pero eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya resultado útil y aprendas algo
nuevo y
los veré a todos en la próxima
conferencia. Entonces, sí.
32. (Roblox) agrega rutas al jugador: Bien, continuemos con los conceptos básicos de
los robots aquí, siga el curso de rúbricas. Y en esta conferencia
vamos a echar un vistazo a cómo puedes agregar un
rastro a tu jugador. Antes de agregar el sendero, ¿qué es incluso un sendero? Así que vamos a agregarlo a
mi parte genial por aquí. Sólo podemos acertar al plus n. Vamos a buscar rastro y vamos
a seleccionar este. Y ahora tiene rastro, ¿no? Entonces ahora hemos agregado el rastro, ahora necesitamos agregar
dos adjuntos. Entonces, en teoría, a nuestra parte
genial de aquí, solo
necesitamos agregar
dos archivos adjuntos. Así que vamos a hacer ese apego y luego solo dupliqué
esto con Control D. Y solo vamos a
mover esto sobre dos, digamos alguien así
, eso va a estar bien. Y luego el
otro, también
vamos a movernos al otro lado. Ahí vas. Y ahora puedo usar el primer accesorio y
el segundo accesorio. Y ahora porque está
apegado a esto, lo que ahora podemos hacer es
cuando movemos esto, deberíamos ver ahí vas, aparece
un rastro exactamente de ese particular
esos dos apegos. Y puedes cambiar los senderos para hacer todo tipo
de cosas, ¿verdad? Se puede ver en el
sendero por aquí, tenemos podemos hacerlo
siempre de cara a la cámara. Incluso tenemos emisiones de luz. Podemos darle una textura. Hay diferentes
modos que puedes hacer. Entonces envoltura estática, puedes agregarle una transparencia y luego también puedes tener algunas
emisiones por aquí. Así que por vida maxlength, se
puede obtener el ancho. Entonces hay muchas cosas
y también podrías hacer realmente genial es que puedes agregar un
color en el color aquí. Se puede agregar una secuencia de colores. Entonces, por ejemplo, podrías simplemente cambiar el color rojo al
principio para leer. Y luego en el
medio aquí es como tal vez azul y
luego lo cambias por aquí a un
verde diferente y luego por aquí lo
cambias a otro
color para que puedas obtener como colores
arcoíris o todo
tipo de locuras. Entonces puedes ver ahora que tiene la forma
más o menos así. Y si ahora
tuviéramos que hacer que este tipo se mueva, así que si movemos esto
ahora, ya pueden ver, ahora está cambiando con el tiempo
como bastante genial ya. Se puede ver ahora que está
cambiando el rastro, Está cambiando su
color quedarse con algunas de las propiedades. Entonces, por ejemplo, o abajo en la emisión, puedes agregar diferentes cosas
como tener más vida, así que entonces va a
permanecer vivo por más tiempo. Puedes tener una longitud mínima y una
longitud máxima e incluso
ajustar el ancho. Entonces, si tuviéramos que hacer como, no
sé, cinco
años de por vida, entonces solo va a quedarse ahí por mucho
más tiempo como puedes ver. Como si simplemente se mantenga vivo
mucho más tiempo hasta que decae. Entonces eso también es bastante genial. Si bien se ve genial aquí
mismo, realmente
no hace nada por nosotros. Entonces vamos a agregarlo al jugador. Lo primero que queremos hacer es en
realidad en estos
servidores de almacenamiento, queremos agregar un
rastro y este
va a ser el trail del jugador. Entonces este va a ser el rastro que se le suma al jugador. Y por el bien
de la discusión aquí, vamos a cambiar esto
a un, una vez más, unos colores locos por
aquí. ¿Por qué no? Así que vamos a ir por el rojo
y luego un poquito después vamos al rosa y
luego nos vamos al azul. Y entonces aquí vamos
a turquesa, ish, digamos, y luego verde, tal vez un poco más tarde. Y luego vamos a un verde más
claro y luego amarillo. Y luego aquí al
final vamos a una naranja, y luego al final
volvemos al rojo más oscuro. Entonces ahora tenemos un color
genial del arcoíris por aquí, lo cual
es bastante impresionante. Y vamos a usar esto
y dárselo al jugador. Todo esto está bien. Entonces echemos un vistazo a
este de aquí, aquí mismo. Entonces vamos a hacer
una longitud máxima de esto, porque de lo contrario va a, quiero decir, de lo contrario la
longitud es infinita y no
necesariamente queremos eso. Y luego vamos a
adjuntar esto al jugador. Bueno, en realidad vamos a
adjuntarlo al personaje, pero porque el personaje
es por supuesto lo que en realidad es visible, ¿verdad? Ese es el, eso es
lo visible por lo que hemos pasado
por esto antes. Pero vamos a agregar una secuencia de comandos una vez más en el servicio de stub
del servidor. Y llamaremos a esto 18 dash y a esto lo llamaremos el rastro
del jugador también. Ahí vas. Y vamos a
acercarnos aquí mismo. Ese es el rastro del jugador y
vamos a hacer jugadores locales. Entonces este va a ser nuestro juego, jugadores de punto de
juego otra vez. Y entonces queremos que los jugadores
punteen jugador en ello. Entonces queremos comprobar cuándo se ha agregado el
jugador y conectar esto a un particular, conectar esto a una
función en particular aquí donde obtenemos el jugador y luego dentro de
aquí, oh, esto es jugadores. Por supuesto, ahí vas.
Jugadores agregaron, ahí tienes. Entonces en vez de aquí,
queremos hacer jugador punto, carácter agregado colon conectar, y conectar esto a
otra función, Esta vez consiguiendo el personaje. Entonces tenemos dos eventos por
aquí, uno dentro del otro. Esto está totalmente bien y
ahora queremos continuar. Entonces ahora queremos
clonar el rastro. Entonces queremos decir
servidores de juegos, almacenamiento, punto, dot player trail, éste, clon de colon. Entonces ahora hemos clonado este rastro. Entonces tenemos un crédito, un segundo objeto de
este en particular. Así que literalmente como si
fuéramos a hacer control C, control V, y ahora lo
hemos duplicado. Entonces esa es la
idea general de lo que hace el clon. Básicamente. Entonces queremos decir que
el rastro Don padre ahora
es igual al personaje. Entonces queremos esperar alrededor
de medio segundo porque
esto es necesario. Lo que yo por lo que he
encontrado de otra manera, los apegos y cosas
así no funcionan del todo. Y luego vamos a
hacer nuevos archivos adjuntos. Entonces vamos a hacer
un nuevo apego. Se va a
tocar con cero y esto igual a una
instancia punto nuevo, por
supuesto, un nuevo apego. Y de inmediato podemos
decir que esto
va a pasar por debajo de la cabeza de punto de
carácter. Entonces esto va a ir a
la cabeza del personaje. Y entonces podemos decir archivos adjuntos cero nombre punto va a ser justo para que tengamos este
rastro apego cero. No es necesario
cambiar el nombre, sino solo mantener
todo organizado. Y entonces podemos hacer un segundo apego como apego uno. Y esa es también Instancia esa nueva una vez más y
luego un nuevo apego. Y se trata de dos personajes
que parte de raíz humanoide. Ahí vas. Y
luego cambiaremos el nombre de esto también. Y este nombre
va a ser seguido
adjunto uno en este caso. Y ahora todavía
tenemos que asignar esto. Entonces todavía tenemos que decir
Trail dot attachment zero es igual a una tangente cero y trail dot attachment one es igual
a attachment one. Juguemos y veamos qué va a llegar
a esto. Entonces ahí estamos. Y
si empiezo a moverme, se puede ver de
repente que obtenemos un sendero
realmente, realmente impresionante que nos
sigue bien con
cierta longitud. Y por supuesto podemos
cambiar este derecho? Si vamos a Workspace,
cuenta y mandíbula. Y luego aquí abajo, deberíamos poder
encontrar el rastro del jugador. Y en teoría, podríamos
cambiar este peso así que queremos enfrentarnos a la cámara. Entonces ahora siempre va a enfrentar la cámara como puedes ver, que también se ve bastante genial. Para que puedas activar o desactivar
esto. Hay influencias de la luz. Entonces puedes cambiarlo aquí
y así como básicamente echar un
vistazo a lo que esto,
lo que cambia por aquí. Entonces tal vez queremos
hacer esto un poco más brillante o tal vez mujer,
como ¿sabes qué? No, en realidad va
a ser un brillo cero, entonces de repente está
completamente oscuro por supuesto. Entonces hay un montón de
cosas que puedes hacer aquí y cambiarlo para que se adapte a
tus necesidades básicamente. Y esto puede agregar una capa
a tu array de caracteres. Esto podría ser algo que quieras agregar para
tus personajes. Tal vez quieras agregar esto a tu juego para que la gente
pueda comprarlo, por ejemplo, con bloqueos de carreteras como
ejemplo aquí. Pero esa es la
idea general de un sendero. Entonces solo por el bien de
argumento de aditivo
al pie izquierdo y al
pie derecho del personaje. Y vamos a ver
cómo se ve esa. Va a parecer un
poco loco, pero ¿por qué no? Se puede ver que sigue funcionando. Entonces obtienes un rastro básicamente
donde el personaje pisa. Y eso en realidad
también es genial. Puedo, puedo imaginar tal vez esto para una mascota o
algo así. Como una
mascota muy rara que podría tener uno de esos senderos que se verán realmente,
realmente increíbles. Pero sí, esto es un
rastro y así es como lo agregas
específicamente al personaje. Pero honestamente, puedes
agregarlo para que signifique cualquier cosa realmente. Entonces, para resumir, se puede
agregar un sendero con dos adjuntos
diferentes. Ahora en nuestro caso, en
realidad lo estamos clonando desde el almacenamiento del servidor
y luego
agregándolo al personaje a través de
dos archivos adjuntos que también
estamos creando dentro de
un script en este caso. Y esto no sólo es
factible para un personaje, en teoría también
podrías
agregar esto a Kaslow. Piensa que mueven
diferentes modelos. Realmente puedes hacerlo en cualquier lugar donde
tengas dos archivos adjuntos. Robot, eso va a ser
para esta conferencia de aquí mismo. Espero que esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
33. (Roblox) Tres tipos de GUIs: Bien, continuemos
con los conceptos básicos de Roblox aquí para el curso de robots. Y en esta conferencia
vamos a hacer una breve reseña
de Grecia. Grecia o GUI son básicamente interfaces
gráficas de usuario. Y permiten al usuario interactuar con un pozo una interfaz
gráfica de usuario. Y básicamente hay
dos tipos diferentes. Podemos
crear algo en la GUI estándar aquí mismo, o también podemos crear
algo en el mundo. Empecemos en la GUI estándar. Y si pulsamos el botón
más por aquí, se
puede ver que ya nos
sugiere la GUI de pantalla y eso es exactamente lo que
queríamos crear. Así que vamos a
crear una GUI de pantalla. Y bajo esto
podemos hacer otro plus. Y entonces se podía
ver que podemos añadir ciertamente objetos de la interfaz de usuario, por ejemplo, a. Frame. Y lo verás en
la esquina superior izquierda aquí. Ahora conseguimos un marco
blanco e incluso podemos mover esto, así podemos moverlo alrededor. Se puede ver que obtenemos
algunas líneas de guía. Este es el medio horizontal, y luego incluso podemos meterlo en el centro exacto de la pantalla. Entonces podemos cambiar el tamaño de esto para poder redimensionarlo
así, ¿verdad? Entonces eso es bastante genial.
Así que básicamente podemos cambiar el tamaño de esto como un montón de cosas. Incluso obtener algunas
líneas de guía donde está, como cuántos píxeles es grande y cuántos píxeles
es desde la parte superior, por ejemplo y luego dentro de esto, vamos a
aumentar realmente el tamaño aquí un poco más. Y luego lo que podamos hacer, justo cuando lo
volvamos a centrar, ahí tienes. De hecho, también podemos
agregar cosas a este marco. Así que podemos, por ejemplo, agregar una etiqueta de texto y ahora hemos agregado una etiqueta. Podemos enviarle esto también. Tal vez podamos dimensionarlo un
poco y podemos, por ejemplo ,
decir, bien, queremos cambiar el texto que se
muestra en la etiqueta. Podemos dar click en esta
etiqueta y luego
bajar hasta
los textos de aquí, ya ves no solo podemos
cambiar el estilo del texto, haciéndolo audaz y
tal vez incluso cursivo, ¿
verdad? Podemos hacer muchas cosas. Podemos hacer una etiqueta de texto enriquecido
y podemos cambiar el texto. Entonces, por ejemplo, podemos decir que este es
un ejemplo de un texto, ¿verdad? Y si envío esto, ahí tienes, bam, listo. Podemos cambiar el
tamaño del texto. Quiero esos más grandes. Hagamos esto un
poco más grande. 32, absolutamente increíble. Incluso podemos hacer la báscula, por lo que luego
se escala automáticamente como puedes ver. Entonces si escalo este elemento
en particular que sus escalas automáticamente,
lo cual es bastante genial. Pero saquemos
esto de aquí. Y también puedes cambiar
los textos. El color de los textos también. Entonces puedes ver bajo este
texto, hay muy, hay muchas
propiedades que básicamente
puedes cambiar
para cambiar esto, en realidad
hagamos también
esta audaz y-nada. Y entonces tenemos un, bueno un elemento de texto
aquí mismo. Bastante genial. Y se puede ver que
hay algunos otros. Entonces botón de texto, por ejemplo Eso es solo un botón
con un texto en él. También puedes tener un botón de
imagen en realidad. Entonces esto también funcionará en el botón Imagen
que luego tendrá una imagen en él para que puedas hacer clic en este botón y suceden
ciertas cosas. En realidad sólo vamos
a ver
aquí un ejemplo muy minúsculo para los botones de texto. Entonces este solo va
a ser el botón de cerrar. Así que sólo vamos a cambiar
esto de botón a cerrar. Y vamos a dimensionar
esto también. Algo como tal vez, tal vez
50 va a estar bien. Y entonces
también vamos a hacer esta pelota. Ahí vas. Y si hago clic en
este botón ahora mismo, no pasaría nada porque solo
podemos jugar esto bien? Si tuviera que jugar, lo que
va a pasar es que la GUI va a
aparecer porque
siempre aparece el GYE. Y mientras pueda
hacer clic en este botón, como si no pasara nada y
el GY persistiera. Pero claro, cierto,
esto es algo molesto. Entonces lo que podrías hacer es
dejar de esto. Y si
realmente quisiéramos desactivar esto, lo que podemos hacer es
simplemente agregar un script local a nuestro botón de texto de aquí, y luego podemos agregar algo. Entonces, por ejemplo, este es el script de
botones de ejemplo, ¿verdad? Esto es solo un script de botón. Ahora bien, este es un
script local porque la GUI solo es relevante
para nuestro cliente, ¿verdad? Sólo para nuestro jugador particular. Solo tenemos que hacer esto
en el cliente local. Entonces vamos a por el botón. El botón en sí es para script dot parent porque por supuesto, estamos haciendo referencia a
este script y está haciendo referencia ahora a este
botón como padre. Y entonces también podemos obtener el panel
real. Entonces va a haber el
panel y eso es igual
al botón, ese padre, ¿verdad? Entonces este sería el frame en sí como lo sería el
frameless llamarlo frame. Y si quisiéramos
ir un paso más allá y de hecho ir a
la GUI de la pantalla, entonces
podemos decir
frame dot parent. Entonces esos son los
tres que tenemos. Y cuando en realidad
queríamos hacer algo, bueno, el botón nos
ofrece un evento. Por supuesto, este sería el botón punto
activar, activado. En realidad, ahí tienes. Entonces
este es un evento por aquí, deja que el
evento activado aquí mismo. Y podemos hacer dos puntos
conectar y luego simplemente hacer una nueva
función por aquí. Y en realidad
no estamos consiguiendo nada dentro de él o no
necesitamos conseguir nada. Y entonces solo podemos decir por ejemplo botón de
impresión hecho clic
aquí solo para tener esto. Y entonces solo podemos decir
también pantalla. Así que va a haber nuestro punto de
pantalla habilitado es igual a falso y esto
básicamente desactivará la pantalla. Eso es bastante genial. Vamos a ver si esto ya funciona, pero ya debería funcionar. Así que vamos a entrar
y ya puedes ver, si ahora hago clic en este cierre, puedes ver ButtonClicked
y también la GUI ahora se
ha deshabilitado
porque empezaron, estamos aquí mismo en este
básicamente se ha
deshabilitado ahora
no se ha deshabilitado aquí
mismo en la historia, porque la GUI por
supuesto también se guarda algún lugar por aquí en el
espacio de trabajo o en otro lugar, probablemente en otro lugar,
pero está replicado. Y esa es la idea general. Es por ello que luego se desactiva para nuestro
jugador. Bastante genial. Entonces ese será un
ejemplo de una GUI. Ahora bien, una
cosa importante a tener en cuenta, si quieres, por ejemplo, tener una imagen, ¿verdad? Entonces, si queremos agregar una etiqueta de imagen aquí
y solo centrarla, quieres cambiar esta
imagen a otra cosa. El tema va a ser que realmente no puedes
cambiarlo a nada. Entonces ahora mismo, nuestro juego
no está publicado en Roblox. Esto es deliberado,
y es por eso que
en realidad podemos agregar una
imagen personalizada aquí en este momento. A partir de este momento, en
cuanto publiquemos nuestro juego. Entonces realmente podemos acceder a la capacidad de agregar también imágenes, y luego en realidad
también podemos agregar una imagen aquí. Así que ten esto en mente.
Lo vamos a mantener así por el momento. Y en realidad vamos a
ir a la pantalla GUI y habilitarlo, deshabilitarlo. Y luego vamos a
ver a las otras dos GUI. Entonces hay otro tipo de GUI. Digamos que
queremos agregar esto a, digamos este
bloque en particular de aquí, el clicker. Y lo que podemos hacer
es que podríamos simplemente hacer un plus por aquí y
podemos escribir en GUI, y se puede ver que
podemos agregar una
GUI de cartelera así como una GUI de superficie. Primero que nada
agreguemos una interfaz gráfica de usuario de superficie y echemos
un vistazo a lo que es esto. Entonces creo que solo hay clicker. Ahora podemos agregarle ciertas
cosas también. Para que veas que
está de este lado. Ahora, cambiemos la cara. Esto va a ser un frente. Probablemente queremos la
derecha o la izquierda. En efecto, ahí vas. Y ahora tenemos esto en
este sitio en particular. Para que veas que
ahí hay una etiqueta. Si me alejo,
entonces apenas es legible. Si me acerco un poco
y es mucho más legible, y podemos cambiar esto. Entonces en la etiqueta de textos de aquí, podemos entrar aquí y cambiar
algunas cosas como antes que nada, cambiar los textos por aquí. Entonces esto es solo,
solo texto de ejemplo. Ahí vas. Si quisiéramos mover
esto, podemos hacerlo. Entonces por la posición de
aquí a la X e Y, ahora tenga en cuenta que el escalado y el
desplazamiento aquí es bastante grande. Entonces, por ejemplo, si hacemos
un desplazamiento de 50, en realidad
nos movemos a través. Si haces una báscula, entonces deberías hacer como
0.1 y cosas así. Porque de
lo contrario va a
ser como sacarlo de la
salida del servicio. Entonces digamos por ejemplo 25, de
repente tenemos esto centrado en la
pantalla de aquí. También hagamos esto
un poco más grande, así que es un
poco más fácil de leer. 32, tal vez un poco
demasiado grande, tal vez un 26. Sí, ahí tienes. Y
ahora tenemos esto aquí. Entonces, si tuviéramos que jugar ahora
y de hecho ir hacia él, y ya ves ¿dónde está? Ahí está. Entonces es difícil de leer y
luego en algún momento se vuelve un
poco más agradable de leer. Entonces esto podría no ser
siempre lo correcto
que quieres hacer. No obstante, es una GUI de superficie, por lo que es una GUI que
puedes poner en una superficie. Pero por último, tenemos
el tercero. Y si añadimos esto,
esta es la GUI de cartelera. Ahora la GUI de la cartelera es algo interesante ya que a veces es un
poco extraña, pero vamos a agregarle
un marco. Y se puede ver ahora mismo que está en medio de este objeto. Podemos cambiar la posición usando estas estadísticas
compensadas por aquí. Entonces digamos que quiero
hacer que este diez arranques sea más alto, y ahora está por ahí. Ahora, cuando acerco y alejo, se
puede ver que cambia
su tamaño porque básicamente siempre quiere conservar bien su
tamaño en esta pantalla. Entonces, si solo nos aseguramos de
que todo esto esté configurado, entonces en el frame, queremos usar como el tamaño uno, coma cero, y luego
10 aquí también. Porque siempre nos preguntamos
el, ahí tienes. Siempre queremos que el marco
llene perfectamente la GUI. La idea general
es que si usas la escala de tamaño de aquí, y va a hacer el 100% de ella. Si quiero la mitad,
podría hacer 0.10, 0.05 sería 5%, 0.5 sería la mitad. Entonces ahora está ocupando la
mitad de la
GUI de cartelera como puedes ver, ¿verdad? Y entonces uno por supuesto
significaría que estoy ocupando el
100 por ciento de ella. Si entonces agrego una
etiqueta de texto por aquí, ¿verdad? Entonces ahora que tenemos
la etiqueta de textos, cambiemos la etiqueta de
texto en sí. Entonces digamos que va
a ser un poco más grande. Nosotros 32, um, tal vez, tal vez vamos a hacer 28 y
eso va a estar bien. Y entonces en realidad me
van a hacer clic en el texto. Ahí tienes, ¿verdad? Y
si solo tuviera que unirme ,
ahora, vamos a echar un
vistazo a cómo
va a quedar esto. Entonces si cambio mi cámara aquí, así que esto va a
estar totalmente bien. Esta es en realidad una GUI de cartelera bastante
agradable. Ahora se ve afectada por
la luz de aquí. Podemos cambiar esto también, pero en general eso es bastante genial. Pero ahora veamos qué
pasa si sigo alejándome y sigo alejándome y
sigo alejándome. Y se puede ver que esto es algo raro que
pasa, ¿no? Entonces en este punto, se pone
enorme, idiotas, bastante grande. Ahora, todavía podemos leerlo, lo cual en realidad es
bastante impresionante, pero se vuelve bastante grande. Y tal vez para ser honestos, como si realmente necesitamos
saber qué está
pasando la rana por aquí para
como 100 estudios de distancia. En realidad no. A
lo mejor debería suceder como aparecer en cualquier parte por aquí, eso probablemente sería suficiente. Y podemos cambiar esto yendo nuevamente
a la GUI de cartelera y bajando a
la distancia máxima. este momento es infinito,
así que básicamente simplemente muestra en cualquier lugar donde
te encuentres en el mundo. Y tal vez solo digamos
50 aquí y veamos si esto hace algo y definitivamente va a
hacer algo, pero iba a,
bueno, ahí tienes. En realidad hace exactamente
lo que queríamos. Entonces, si estamos lejos de
él, entonces no se nota. Y luego también no
tenemos este extraño tema de dimensionamiento. Y si entramos a
cierto radio, siendo
esto 50 estados del mismo. Así que la cámara tiene que
ser, así que en realidad puedo conseguir que esto se
muestre a veces y a veces no, pero eso no debería
estar del todo bien. Y entonces si estamos
aquí, se puede ver con claridad y eso es bastante genial. Pero el dimensionamiento aquí es
en realidad lo importante. Entonces teniendo la escala y para que la
coordenada x e y sea una. Entonces básicamente para
llenar la GUI de cartelera, y luego normalmente el
escalado va a hacer exactamente lo que
básicamente quieres que haga. Y esas son las tres GUI, la GUI de pantalla, la interfaz de
usuario de superficie terminan la GUI de cartelera. Muy interesante en efecto, que en realidad concluye
esta conferencia aquí mismo. Espero que esto les haya resultado útil y aprendió algo
nuevo y
los veré a todos en la próxima
conferencia. Entonces, sí.
34. Referencias de API: Bien, continuemos
con los conceptos básicos de los robots aquí para el curso. Y en esta conferencia
estamos en realidad en las referencias de la API de Roblox Engine lugar de en Roblox Studio. Porque aquí es básicamente
donde te muestro una visión general de cómo
puedes usar create robots.com. Vincularé esto también en
los recursos. Y este es un muy buen
recurso para que, bueno, como veas, la lógica en tus experiencias, los
bloqueos de carreteras. Entonces, básicamente, tienes
acceso a todas
las diferentes clases
y tipos de datos y todo lo que pueda haber ahí dentro que alguna vez
quieras echar un vistazo. Entonces, por ejemplo, lo que
hemos visto antes, hemos visto antes del detector de
peste, por ejemplo, así que hagamos clic en esto
y podrás verlo. Un detector de clics permite que un script y un
script local reciban una entrada de puntero desde un objeto 3D a través de su evento de clic del mouse. Absolutamente loco. Básicamente
te muestra muchas cosas. Te muestra un
ejemplo por aquí y explica mucho de cómo funciona
esta cosa, ¿verdad? Hay ciertas muestras de
código por aquí que
luego puedes entender. E incluso hay un resumen
donde te da las propiedades de esta clase
en particular. Te da los métodos y
los eventos que puedes usar. Y esto es absolutamente asombroso. Entonces no quiero
entrar en detalles locos, pero también están hipervinculados. Entonces por ejemplo, si estoy como, oh, ¿cuál es el guión?
Haga clic en esto. Bam, esto es un guión. Esto es absolutamente increíble y no puedo recomendar
esto lo suficiente. Si alguna vez no estás seguro de
qué
hace algo o cómo
funciona esto? ¿Qué es este dual? Acabamos de hablar de
las GUI, por ejemplo, a la derecha. Así que subamos aquí a la GUI de la
cartelera, por ejemplo BAM. Pero son contenedores
para objetos GUI. Se puede ver que su posición es relativa a un adorno. Si no hay
rodilla de adoración, entonces el padre se establece como el de abajo,
cosas así. Hay tantas cosas
interesantes que puedes echar
un vistazo aquí. En realidad es una locura. Básicamente quiero hacer
esto breve y dulce si hay algo que
quieras aprender con algunos de los fundamentos de los que hemos estado
hablando hasta ahora, ¿verdad? Si has pasado por
la introducción al baño, entiendes un poco a Lewis. Si has pasado por los básicos de los bloqueos de carreteras ahora
y estás en el estándar. La mayoría de los conceptos básicos por los que
hemos pasado. Casi puedes
pasar por cualquier clase por aquí y entender aproximadamente
lo que está pasando. Ahora, por supuesto,
puede haber algunos de ellos que están un
poco arriba, tal vez algunas de las cosas de
animación y algunas otras cosas
podrían estar un poco demasiado lejos en
este momento, ¿verdad? Con una nube además almacenar
ciertos servicios, cosas
aún pueden estar más allá de ti, pero sigue siendo realmente, realmente increíble que
tengas esto disponible para ti. Y es, es tan genial
que solo puedes leer esto y obtener
más y más información. Lo que también encontrarás en
algunos de ellos es que lo son, podrían quedar en desuso. Entonces creo que bien, la velocidad angular
en realidad no está en desuso. Bueno, hay ciertas cosas que están en desuso, ¿verdad? Así que en realidad podemos
ver las cosas aquí, por ejemplo, la posición del cuerpo por aquí está obsoleta y no se
debe usar, pero siempre te dice lo que
debes usar en su lugar, ¿verdad? Entonces esta es una vieja y
eso es realmente, muy genial. Entonces no puedo expresar lo suficiente
lo genial que es la
API del motor de aquí. Como dije, voy a vincular esto. Tiene un gran recurso. Por favor,
échale un vistazo, ¿verdad? Pero con eso concluye esta conferencia y también los fundamentos de los bloqueos de carreteras. En el siguiente paso, en realidad
haremos nuestro primer juego propio y eso
va a ser un ABI. Entonces esperaré
verte ahí. Sí.
35. (Roblox) Introducción y cómo se construye esta sección: Bien, Bienvenidos aquí a la primera conferencia en
la sección del ejército. Y solo quiero mencionar
rápidamente qué tipo de OB
vamos a construir. Entonces este es el RB terminado que básicamente
se va a hacer. Y si engendro, en realidad
voy a
engendrar al final aquí, pero eso va a
estar totalmente bien. Entonces básicamente podemos ver el
Avi hacia el final del mismo. Para que veas que tenemos algunas formas
diferentes por aquí. Tenemos cosas en movimiento, así que tenemos
ladrillos de matar en movimiento que no puedes tocar. Se mueven todos en cosas
diferentes. Esto se hace con el servicio de
preadolescente aquí mismo. Tenemos escaleras que van a
desaparecer al tocarlas. Y entonces aquí
solo tenemos algunos
ladrillos de matanza y algunas otras
cosas también. Así que esto es realmente increíble
y este va a ser un RB realmente genial. Ahora, por supuesto lo estoy haciendo la manera equivocada, pero
eso está totalmente bien. Y ahí tienes. Entonces esta es la idea general del RV que
vamos a crear. Cosas realmente geniales aquí, muy recomendable para ver. Y cada conferencia,
por supuesto, va a tener un archivo RB Excel para
que lo descargues. Así que básicamente puedes
descargar el RB en cualquier estado en el que
quieras seguir usándolo. Realmente espero que
disfrutes haciendo el RV y nos veamos
en la próxima conferencia. Entonces, sí.
36. (Roblox) Modelado de Obby: Bien, bienvenido de nuevo
al curso de Roblox. Y en esta conferencia, en
realidad
vamos a estar creando
un ABI para esto. Como puedes ver, en realidad
estamos en Roblox Studio donde
podemos crear un nuevo lugar. En este caso, en realidad quiero
que elijas RB para esto, porque esto realmente nos
permite
copiar básicamente al menos como tres o cuatro cosas diferentes que ya están creadas para nosotros. Y solo va a hacer la
vida mucho más fácil para nuestro OB. Entonces escojamos RB
y luego verás que comienza la jugada y
puedes ver que este es nuestro ejemplo. Yo estaré por aquí. Entonces la idea
general es esta, que esta es la plantilla
del propio Roblox. Y se puede ver que
tiene una estrella por aquí. Tenemos algunos puntos de control
ya aquí así como estos morados y luego los rojos brillantes
que son ladrillos muertos. Y si, eso es
más o menos lo que tenemos. Y lo primero que
vamos a hacer es que
sólo vamos a guardar
esto como un archivo. Sólo voy a llamar a esto RB1. Y ese va a ser el
archivo que se pueda descargar para ti después de esta conferencia. Bueno de todos modos, cuales son las
partes que queremos salvar. Bueno, vamos por el
bien de la discusión, solo juegue y vea
qué puede hacer este RB. Obviamente vamos a engendrar aquí al inicio y luego
podemos movernos por aquí
para la primera parte. Y la única cosa es que si no tocamos la parte
media por aquí, en realidad no
conseguimos este punto de control es algo que vamos
a arreglarlo de inmediato. Y entonces si solo seguimos
por aquí, ahí tienes. Se pueden ver estos. Ellos establecen la velocidad por
aquí así que hay que tener
cuidado cuando te mueves sobre
ellos y saltas de ellos. Ahí vas. Y luego los ladrillos de
matar, claro, van a matar
si los golpeas. Así que hay que tener cuidado con
eso. Y ahí tienes. Eso es en realidad lo
que hice por aquí, pero no te preocupes en absoluto. Bueno, no te preocupes en absoluto. Vamos a intentarlo de nuevo. Entonces algo como esto. Ahí vas. Ahora lo tenemos. Vamos. Y entonces el último es sólo
una plataforma de salto por aquí. Para que veas si saltas
sobre esto, entonces ahí vas. Y ahora básicamente hemos
terminado el RB. Ahora no
pasa nada, ¿verdad? No hay gran fanfarria
ni nada por el estilo. Pero es una
cosa básica muy buena sobre la que empezar a construir. Y por eso quería esto. Básicamente, cuando
estés de vuelta aquí, debes ir a la selección
y lo que puedes hacer es pujar, prácticamente simplemente eliminar estas partes por aquí y
luego podemos dimensionarlo. Entonces ahora
básicamente vamos a diseñar el OB. Y vamos a tener ciertas características
aún no implementadas porque este momento solo
quería diseñar una forma rugosa para
la ABI, ¿verdad? Yo sólo quiero colocar
algunos puntos de control. Quiero colocar
algunos ladrillos de matanza, quiero colocar algunos obstáculos
interesantes, y luego básicamente
seguiremos a partir de ahí. Entonces, lo primero que
recomiendo aquí para los puntos de control es
en realidad solo dimensionarlos. Entonces lo que puedes hacer es
seleccionarlos, ir a la herramienta de escala
y luego pulsar Mayús. Y luego los va
a escalar básicamente en todas las
direcciones simultáneamente. Y queremos escalarlos hasta, en realidad
echemos un
vistazo a dónde estamos. A este 0.92, 0.5, y qué tal 99 coma
tres, coma nueve. Creo que debería estar bien. Y luego tenemos uno grande. Ahora también se puede decir,
bueno, tal vez esto es
realmente demasiado grande para nosotros de lo que también podemos
cambiar esto también. A lo mejor queremos que esto sea
más plano, entonces es uno. Y ahí tienes. Creo que un nueve por nueve en realidad
es bastante bueno. Ahora bien, si el jugador
golpea todo el asunto, entonces en realidad conseguirán
este punto de control registrado, que es este. Es un poco raro que
lo hicieran , pero está bien. Entonces también, por qué no conseguir dos de esos transportadores para que
queramos que uno pueda variar. Vamos a la izquierda y una cinta transportadora que
va a la derecha. Así que sólo podemos
seleccionar uno de ellos, mantener presionado Mayús y seleccionar el otro. Y luego solo podemos
cortarlos con presionando Control X y Control V
para volver a pegarlos. Ahora bien, tenga en cuenta que
estarán en la parte inferior aquí del espacio de trabajo, pero podemos arreglarlo
en un momento. Por el momento. Yo sólo quiero
guardarlos por aquí cerca del inicio. Lo mismo que voy
a hacer con un ladrillo matador. Sólo voy a
copiar este Control C y luego Control V
para volver a pegarlo. Y luego tengo el
ladrillo matador por aquí también. Y entonces podremos usar esto más tarde para todo tipo de cosas
diferentes. Y luego
lo mismo que voy
a hacer por el trampolín. En realidad se puede ver que
hay una superficie G. Y esa superficie
Judio, de hecho voy a deshabilitarse
dentro del juego. Creo que eso es
lo que es el guión. Cuatro, como puede ver, la
interfaz gráfica de usuario de superficie habilitada es igual a false. Por eso tiene guión y eso eso
en realidad no se nota. Entonces esto es solo para lo que tú, mientras estás creando
el juego real, que en realidad es bastante
impresionante. Así que vamos a copiar esto también. Ahí vas. Y vamos a conseguir
esto por aquí. Y entonces casi podemos simplemente borrar todo el resto porque
todo el resto no es realmente necesario para
nosotros en este momento, ¿verdad? Entonces, simplemente eliminemos
todo excepto esto. Ahí vas. Entonces ahora
tenemos una tienda de un ejército y hemos
eliminado casi cualquier cosa. Eso está bien. Y se puede ver
en el espacio de trabajo, ahora todo es
igual que configurado al azar. Entonces los puntos de control,
este es el punto de control uno. Eso es bueno. De hecho,
cambiemos esto también. Hagamos esto un
poco más interesante. Entonces vamos a empezar, así que tal vez algo como esto. A lo mejor queremos escalar un poco
esto. Y vamos a
mover esto. Y lo que quiero hacer es
hacer una rampa por aquí. Así que sólo vamos a duplicar este Control D para duplicar. Y entonces podemos
rotar esto alrededor. Y
asegurémonos de que ahí vas. Sí, eso es algo uno de esos pensando en
alguien así que puedes hacer es que
quizás puedas hacer algo como esto. Entonces eso es un poco
más complicado, ¿verdad? Tienes que saltar
de un lado por aquí, bajar esto un
poco más, que es casi el
mismo. Ahí vas. Y luego lo conseguimos. Así que ahora tienes que subir
aquí y luego en realidad. Uno más. Sí, ahí
tienes. Entonces ve aquí, salta hasta aquí. Y lo que es muy importante
con el RV de
aquí también son las pruebas frecuentes porque a veces estás como, oh, esto debería ser
muy fácil de hacer. Y luego te das
cuenta, espera un segundo, en realidad
esta es una etapa
muy dura y eso no es exactamente
lo que quieres hacer. Y luego solo hagamos una
rampa que baje por aquí. Así que vamos a hacer esto y
esto y algo así. Y luego ahí
vas. ¿Bien? Entonces esta es una de esas cosas en las que solo tienes que probar un
montón de cosas diferentes. Y aquí es donde el, esto es lo que el modelaje
es muy subjetivo. Puedes seguir todo
exactamente como me va. O simplemente puedes ver
esta conferencia y luego copiar el archivo de la terminada o simplemente echar un
vistazo a la terminada. Y la idea es entonces
también una gran cosa. Quieres que
esto sea más colorido. Si te quedas con estos ladrillos
con una piedra gris por aquí, Eso es realmente, realmente
jodidamente aburrido, ¿verdad? Entonces solo puedes
seleccionarlos y puedes decir, Oye, se supone que
esto es tal vez como un azul por
aquí, azul eléctrico. Sí. Y entonces éste puede ser
debería ser como un cian, ¿verdad? Y entonces este
tal vez debería ser un azul pastel. Y entonces de repente
tienes un estado azul. Y luego ahí
vas. Podemos tocar esto. Y verás que de
inmediato vas a
poder tocar esto. Ahí vamos. Así que podemos simplemente caminar por aquí
y podemos saltar por aquí, ir por aquí, y luego
van a la primera etapa hecha. Ahora claro,
depende de qué tipo de RB quieras
hacer, ¿verdad? Si quieres hacer
un ejército hardcore, eso es muy duro y
por supuesto que puedes hacerlo. Por lo general, la gente prefiere un
poco de RB más fácil
y un tiempo más fácil con él, pero
eso está totalmente bien que depende de ti. Puedes diseñarlo como
quieras. Entonces,
continuemos y vamos a crear
algo por aquí. Así que vamos a crear una
especie de pasarela. Así que solo vamos
a escalar esto nuevo y solo un
poco más y tal vez solo un
poco más ancho también. Entonces uno en cada dirección. Creo que eso es bastante bueno. Y ahora aquí quiero
usar el ladrillo matador. Entonces, ¿cómo
los usaría mientras
los
voy a duplicar, Control D, me voy a asegurar de que estoy eligiendo el que
acabo de crear Lo estoy poniendo debajo de los ladrillos
muertos por aquí. La forma en que se organiza el
espacio aquí es básicamente
a través de la función, ¿verdad? Así que tenemos todos los ladrillos de
matar juntos. Tenemos toda la estructura OB junta, aunque
los trampolines, aunque los transportadores,
todos los puntos de control, también se
puede hacerlo por etapa. No obstante, por lo general creo que esta es una mejor configuración
porque algunas aficiones, tienen como 500 páginas de largo. Y por lo general es mejor así porque
dentro del juego,
bien, en lugar de
la vista del juego aquí, siempre
puedes hacer clic en
algo y va a resaltar esto en
el Explorer de todos modos. Por lo que realmente no es
necesario configurarlo una
manera que muestre cada
estado individualmente. Entonces lo que vamos a
hacer es que vamos a hacer esto para que tengas que saltar por encima de los
ladrillos de matar por aquí. Duplicemos esto
otra vez y luego solo vayamos aquí. No, ahí abajo no, eso,
eso sería un poco raro. Y luego
otro, duplicarlo. Y entonces tal vez
algo como esto. Ahí vas. Y luego uno
al final por aquí también. Vamos a hacer esto
un poco más grande para que podamos escalar
esto aún más. Y entonces podemos simplemente mover a
este tipo a dar la vuelta por aquí. Creo que eso
debería ser bonito, sí, eso debería
estar bastante bien. Y aquí por supuesto,
también cambiando nuevo
el color porque eso solo
te va a dar un bonito contraste. A lo mejor mover un poco
a este tipo. Ahí vas. Así que eso es en realidad, me gusta un
poco esto ahora mismo. Por supuesto, cuando hayas
hecho esta etapa, quieres un, otro punto de control para que puedas duplicar
el punto de control, hacer clic en el
control de punto de control D, y luego solo vamos
a mover esto por aquí, asegura de que cuando,
que no esté demasiado alto, ¿verdad? Porque si duplicas
algo que
siempre va a ser
como poner más arriba, lo cual es un poco raro
a veces, pero ahí tienes. Y eso es más o menos eso. Ahora lo siguiente que se
suele ver y que me gustó mucho, así que voy a copiar la parte de
aquí, eso son las escaleras. Entonces vamos a
tratar de hacer escaleras. Ahora. En realidad, puede ser bastante complicado conseguir el 100% correcto. Pero son bastante
impresionantes independientemente. Así que sólo vamos
a hacer escaleras. Y luego luego podríamos por ejemplo si quisiéramos
hacerlos desaparecer, ¿verdad? puedas
hacerlo para que cuando tú, cuando subas las escaleras donde desaparecen detrás de ti,
eso, eso siempre sea
un efecto genial y a la gente parece gustarle eso. Entonces, ¿cómo haríamos
realmente esto? Hay un par de maneras en las
que puedes hacer con esto. Lo que básicamente quiero
hacer es antes que nada, voy a hacer una nueva, en realidad
voy a hacer
clic derecho en la parte y voy a
hacer una nueva carpeta. Y voy a llamar a
esto las escaleras. Voy a llamar a las
escaleras 90 porque vamos a hacer
una escalera de 90 grados. Básicamente, vamos a
hacer escaleras que van de
esta orientación a
ir perfectamente a esta
orientación, ¿verdad? Entonces esto básicamente significa
que vamos hacia arriba y luego vamos a
terminar en esta dirección. Y quiero tener esto
porque entonces puedes combinar esas escaleras
con otro juego de escaleras y luego puedes tener 180 escaleras y luego
hasta unas 270 escaleras. E incluso si 360 escaleras y simplemente seguir subiendo en
teoría si quisieras. Así que vamos a
duplicar éste. Y lo que quieres hacer es
que quieres rotar esto. No obstante, ahora mismo,
per, por defecto, si tuviéramos que rotar esto, lo rotaremos 48, 25 grados. Sí, 25.5 grados, que es un
poquito demasiado, cierto. Así que puedes ver si tuviéramos
que mover esto ya que es un
hueco demasiado grande para las escaleras, ¿verdad? Entonces quieres apagar la rotación por aquí y
quieres hacer rotación libre. Entonces ahora puedes rotarlo tan poco o tantos grados
como quieras básicamente. Y aquí
es donde todo se reduce a tu preferencia personal, a
donde quieres ir. Entonces lo mismo
va para la mudanza ahora mismo
vamos a apagar la mudanza aquí para que
podamos moverlas en Lake. Cantidades minúsculas de estudios. Y siempre se puede
comprobar esto, ¿verdad? Siempre puedes mirar esto
desde el frente y ser como,
Bien, esto se ve
como escaleras, ¿verdad? De verdad me gusta algo, bien, aquí, esta cumbre parece acertada. ¿Bien? A lo mejor queremos
expandir esto solo un poco más y luego
podemos duplicar éste. Y porque
siempre son lugares en la parte superior
, en realidad, esto es
realmente genial. Así podemos rotar esto un
poco más y mover esto nuevo y hacer esto de nuevo y
girarlo un poco más. Y puedes hacer el puedes hacer las escaleras tan grandes o tan pequeñas como quieras. Ahora en nuestro caso, vamos a echar otro vistazo.
Solo echemos un vistazo. Para fines de depuración.
Lo que recomiendo encarecidamente es que
dupliques el inicio. Esto es un poco raro, pero solo
tengan un momento conmigo. Tomas el
Stuart original y
solo lo deshabilitas para
que hagas habilitado false, y luego vuelves al
otro y solo
lo mueves a cualquier etapa que
quieras probar por aquí. Porque de lo contrario siempre
hay que jugar todo el RB. Y eso suele ser simplemente
muy raro, muy extraño. Entonces podemos ver que esto funcionaría. Entonces las escaleras, su
trabajo, está bien. No necesitamos no
necesitamos bajar ahí y luego ellos
van para bajar ahí y luego ellos
van podamos simplemente continuar con esto y
seguir rotando esto. Como dije, puedes hacerlos tan grandes o tan pequeños como quieras. Se pueden agregar tantas
escaleras, ¿verdad? Se puede decir, Oh, ¿sabes qué? Solo
quiero un
poco de rotación cada vez o tal vez un poco menos, poquito más,
algo así. Además solo
muévalos para que no siempre se vean iguales o
se puedan hacer muy precisos. Entonces eso también es algo a veces quieres muy preciso. Si quieres una muy precisa, siempre
puedes
bajar a la transformación aquí y cambiar
la orientación manualmente por números en lugar de solo una especie de ojo, ¿verdad? Porque en este momento
solo lo estoy haciendo una especie de globo ocular
siendo como Sí, eso suena bien.
Eso se ve bien. Entonces esa es una
cosa que
también siempre puedes tener en cuenta. Y nos estamos acercando a
la rotación que queremos muy,
muy rápido por aquí. Para que veas que
vamos a seguir con esto más o menos como ya he dicho. Y luego otra. Y luego al final
aquí, definitivamente
necesitamos usar los números ahí, pero eso va a
estar totalmente bien. Porque al final
podemos hacer esto. Así que vamos a hacer otra
y otra por aquí. A veces la vista es
un poco loca. Sólo nos gustaría
volver un poco atrás. Ahí tienes, escala esto
y luego vuelve a girarlo. De hecho, puede que esto
retroceda un poco. Así que podemos simplemente
rotar esto un poco más para
que no tenga un hueco porque básicamente no quiero
ningún hueco por aquí. A lo mejor un poco más de una rotación donde
sumamos en este punto -98, Eso en realidad es bastante bueno. Entonces estamos casi en
nuestros -90 grados, porque en cuanto
estamos a 90 grados, entonces sabemos que hemos logrado
donde queremos ir, pero aún no estamos del todo ahí. Entonces probablemente un par más. ¿Dónde estamos ahora? -92. Bien. Creo que ahora éste
va a ser el -90. Entonces ahora queremos entrar en la transformación a la orientación y solo queremos
hacer cero menos 90. Y se puede ver ahora esto en
realidad está perfectamente
en esta dirección. Entonces, si tuviéramos que escalar esto,
puedes ver que ahora es un ángulo exacto de 90 grados,
lo cual es bastante impresionante. Así que solo podemos tomar esto
el, el puesto de control otra vez, mover esto hacia arriba, ir por aquí, y ahora tenemos un puesto de control
después de las escaleras. Ahora tal vez quieras
agregar otro salto por aquí antes de entrar
ahí. Ese también podría ser
el caso, ¿verdad? Entonces solo, solo configura esto. Ahí vas. Escalemos esto un poco. Algo así
podría ser bastante bueno, y entonces deberías estar bien. Esas son escaleras. Asegurémonos de sacar
esta de ella porque eso no es parte de
las escaleras y ahora
tenemos una escalera de 90 grados. Lo que recomiendo aquí también es
duplicar esto, ¿verdad? Entonces solo Control D y luego solo
puedes moverlo. Y lo que puedes hacer
es realmente increíble. Porque ahora podrías en teoría, simplemente duplicar esto otra vez. Yo tomo todas esas escaleras, solo las muevo hacia arriba
y las subo. Ahí vas. Y puedes rotar
toda la escalera por aquí. Pero es importante que en realidad
rotemos esto 90 grados. Ahora, vamos a rotar
esto 90 grados. Y de repente
mira esto, ¿verdad? Yo sólo puedo ponerlos al
año y ponerlos aquí. Y casi caben. Es solo que tenemos que
hacer esto un poquito. Ahí vas. Sólo un poco más alto, un poco alto o no. Asegúrate de que no se
movió individualmente. Quieres moverlos
juntos y luego se van. Y ahora tenemos una escalera. Ahora se ven un
poco raros, pero vamos a ver
yo, ahí tienes. Eso en realidad es casi perfecto. Ni siquiera
lo notarás. Y ahora tenemos en realidad 180 buines, así que 180 grados escaleras, así podemos tomar todas
esas partes, ponerlas en la
otra sí deja la carpeta vacía y
luego podemos llamar a esto, solo renombramos esta dos escaleras 180. Porque ahora tenemos que
querer AT stairs y vamos a
volver a guardar esto por aquí en nuestros inicios, donde básicamente
tenemos todo guardado. Eso va a estar
bien. Ahí vas. Entonces eso es, esa es una participación
realmente increíble. Podemos, en teoría
también tener 180 escaleras. Ahora puede ser un
poco raro levantarse, pero una vez más,
las escaleras o simplemente una cosa
en las escaleras o simplemente una cosa que simplemente
no vas a probar un montón de cosas, ¿verdad? Entonces esas escaleras pueden
ser un poco empinadas y un poco raras, pero al final,
deberían funcionar. Entonces si entro aquí, bien, y los
cruzo, ahí tienes. Pude subir caminando. Entonces eso es bastante impresionante.
De hecho vamos a aumentar el, aumentar la brecha aquí
sólo un poco. Y de hecho volvamos a poner
en movimiento un estudio de nuevo. Ahí tienes, tal vez
algo como esto y luego
algo así. Entonces tienes que saltar por aquí. Entonces eso va a ser bastante
interesante de hecho. Y luego desapareciendo. De hecho vamos a ver
eso en una conferencia posterior. Porque por el momento,
en realidad solo queríamos crear algunas otras cosas
interesantes. Lo siguiente, ¿verdad? Así que esto es bastante
impresionante, ¿verdad? Tenemos algunos,
tenemos algo de esto, tenemos algunos
ladrillos para matar por aquí. Tenemos unas escaleras
que van a desaparecer en la próxima conferencia. Y ahora quiero
seguir por aquí, ¿no? Entonces ahora quiero continuar
y solo quiero hacer algunas formas básicas. Así que vamos a echar un
vistazo al tamaño de esto. El tamaño de esto es
616 es lo que quiero. Y creo que
eso en realidad está bien. De hecho, estoy haciendo esto
un poco más grande. Haz esto 818. Sí, eso es
perfecto. Eso es genial. Esto es exactamente
lo que tenía en mente. E incluso se puede
cambiar la posición. Así que personalmente
siempre me gusta tener las posiciones ahora con todos esos valores
de coma. Entonces voy a cambiar
la posición a 20. Voy a cambiar esto a 14, y vamos a
cambiar esto a 105. Creo que eso
va a estar bien. Y entonces sólo vamos
a cambiar esta posición, 2105 también. Y eso va a
hacer esto un poco torcido, pero está bien. Porque entonces lo que puedes
hacer es simplemente tomarte especie de asegurarte de que esto sea, solo
puedes ocultarlo
simplemente haciendo esto un
poco torcido también y luego simplemente
escalándolo y siendo como,
Sí, esto es en realidad
una pasarela torcida y entonces a nadie debería
importarle eso. Si a la gente le importa, por
lo general no es un gran problema. Y siempre puedes
cambiarlo después también. Porque el modelaje de
esto, como puedes ver, ¿verdad? Entonces, hasta ahora, acabo
de modelar por unos buenos 20 min más o menos y ya tenemos
algunas etapas ahí dentro. Y lo mejor de
ello es que si tienes algunos
cedros hechos, ¿verdad? Entonces este estado aquí mismo, puedes copiar esta
etapa exacta y reutilizarla más tarde
en el futuro también de una manera
un poco diferente. Entonces eso siempre es algo que también hay
que tener en cuenta que
siempre se pueden reutilizar etapas. Ahora bien, en realidad no
quiero que esto se rote. De hecho pienso que el cero menos cero
está realmente bien. Sólo vamos a
hacerlo así. Sólo vamos a
hacer esto más grande. Sí. Algo así. A lo mejor tal vez solo una
plataforma grande y grande. Ahí vas. Bien, eso es bueno. Y ahora podemos
proceder a éste. Entonces, ¿qué va a hacer este
? Bueno, este va a hacerlo, este va a haber
matado ladrillos en el medio. Seleccione un ladrillo matador. Bien, no sé
qué pasó, pero por razón
que sea esos puertos
están bajo el ladrillo de la matanza. No sé cómo
pasó eso, pero bien. Queremos por supuesto, hacerlos bajo la estructura OB.
Ahí vas. Y ahora podemos
duplicar este Kubrick. No sé cómo pasó
esa. Si eso hubiera
pasado, no lo sé, pero si pasa algo
así, deberías
averiguarlo bastante rápido. Y entonces
siempre se puede corregir que nuestras plataformas individuales
y entre esas plataformas, quiero tener el ladrillo de
matar por aquí. Y quiero que sean así o no quiero que se
extiendan de esta manera. Quiero que en un poco
se muevan así. Ahora no vamos a volver a
implementar el movimiento en esta conferencia, ahora mismo solo estamos
modelando todo. Porque lo más importante esto y esto es también, quiero decir, ya he
hablado de esto antes, es que solo quieres
asegurarte de que cuando estés
creando algo como esto, especialmente solo
lo estás dando un paso a la vez. No necesariamente necesitas
hacer todo de una vez. Simplemente modele
primero el RB y luego toda
la funcionalidad, el movimiento para ciertas partes, la desaparición de otra parte, cómo se muestra algo, bien y en la tabla de clasificación
y todo eso, siempre se
puede hacer eso
más adelante en la línea. Entonces, ¿qué tal esto? Creo que eso
es bastante bueno. Y creo que entonces
podemos simplemente copiar la cosa de aquí y sólo
vamos a sustituir
básicamente a ésta. Así que sólo vamos
a sustituir este por nuestro viejo y fiel puesto de control, donde de hecho también en el futuro tenemos que cambiar
las cosas en el puesto de control. Pero una vez más, nada de
eso importa ahora mismo, por el momento, solo
queremos modelar algo y eso ya es
bastante bueno. Entonces estoy bastante contento con esto. Tenemos algún movimiento por aquí, tenemos algún otro
movimiento por aquí. Y luego
lo último que vamos
a hacer, antes que nada, vamos a volver a colorear
esto porque a las etapas
verdes en realidad tres etapas verdes
en este punto. Bueno, aunque eso no puede soportar, en realidad
volvamos a colorear
todo esto también. Vamos a entrar
aquí y hacer esto, ¿qué tal si hacemos de
esto un no un rojo, tal vez una especie de caquín rosa
claro Bien. Bien, ese es el
color caquiste orilla. Y luego sólo vamos
a asegurarnos de tomar todas estas y vamos a saber, no
quiero moverlas. ¿Estás loco? Yo solo quería seleccionarlos y luego queremos volver a colorear esos, tal vez un amarillo,
eso va a estar bien. El amarillo y el rojo en realidad
funcionan muy bien juntos. Y luego tenemos que revisar
punto por aquí y luego qué podría venir después. Entonces, ¿qué tal si solo vamos
a copiar uno de estos? Y lo que quiero hacer es
que realmente quería tener una forma un poco aún más
interesante por aquí. Entonces lo que vamos a hacer
es que vamos a tomar esta parte y voy a bajar y vamos a
hacer que esto no sea de colección. Ahora la razón de esto es porque entonces si lo duplico, en realidad
puedo mover la
misma parte dentro de sí misma. Y entonces puedo
rotar esto alrededor. Y se puede ver si realmente
hago esto 45 grados en la rotación, ahora
puedo hacer un
poquito de estrella. Entonces eso se ve mucho más
interesante que solo tener una
plataforma normal por aquí. Pero espera un segundo. Ahora, esos en realidad,
ellos, realmente no funcionan
porque ahora pueden chocar. Entonces el jugador sólo va a caer
a través de ellos. Esto es cierto. No obstante, si
ahora tomo ambas partes, si solo selecciono ambas
partes y voy a modelar así,
puedo hacer union. Y si hago unión, esto ha creado un nuevo
tipo de parte que es una unión y ahora
están juntas. Entonces básicamente todas las Así que ambas partes están
fusionadas entre sí. No están soldados,
en realidad son una parte ahora. Y si ahora solo puedo
activar la luz de las velas otra vez. Y ahora el jugador puede
chocar con esta nueva parte. Entonces esto es
algo realmente genial que puedes hacer. De hecho, puedes ir
más allá con esto, lo cual es bastante interesante. Entonces puedes ir a hacer esto por ejemplo vamos a hacer
esto con otra parte. Podemos hacer una falsa luz de velas. Vamos a hacer un nuevo puerto. Y entonces digamos por ejemplo yo. Toma esto y voy a hacer esto un
poco más pequeño, ¿verdad? Como algo así y
este hijo tienen una parte más pequeña encima
de la parte más grande. Y lo que suelo hacer
es que normalmente sugiero hacer esto un poco
más grande para que sea como, en realidad como se puede ver que pasa por toda
la matriz. Y si hacemos de esto una parte
negativa, ¿verdad? Y luego seleccionamos
ambos y unimos esta capa, esto, de repente,
tenemos un gran agujero en esta parte y esto está
totalmente bien, ¿verdad? Así que puedes entrar aquí
y nosotros podemos hacer una lata chocar y el conjunto el
que va a caer el jugador. Entonces esto es en realidad, esto hace que esto sea mucho más interesante de
ver, ¿verdad? Así que vamos a
almacenarnos por aquí y en realidad movamos esto
arriba, arriba arriba. Porque en realidad
quiero, no quiero jugar todo el resto
del nivel ahora mismo. Sólo quiero que te enseñes la, la unión y las partes. Ahí vamos. Así que vamos a entrar
aquí y veamos. Entonces ahí estamos. Y
si sigo aquí, ya ves que estamos haciendo esto y aquí puedo caer por esto, no te preocupes en absoluto, lo cual
es realmente genial, ¿verdad? Entonces con la unión
y luego negar, puedes crear partes tan
frías que son completamente diferentes de solo los
rectángulos normales del lago básicamente. Y por supuesto,
también puedes agregar cilindros, cuñas de
esquina, cuñas y
esfera y esferas aquí. También puedes
agregarlos y solo con ellos y un poco de
unión y negación, en realidad
puedes crear algunas cosas
bastante interesantes. Entonces llamemos a éste solo para que ahora podamos hacer un
seguimiento de esto. Esta es solo la plaza
con agujero, ¿verdad? Y esta es la estrella. ¿Qué tal eso? ¿Verdad? Así que ahora tenemos una tienda y una plaza por aquí. Entonces
eso es bastante genial. Vamos a otro
tipo aquí. Entonces, vamos a conseguir un cilindro. Y sólo vamos
a tomar el cilindro y sólo
vamos a asegurarnos de
que esté dentro de la
estructura del ego. Ahora en realidad
queríamos rotar esto 90 grados en esta dirección. Y podemos
escalar esto un poco. Así se puede ver ahora llegamos a un círculo o a un
cilindro por aquí. Y ahora también podemos obtener
un tamaño de forma de círculo. Entonces veamos, ¿
este es del mismo tamaño? Lo es. Ahora también tenemos un círculo.
Eso es genial. Ahí vamos. Ahora podemos hacer de
esto el amarillo también. ¿Esto era este amarillo, rojo, amarillo
brillante? Sí, lo es. Ese es el objetivo. Tienes que almacenar. un cuadrado con caída y tenemos un, llamémoslo círculo, aunque sea un cilindro, pero entonces todos saben
lo que es, ¿verdad? Así que esto es en realidad como
esto es realmente increíble. Puedes ver con
esto puedes construir algunas formas más interesantes a las
que apenas están llegando, que solo hacen
que el juego
se vea mucho más interesante. Ahora, por ejemplo, justo en nuestras
formas por aquí, lo que podemos hacer
es simplemente moverlas. A lo mejor tomar el, tomar
la tienda aquí, tal vez rotarlo un poco. Entonces claro, si
giramos 45 grados, no
va a funcionar del todo, pero vamos a rotarlo 22.5 grados y luego
en realidad va a verse
un poco diferente. Ahí vas. Entonces ahora eso va a verse
un poco diferente. También podemos tomar esta. También podemos rotar el cuadrado alrededor porque ¿por qué no escribir? Así que también vamos
a parecer interesantes. Ahí vas. Y por cierto, también
puedes escalar
esto y va a hacer algunas cosas raras, pero puedes escalarlo. Entonces eso también es bastante genial
acerca de que el escalado
generalmente solo funciona en todas las direcciones a la vez en
lugar de solo una. Entonces ahí tienes. Ahora tenemos esa. Y entonces podemos conseguir
otro círculo. Enrutar
el círculo alrededor del eje y no va
a hacer nada por nosotros, pero eso va a estar bien. Y luego ahí vas. Entonces ahora tenemos algunas formas
locas por aquí y podemos agregar un nuevo
punto de control al final, solo asegurándonos de que
tengamos suficiente espacio. Ahí vas. Y entonces eso es todo. Entonces ahora tenemos el
puesto de control aquí, y ahora tenemos nuestras formas locas. Justo así. Creo que esto es suficiente
demostración para mostrarle. ¿Bien? Básicamente se pueden agregar partes
individuales, ¿verdad? Y tal vez quieras
usar estas formas en un nivel posterior
también, que puedes, por
supuesto, en ese momento
puedes usarlas y tal vez
realmente quieras girarlas así que tienes que caminar sobre ellas. Y todo eso. Se pueden hacer muchas, muchas cosas con un objeto personalizado
en este caso. Ahora, modelando aquí, de hecho
pienso que estamos
bastante bien con esto. Así que vamos a eliminar
el inicio y la otra estrella se
asegura de volver a habilitar esto. De lo contrario podríamos
tener algunos problemas. Guardemos esto y
entremos en el juego. Y vamos a ver si realmente
podemos ejecutar esto. Esto está absolutamente bien. Tenemos esto
encerrado, eso es genial. Y ahora veamos
si puedo saltar por encima estos y puedo, Eso es increíble. Vamos a subir las escaleras. Oh, tenemos un poco
de hipo por aquí. Entonces esa es una interesante. Entonces sí, ese es el método
que realmente funciona. Pero esta etapa
justo, ahora mismo no se mueven, así que solo tienes
que saltar por aquí. Sin embargo, en realidad es
más difícil de lo que cabría esperar obtener el
momento exacto. Y entonces ahora aquí
tenemos esos. Ahora se puede ver que los
cilindros en realidad se han ido. Esto es un
poco de un problema, pero, y en realidad podemos
dar ese salto. Pero la razón por la
que los cilindros se han ido, claro, es si realmente entramos aquí porque no
están anclados. Entonces podemos ver ahora mismo que no
están anclados. Así que asegúrate de que estén anclados. Cada vez que agregas
una nueva parte aquí, quieres
asegurarte de que estén ancladas y luego ahí vas. Y esto es más o menos en el RB base que vamos
a mantener por el momento. Lo que vamos a hacer. No trabajamos
con los transportadores porque usa la
velocidad de aquí, pero usa la propiedad de
velocidad. Y en realidad eso ya no existe del
todo. Sigue funcionando. Pero yo personalmente
diría que probablemente sea mejor no usar eso
innecesariamente, pero eso está bien. Se puede utilizar. Pero
solo ten en cuenta que eso podría no funcionar del todo de la manera
que esperarías que funcionara. Sin embargo, independientemente de eso realidad
estoy bastante contento con esto en las próximas conferencias, específico que
vamos a hacer es que vamos a hacer que estas cosas
roten. Como ya he comentado. Vamos a hacer que
roten alrededor. Y tal vez vamos a rotar algunas de estas
formas por aquí también. Todavía no estoy seguro de eso ,
pero algo así. También vamos a
asegurarnos de que los puntos de control realmente se muestren en
qué etapa se encuentra. Y también vamos a
hacerlo para que tengas una tabla de líderes con las
diferentes etapas dentro de ella. Y eso es más o menos
lo que vamos a hacer por todo el
audio en este caso, hecho
va a ser bastante
interesante. Entonces el archivo terminado de la
creación aquí está, por supuesto, disponible para usted para su descarga. De lo contrario, espero que esto les haya resultado útil y aprendan algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
37. (Roblox) agrega puntos de control al Obby: Bien,
sigamos aquí con el RB para el curso Roblox. Y en esta conferencia,
básicamente
vamos a cambiar la forma en
que funcionan los puntos de control. Y para ello, lo
que realmente necesitamos hacer es echar un vistazo
al script de checkpoint
actual. Entonces tenemos un guión aquí, y vas a ver esto
y vas a decir, Oh mi Señor, ¿qué
es esta locura? No te preocupes en absoluto. Para la primera parte de esto,
solo disminuye un poco la velocidad. Esto es mucho a la vez. Hay que
tomarlo línea por línea. Solo te estoy diciendo acercar y lo que puedes hacer es que incluso
puedas hacerlo para que literalmente puedas ver línea por línea solo para
que lo entiendas. Porque en general, esto en realidad no es
tan loco como piensas. Vas a estar
abrumado por el primer momento que veas esto, pero luego vas a estar
como, Bien, espera un segundo. Ya sabes, todo esto, ya sabes, cuando si declaración, ya sabes, y sabes lo que eso significa. ¿Bien? Si es golpeado, este es
un evento tocado, ¿de acuerdo? Entonces conectas esta
función a ella, ¿de acuerdo? Esto ya lo hemos visto. Entonces estamos diciendo si
algo le ha dado esto y hay
un padre de ello, y el padre tiene un
humanoide básicamente diciendo, si el jugador ha golpeado a este engendro
en particular, ¿verdad? Si el, si el jugador ha
golpeado la parte del punto de control, entonces estamos dentro de esto, bien, entonces estamos
haciendo todo esto. Bien, eso es bueno. La siguiente parte, también estamos
consiguiendo al jugador que hemos visto esto
antes, luego estamos obteniendo datos de
puntos de control. Ahora bien, si estos
datos de punto de control no existen, entonces en realidad estamos
creando un nuevo dato de
punto de control como puede ver. Entonces, si los datos de punto de control, si no los datos de punto de control,
significan si no existen, entonces solo estamos creando
una nueva instancia de la misma y la estamos configurando
en estos servidores de almacenamiento. Bueno entonces también
nombrándolo datos de puntos de control y eso es todo en el punto de control
local, entonces va a ser, básicamente
estamos comprobando
si los datos de checkpoint ya tienen guardado un checkpoint. Y si ese no es el caso, una vez más
estamos
creando un nuevo
valor de objeto con este jugador. Y luego estamos conectando
una nueva función por aquí que básicamente
espera hasta que
respondamos y luego
responderemos en la ubicación del
nuevo punto de control. Y eso es prácticamente
todo lo que estamos haciendo. Ahora. Una vez más, algunas partes
pueden ser confusas, especialmente el
marco C de aquí. Básicamente, el marco C es
solo la forma en que puedes establecer la posición de una pieza. Eso es prácticamente
todo lo que necesitas saber por el momento. Y lo primero que
quiero hacer aquí es que quiero
hacer de este un script modelo porque este es el mismo
guión en cada punto de control, solo
necesitamos
cambiar un poco como una cosa básicamente,
y luego eso es todo. Entonces, ¿por qué entonces
en realidad no tendríamos esto? Entonces, lo que queremos hacer
es ir a nuestro confiable servicio de
script de servidor antiguo y vamos a hacer
un nuevo modelo de script. Voy a llamar a esto
el guión de checkpoint. Eso me gusta, eso es bueno. Y lo que haremos es
llevarnos todo
aquí mismo, todo esto. Y sólo vamos a
poner esto aquí mismo. Entonces vamos a decir que este es
el módulo punto add player, Check Point, seguro,
igual a la función. Y necesitamos el golpe y en realidad también necesitamos
generar ubicación. Voy a mostrar esto en un momento,
y luego ahí vas. Ahora esta es la función. Y en realidad también solo para asegurarnos de que
todo esté bien, en realidad
queremos copiar aquí también la declaración
if, porque encontré que esto
funciona un poco mejor. Si lo hacemos así, entonces
podemos simplemente llamarlo a esto. Podemos simplemente tomar este
módulo y podemos
requerirlo en el script de
aquí, y luego eso es todo. Eso es todo lo que tenemos que hacer. Entonces punto de control local, módulo de
punto de control
es igual a requerir y luego solo requeriremos
game dot server script service dot checkpoint script. Ahí vas. Y entonces podemos llamar a una
función justo aquí, derecha, capa de
app protect point hit y la ubicación es solo spawn. Y entonces eso es todo. Eso es todo lo que tenemos que hacer en este caso para que esto funcione. Y podemos ver
que sigue funcionando si
solo entro aquí y acabo de
cambiarlos a todos. Derecha. Entonces solo estamos así que el
primero es el que cambia y todos los demás los
que solo vamos a eliminar. Sólo vamos a
seleccionarlos a todos. Si selecciona algo control de
retención, entonces solo puede
seleccionar varios. Y luego solo
vamos a duplicar esto un par de
veces y mover todos
los nuevos scripts a los
otros puntos de control. Y lo que encontraremos
es una vez que iniciemos el juego y de
hecho vayamos al siguiente
punto de control, ¿verdad? El, la cosa realmente
debería suceder
solo cuando
cortamos tocarla, pero se puede ver que en realidad
obtenemos una propiedad no asignada. Entonces esto en realidad es algo
muy interesante. Ahora la razón por la que obtenemos
esto, como pueden ver, que estamos obteniendo esto en el
valor de aquí en este momento. La razón de esto, este
es el engendro aquí mismo. Porque por supuesto necesitamos
usar la ubicación de la cuchara. Así que vamos a parar esto y otras cosas increíbles esto antes, si tuviéramos una mesa así,
tendremos que cambiarla
en cada uno de nuestros guiones. Pero ahora sólo puedo entrar en
nuestro módulo script puedo decir, bueno en vez de cuchara, en realidad
queremos la pequeña ubicación por aquí. Guárdalo, juega. Y ahora va a funcionar para todos nuestros diferentes
puntos de control. Eso es lo que son los scripts del
módulo, tan increíblemente poderosos. Así que vamos a echar un vistazo y ahí vamos, no más temas. Y si tuviera que
saltar por aquí, voy a responder en
ese lugar en particular. Y ya puedes ver, ahí
tienes. Respondo aquí. Y lo mismo va
a pasar si sigo aquí, y voy justo aquí y
una vez más simplemente salto. Entonces podrás ver que luego
se engendran ahí mismo. Entonces todos los puntos de control
ahora están funcionando totalmente bien, como pueden ver, lo cual es
realmente, realmente impresionante. Y bueno, eso es
prácticamente todo
lo que tenemos que hacer para
hacerlos más robustos. Y ahora lo genial es también si tuviéramos que agregar
un nuevo punto de control, porque ahora tiene el
mismo script de checkpoint, simplemente
simplemente continuaría fácilmente. Así que una vez que hayamos configurado esto, ahora, cada nuevo punto de control que
agreguemos utilizará el script del módulo. Y si queremos cambiar
algo aquí, por ejemplo en la próxima conferencia,
entonces lo que va a pasar es que esto
simplemente va a funcionar. Y eso es en realidad con todo lo que hemos
aprendido hasta ahora. El evento
Touched, ya hemos visto esto antes, requiriendo un script de módulo con visto esto antes en otros
módulos script en sí, la función aquí,
es un poco más complicada, te voy
a dar eso. Pero en general, cuando realmente lo
tomas línea por línea, debería ser comprensible. Y con eso,
eso es en realidad todo para esta conferencia de aquí mismo. Espero que esto te haya resultado útil y
hayas aprendido algo nuevo. Te veré en
la próxima conferencia. Entonces, sí.
38. (Roblox) agrega una tabla de clasificación con Leaderstats: Bien,
sigamos con la ABA aquí para el curso de Roblox. Y en esta conferencia,
vamos a crear no sólo una tabla de clasificación, sino también el
sistema de numeración para nuestros puntos de control. Entonces esto va a ser
muy interesante en escritura. Entonces la primera parte de
esto va a ser,
bueno, básicamente sumando
números a nuestros puntos de control. Ahora voy a hacer esto de una manera un
poco descarada. De hecho voy a hacer un nuevo guión en lugar de nuestros
puntos de control aquí mismo. Y sólo
vamos a llamar a esto. En primer lugar,
va a haber un guión correcto. Ahí vas. Y en
realidad vamos a renombrar esto a la numeración de puntos de control. Porque curiosamente,
si entramos aquí, si nos aseguramos de que
nuestros puntos de control estén establecidos en el orden
correcto, ¿verdad? Entonces se puede ver este
punto de control 123, esto es cuatro y este es cinco. Si aquí están establecidos en el orden
correcto, entonces solo podemos
numerarlos de arriba a abajo y deberíamos
estar totalmente bien. Entonces esto es en realidad lo que
voy a hacer con este guión. Entonces eso es lo que básicamente requiere este
script. Si están en orden aleatorio, entonces eso no va a funcionar. Pero por lo general si los
duplicas
entonces deberían estar en un
orden establecido y eso está bien. Entonces para esto, lo
que queremos hacer es querer antes que nada
encontrar la carpeta. Entonces este es, por supuesto, un guión que padre debe ser bastante
autoexplicativo. Entonces tenemos un conteo, ¿verdad? Esta va a ser una.
Vamos a empezar con uno, y luego usamos un bucle for. Y el bucle for que vamos a usar es que vamos a conseguir que los niños de esta carpeta en
particular destete, vamos a conseguir todos esos. Entonces lo que vamos a hacer es
que vamos a decir punto de control. Entonces i y Check Point. Y la razón por la
que tengo dos cosas es porque si hago carpeta dos puntos, obtengo hijos, vamos a
conseguir todas las instancias, que es este punto de control. Pero lo primero en realidad
va a ser un valor int, o en este caso solo el índice. Así que consigue niños. Y entonces lo que queremos
hacer es que queremos hacer esto. Queremos antes que nada,
llamar a este número y esto es igual a una nueva instancia punto nuevo. Y vamos a
llamar a este valor int. Voy a decir número
punto nombre es igual a punto de
control, número de punto de control, voy a decir número
punto valor es igual a contar porque queremos establecer esto en uno al principio, quieren decir
número punto padre es igual al punto de control. Y luego el final
aquí, queremos
decir contar más es igual a uno. Porque claro, con
cada nuevo punto de control, queremos aumentar
el conteo y eso es prácticamente todo lo
que tenemos que hacer, ¿verdad? Así que vamos a
jugar a esto y echar un vistazo a los puntos de control aquí. Ahora bien, ¿qué es importante tener en cuenta si realmente abrimos los
puntos de control, verdad? Se puede ver que antes que nada, tenemos todos los puntos de control. De hecho, vamos a cambiar
al servidor para que
podamos movernos. Este puesto de control de aquí mismo. Se puede ver ahora es
el valor uno, este punto de control como el en realidad
se cambia
la posición aquí, pero eso no es un problema
porque todavía tiene valor también. A veces las
posiciones cambias, pero no deberían cambiar. Solo deberían cambiar
después de que se haya cargado el juego. Entonces esto es lo único que
este guión puede fastidiar. Si cambian por alguna
razón antes de
todos estos gruñidos, entonces sí, entonces es posible
que tengas problemas y luego solo
puedes agregar esto
manualmente también. Pero sí me gusta agregar esto
con un guión personalmente, este modo, es una
preferencia personal mía. No voy a mentir. Ahora tienen esto. Y lo que podríamos hacer, por ejemplo, solo por el bien de la
discusión es que solo podemos decir, Oye, solo
imprime mi, mi cosa. Así que en el script del módulo que
hemos creado la última vez, solo
vamos a hacer
es que vamos a imprimir punto de ubicación de desove. Y esto debería tener una cosa que se llame número de punto de control. Por lo que nace ubicación punto punto
punto número de punto, ese valor. Entonces, cada vez que el jugador toque
ahora la ubicación de generación, deberíamos sacar el
valor impreso. Así que vamos a ver, bien, así que deberíamos
poder movernos por aquí, y entonces tal vez
deberíamos movernos por aquí. Y si tocamos esto,
puedes ver uno. Entonces va a imprimir
uno. Bien, Interesante. Sigamos y veamos si llegamos al
siguiente. Ahora tenemos dos. Y si seguimos por aquí, ahora
tenemos tres. Y esto va a
continuar hasta que básicamente, bueno, me he quedado sin puestos
de control. Entonces si le pegamos a
éste, tenemos cuatro, y si seguimos por aquí, entonces aquí tenemos cinco. Así que eso es realmente increíble. Así que ahora podemos obtener el valor
o en cualquier etapa en la que nos encontremos. De hecho, podemos obtener eso
a través del valor de aquí. Y vamos a hacer dos cosas. Lo primero que
vamos a hacer es que vamos a hacer un poco de GUI. Entonces esta va a
ser una GUI de inicio, y solo vamos a
llamar a esto la GUI de pantalla. Vamos a agregar
en una etiqueta de texto. Y sólo vamos
a hacer esto un poco más grande,
algo así. Entonces esto es solo por supuesto con fines de
demostración, ¿verdad? Quiero decir, en realidad, probablemente
quieras hacer esto un poco más bonito, pero más bonito. Siempre se puede cambiar eso. Esa es la gran cosa. La parte interesante de esto es la funcionalidad
para mí en este momento. Entonces entonces sólo vamos a llamar
a esto, quiero decir, tal vez algo así como cero,
eso va a estar bien. Vamos a hacerlo
así más grande. Entonces esto debería ser como
tal vez algo así. A lo mejor llamarlo 69. Bonito. Sí, eso es bueno. Y entonces eso es
prácticamente todo, ¿verdad? Y podemos cambiar
esto en un momento. Entonces lo que vamos a hacer es
volver a nuestro script de módulo y
vamos a agregar algo nuevo. Y esa va a ser una función
local que ni siquiera
se llama
desde fuera de ella. En realidad va
a ser llamado por esta función aquí mismo. Esta va a ser
la GUI add player. Y esa sólo va
a ser la función. Vamos a necesitar un
hit y un número, ¿de acuerdo? Entonces vamos a traer
al jugador por aquí. Podemos levantar al
jugador haciendo lo
mismo que nosotros aquí. Entonces ahora tenemos al
jugador en esta función. Entonces podemos decir
jugador, jugador gy, Gy. Esta es nuestra GUI de pantalla en realidad. Así que queremos
renombrar esto a GUI. Sí, bien, Así que este nombre
tiene que cumplir con el mismo que este nombre punto número de punto de control. También vamos a
renombrar eso. Entonces este es el número
de punto de control. Entonces la etiqueta de texto,
vamos a renombrar esto a punto de control número
punto txt es igual a, y luego vamos a hacer esto
igual a stage y luego más cualquiera que sean los números
y que va a ser, y ese va
a ser nuestro texto. Siempre hemos escrito su escenario y luego
lo que sea que tengamos. Entonces, en realidad,
cambiemos esto también. Entonces digamos que esto ahora
está escenificado cero. Creo que eso tiene
sentido, ¿verdad? Etapa cero. Ahí vas. Y cada vez, cada vez
que queremos acertar a esto,
queremos cambiar esto. Entonces, en lugar de imprimir esto, podemos literalmente
simplemente decir agregar jugador en la GUI posterior pasando en el hit. Y luego el número, que es exactamente el valor del número Check
Point de
ubicación de generación . Y eso es todo lo que tenemos que
hacer para agregar eso ya. Y eso es realmente increíble. Porque ahora si entramos aquí, se
puede ver que estamos en la etapa cero. Ahora una vez más, como dije, esto no se ve muy bien. Por supuesto, puedes cambiar
cómo se ve esto, ¿verdad? Nosotros, ya hemos hablado de GUI antes si seguimos
y voy aquí, claro, espera un segundo. Yo hice un OOP, mira por aquí
hice un plus por aquí. Esto, esto debería ser punto, punto. Ahí vas. Eso es en realidad
lo que hay que hacer. A veces más bajo hace las cosas
un poco
diferente a otros
lenguajes de programación, pero eso está totalmente bien. Y luego ahí vas.
Y ahora llegamos a la etapa uno y podemos
continuar por aquí. Y encontrarás la etapa dos y la tercera y
así sucesivamente y así sucesivamente. Absolutamente impresionante. Entonces ahora tienes una
exhibición en el gy, pero eso no es
todo lo que queremos. Por supuesto, también
queremos una tabla de clasificación para comparar nuestras propias estadísticas con
estadísticas de otros jugadores. Ahora para las estadísticas del líder, bien, casi
podemos copiar el mismo guión que
hemos hecho anteriormente. Entonces en los servidores de script del servidor, solo
queríamos crear un nuevo script y
vamos a llamar a esto las
estadísticas líderes, estadísticas de litros. Ahí vas. Y en realidad voy a copiar
sobre los guiones anteriores. Entonces este es el guión
de la Parte 16 de los fundamentos básicos de Roblox base donde
agregamos la postura de líder. Ahora bien, no queremos un valor experimentado y desde luego no
queremos un valor de oro. Pero lo que sí queremos es que
sí queremos un valor int aquí. Entonces vamos a
renombrar esto a, llamemos a esta etapa, y ese es el valor
cero, Eso está bien. Y entonces eso es
literalmente, el derecho, eso es todo lo que
tenemos que hacer aquí. Ahora claro que todavía
tenemos que cambiar esto, pero está bien, podemos hacerlo. Entonces en el
script de checkpoint aquí mismo, cuando agregamos la interfaz de usuario de los jugadores, lo que podemos hacer es que podamos
hacer un nuevo método y
podemos simplemente llamar a este cambio estadísticas
posteriores, ¿verdad? Haciéndolo como una nueva
función una vez más con el calor y el número.
Y luego ahí vas. Y lo que entonces podemos hacer es que luego
podamos volver a conseguir al jugador, porque siempre vamos a
necesitar al jugador. ¿Y qué podemos hacer ahora? Bueno ahora podemos en teoría, solo entrar dentro de nuestra recolección de
goles que hemos hecho una vez más en
las cosas anteriores. Y podemos tomar partes de eso. Para que podamos, antes que nada, obtener
las estadísticas del líder ¿verdad? Entonces litros es igual a los conjuntos de líder de
puntos del jugador porque ese siempre va
a ser el mismo nombre. Entonces podemos decir escenario local. Etapa es igual a litros y litros estadísticas colon,
encontrar primer hijo. Voy a llamar a esto el escenario porque así es como lo
llamamos aquí, ¿verdad? Este es el
mismo nombre que éste, etapa. Y entonces si el escenario
está realmente presente, oh, no, son etapas presentes. Entonces lo que vamos a hacer es que el valor de punto de
etapa es entonces igual al número que estamos obteniendo de la llamada a la función de estadísticas del
líder de cambio. Y podemos simplemente
llamarlo con purpurina aquí mismo. Y podemos llamar cambiar las estadísticas del líder
pasando en el hit. Y luego lo mismo
aquí, ubicación de generación, ese número de punto de control,
ese valor, y eso es todo. Eso es literalmente
todo lo que necesitamos hacer. Y ahora también tenemos
una tabla de clasificación personalizada. Entonces, si volviéramos a ejecutar esto, lo que van a encontrar es eso así que ahora tenemos los conjuntos de
líderes por aquí. Así que no sólo puedo ver
mi etapa actual, sino que todos en la instancia también
pudieron ver mi etapa. Y se puede ver que ambos se actualizaron prácticamente
al mismo tiempo. Y podemos continuar con
este número dos, y así sucesivamente y así sucesivamente. Absolutamente impresionante. Entonces este es más o menos un
Abi casi funcional en este punto. Ahora solo se trata de agregar más y más etapas y
más y más cosas. Y se puede ver como
cada parte individual parece muy pequeña y algo así como una cosa
de contener. Pero ahora puedes ver ojalá que si
combinas ciertas cosas, puedas crear
realmente, realmente genial. Bueno, básicamente
los efectos del juego son sobre eso. ¿Es para esta
conferencia aquí mismo? Espero que esto te haya
resultado útil y aprendas algo nuevo y los
veré a todos en la próxima
conferencia. Entonces, sí.
39. (Roblox) agrega escaleras de desaparición al Obby: O continuemos
con el RB aquí, sigamos curso de robótica
y en esta conferencia
vamos a estar haciendo desaparecer nuestras
escaleras. Sí. Por lo que antes mencioné que cuando
subes por las escaleras, tal vez lo que debería pasar es que cada escalera individual en realidad desaparece cuando el
jugador la toca. Ahora hay un par de
formas en las que podemos hacer esto. Sólo vamos a agregar
un guión a nuestra parte. Y luego vamos a agregar
esos guiones en particular a todas nuestras
diferentes partes de la mirada. Básicamente, para esto, sólo
vamos a más por aquí en un guión y vamos a
nombrar a este guión las escaleras que desaparecen. Ahora ese guión, antes
que nada,
por supuesto tendrá la parte
en sí y eso es solo script dot parent debería ser bastante
autoexplicativo, ¿verdad? Vamos a llevar al
padre del guión. Y entonces también queríamos hacer una desaparición local
igual a falso. Esto es un booleano. Esto solo va a asegurar que nuestro evento Tocado que
vamos a implementar en solo un momento no va a ser llamado varias veces por
segundo básicamente. Ahora queremos usar
algo que no
hemos usado antes, y ese es el servicio de tween. Entonces este es en realidad
un muy buen momento en el que básicamente podemos
probar esto. Y la idea del
servicio Tween es simplemente pasar sin problemas de un valor de
una determinada cosa a otra. Entonces básicamente estamos cambiando
una propiedad en particular. En nuestro caso,
vamos a cambiar la transparencia de
cero todo el camino a uno. Y luego una vez hecho eso, vamos a
cambiarlo de nuevo a uno, 1-0. Entonces, ¿cómo
va a quedar esto si solo juego el juego por un momento y vamos a cambiar al servidor de aquí Seleccionaremos esta parte. Y entonces la idea
sería que la transparencia, derecha se mueva de cero todo el camino a uno de una
manera suave. Y luego una vez que sea uno,
vamos a esperar 6 s y luego va
a volver a cero. Ahora bien, esto se puede hacer como
hemos visto anteriormente con un for-loop y un poco de una llamada de función de peso pequeño, y luego solo
lo cambias por, no sé, 0.1 o 0.01 o mucho que quieras
cambiarlo, eso sí funciona. Sin embargo, no es
la forma óptima. La forma óptima sería usar el servicio de interpolación de aquí. Y la forma en que
esto funciona es que tienes una variable de servicio gemelo. Esto es igual a juego
colon obtener servicio. Y dentro de aquí, necesitamos
especificar los servidores. Ahora puedes ver que hay
muchos servicios. Realmente no hemos hablado
en detalle sobre esto, y sólo vamos a echar
un vistazo a algunos servicios. Pero ahora quiero usar
entre superficie por aquí. Esto es entre servicio y luego también
queremos una inflamación. Entonces esta es información de pretexto. Esto es en realidad bastante
sencillo. Yo también voy a explicar esto. Entonces esto va a
estar entre info. Sólo hagámoslo. Llámalo así. Voy a
llamarlo con una t pequeña, no una grande porque de lo contrario vamos a usar
la clase de aquí. Queremos hacer de
esto una t minúscula y esta vez va a haber información de
interdependencia entre info con un punto T en
mayúscula nu. Y entonces aquí podemos
especificar la hora. Entonces el tiempo es justo
cuánto tiempo va a tomar obtener del valor que actualmente estás
agregando que las propiedades Kronecker al valor
que quieres alcanzar. Solo vamos a decir 1 s. y luego el estilo de flexibilización, podemos decir que
este va a ser el
estilo enum dot easing como puedes ver, y luego punto y luego puedes ver que hay un montón
de diferentes. Así que lineal es lo más
fácil de entender. Es solo una gráfica
dibujada linealmente, ¿verdad? Entonces de un punto a otro, entonces también hay un equilibrado, básicamente rebota un poco
atrás. Esto realmente no aplica
en nuestro caso porque si bien no se
puede ir por encima de uno
o cero en transparencia. Y luego hay
otras cosas, ¿verdad? Así se puede ver que hay cúbico. Entonces básicamente comienza a
una menor velocidad y calidad. Se puede ver que esto
está determinado por una interpolación cuadrática. Entonces, hay un montón
de formas en las que
básicamente puedes facilitar esto dentro y fuera. Lo que te recomiendo aquí
es que solo puedas probar un montón de estos
y ver qué hacen. Una vez más, en este ejemplo
específico, realidad no
es la mejor
manera de echarle un vistazo. Tweening la
transparencia aquí en realidad
no va a
hacer esa locura, pero cualquier otra cosa podría
ser interesante de hecho. Entonces solo vamos a elegir
lineal por el momento. No hace falta que
esto sea demasiado complicado. Como dije,
solo puedes probar un montón de ellos y ver qué hacen. Y ahora en realidad queremos
hacer una nueva interpolación, ¿verdad? Entonces
sólo vamos a llamar a esta parte. Esto va a encender
la parte y hacer que la transparencia
pase de cualquiera que sean los valores reales a cero. El significado de transparencia cero solo significa que es
completamente sólido. Y podemos ver que esto
se va a hacer haciendo servicio de interpolación. Entonces nuestra variable de aquí, dos puntos crear, entonces
queremos decir qué instancia. Entonces, ¿qué parte real se
va a capacitar y la parte va a ser parte debería tener sentido, verdad? Entonces queremos cambiar la parte. Ahora. Queremos
proporcionarlo entre info. Ahora ya hicimos
esto, eso es perfecto. Y entonces queremos
hacer una mesa por aquí. Entonces la mesa, por supuesto,
sólo va a estar entre corchetes. Y dentro de aquí,
queremos decir entre qué
vamos a cambiar. Queremos cambiar
la transparencia,
asegurándonos de que escribimos
esto correctamente, ¿verdad? Entonces transparencia y dos, ¿
qué queremos cambiar esto? Queremos cambiar esto
a cero en este caso. Así que asegurándose de que el, esta palabra aquí mismo es exactamente el mismo que el nombre dentro
de las propiedades, ¿verdad? Entonces éste tiene que coincidir
exactamente con éste. Entonces, por favor, preste
atención a eso. Si hay hasta el pequeño cibernético
así, no funcionará. Si te aseguras de
que eso esté bien, entonces solo podemos copiar esta línea. Así que solo selecciona esta
prensa Control C y Control V para volver a
pegarlo. Y vamos a llamar a la
otra parte por aquí. Y en este caso queremos que
la transparencia sea una. Entonces, si jugamos parte en
lo que va a suceder es que
va a dentro de 1 s,
cambiar la transparencia. Aparte de cualquiera que sea el valor
real, cero. Y si jugamos parte del valor de la
transparencia se va a cambiar a uno de cualquier valor de transparencia
que tenga en este momento. Entonces vamos a decir
parte punto tocado. Entonces usaremos el evento Tocado. Vamos a conectar
esto con una función. Por supuesto, queremos saber a qué dirigió y lo que
solo vamos a hacer es que solo vamos a entrar en nuestro confiable servicio de
script de servidor antiguo y en realidad solo
vamos a tomar la, esta de aquí, la
declaración if porque eso
básicamente verifica si un jugador ha golpeado o un personaje ha golpeado en
esta parte en particular. Y también
agregaremos otra cosa y
eso está desapareciendo. Pero queremos decir que
no desaparece, ¿verdad? Entonces la idea es que
esto se va a poner en realidad de
inmediato, ¿verdad? Entonces vamos a establecer
esto en verdad de inmediato porque básicamente no
queremos
llamar a esto si ya estamos
teniendo el servicio Twin en marcha. Ahora puedes hacer esto de
muchas maneras diferentes. También puede verificar si
una preadolescencia está funcionando. Creo que el booleano
aquí está totalmente bien. La idea entonces es que
vamos a esperar, digamos un
cuarto de segundo. Y luego vamos a
decir parte del juego de colon. Y esto ahora jugará
el entre servicio haciendo la transparencia
de lo que
sea de la parte a uno. Y eso realmente funcionará de
inmediato. Entonces, si entramos aquí y
vamos a las partes, así que vamos a echar
un vistazo a qué socios es esta, esta parte. Bien, tomemos
nuestro almacenado otra vez. Simplemente dupliquemos esto
y lo pongamos por aquí solo para que tengamos un poco más fácil el tiempo para llegar allí, deshabilitamos la parte inicial, y luego deberíamos poder desovar inmediatamente al
lado de las escaleras. Entonces pequeños al lado de las escaleras. Y si toqué las escaleras, lo que encontrarás es
que ahí se va. Ahora eso es realmente
genial. Ahora el ahí vas. Por lo que todavía tiene colisión. Entonces como pueden ver, estoy
prácticamente de pie o nada porque, bueno, solo cambiamos
la transparencia. Pero sí cambiamos
la transparencia, que ya es realmente impresionante. Entonces viste que en
cuanto tocamos las escaleras, a la
derecha, arrancó la tripa de
servicio de The Twin. Entonces esta de aquí, esa
parte y cambió la transparencia 0-1 de manera
lineal dentro de 1 s. Ahora, ¿qué vamos a hacer para, cómo vamos a
hacer que esto desaparezca? Quizás podamos decir
aquí dentro, bueno parte eso puede chocar y luego
podríamos simplemente decir falso. Eso no es del todo correcto. Porque si hacemos esto, entonces en cuanto
empecemos a jugar, la cosa en realidad va a,
Bueno, vamos a caer a través cuando dentro de un
cuarto de segundo, lo que podría ser un
poco demasiado rápido. Así que podemos simplemente, echemos
un vistazo a esto y veamos qué hace
esto en realidad. Entonces, si entramos aquí y tratamos de
ir con cuidado a esta parte, se
puede ver que ahora ya es
como si no tuviera más colisión. Entonces esa ha sido una
muy, muy rápida. Entonces yo diría que
probablemente esta no sea la forma
óptima de hacerlo. Lo que quieres hacer es
decir, oye, si el prejoven de aquí
está hecho, ¿verdad? Entonces una vez hecho esto, entonces
queremos apagar la parte. Así que básicamente cuando la
parte se
ha ido por completo y lo que
podríamos hacer es simplemente decir parte fuera. Entonces esta es la interpolación que hemos
creado, punto completarla. Básicamente se puede ver
el evento completado incendios
de una prejoven cuando el
gemelo termina de tocar. Entonces esto es exactamente
lo que queremos, ¿verdad? Y queremos conectar esto
a una nueva función aquí. Ahora podemos conseguir el
estado también. Realmente no
necesitamos al Estado en este caso porque
vamos a estar bien. Y entonces solo podemos
decir, en este caso, parte puede colisionar igual a falso. Entonces eso va a estar bien. Entonces vamos
a esperar otro, digamos 0.25 s. Entonces
vamos a decir parte en el juego de colon cuando dicen que
desaparecer es igual a falso. Y entonces podemos
decir que parte puede chocar
verdad aquí mismo. Ahora en realidad no
pondría el verdadero cálculo dentro de aquí porque
entonces
ocurre el mismo problema que teníamos antes. Donde en cuanto esto
se haga visible, puede chocar
con él de nuevo. Ahora eso podría ser
algo que quieras. Podría haber el caso, ¿verdad? Entonces, si quieres que choque de
inmediato al Hubble, después de que apenas puedas ver la
parte, entonces puedes hacer esto. O si querías
solo coleccionable una vez que la parte está completamente ahí, entonces puedes decir puerto
en colon completado función de conexión de
colon una
vez más con un estado por aquí. Y entonces una vez hecho eso,
se puede decir que el acaparamiento puede chocar. La lógica aquí debería
ser bastante sólida, ¿verdad? Solo tenemos un servicio
o una preadolescencia, ¿verdad? En este caso,
que cambiará un valor de uno
a otro, ha alcanzado su valor objetivo. Se llama al evento completado, y solo estamos conectando
otra función a él. Eso es literalmente todo lo
que estamos haciendo aquí. Así que en realidad es una
cosa
realmente, realmente genial e increíble que podemos hacer. Y si tenemos esto ahora, lo que podemos hacer es
entrar aquí y podemos ver si toqué la
primera escalera de aquí. Puedes verlo ahora me
caí y
volvamos a entrar ahí. Toquemos la primera serie
y después continuamos subiendo. Así que vamos a ir. Ahí vas. Y ahora puedes ver que rebota hacia atrás
y ahí está otra vez y puedo pararme
sobre él otra vez y luego puedo seguir de nuevo. Entonces eso es realmente genial. Ahora tenemos este guión de escaleras
que desaparecen en una sobre escaleras. ¿Cómo podemos agregarlo a
todas nuestras escaleras? No sé si hay
una manera fácil de hacerlo. Yo sólo he estado básicamente
duplicando todos ellos. Entonces básicamente solo seleccionando uno de ellos,
comparación Control D, y luego simplemente, bueno básicamente moviéndolos
a las otras partes. Ahora bien, si hay una manera
más fácil de hacer esto, entonces me
complace iluminarme. Todavía no he encontrado de una manera
más fácil duplicar piezas y configurarlas a
diferentes padres fácilmente. Pero míranos, ya
terminamos básicamente. Entonces no tardó tanto. Entonces eso debería estar bastante bien. Y luego vamos
a cerrar los puertos si quieres probar esto en el futuro, también
puedes hacer un script de
módulo con este cambio en
aproximadamente y usarlo en
su lugar y luego hacer que los
puertos solo se conecten
al script del módulo que por supuesto
es factible. Pero en nuestro caso, creo que
esto va a estar bien. Y vamos a ver cómo va a quedar
esto, porque esto
en realidad va a quedar realmente, realmente jodidamente increíble. Entonces si ahora subimos las
escaleras y se puede ver ahí ahora todo desapareciendo
y apareciendo de nuevo. Eso es absolutamente increíble. Y la otra manera también funciona. Eso es genial. Ahora, una vez más, una vez más, las escaleras podrían no ser la mejor manera en cuanto
a modelar, ¿verdad? A lo mejor las escaleras podrían
ser un poco más grandes, un poco más anchas,
cosas así. Siempre puedes cambiarlo porque ahora la funcionalidad
está ahí dentro. ¿Verdad? Ahora tienes una de
las partes con el guión. Y si quieres rehacer las
escaleras, absolutamente nada de palabras. Puedes eliminar todas
las demás escaleras. Se puede cambiar el
modelado, cómo funciona. Y ahí tienes. Una última cosa, ya lo he
mostrado antes, pero el servicio de tween por aquí, definitivamente
te recomiendo que eches un vistazo a
esto porque es una parte muy importante
de hacer muchas
cosas en los controles de carretera que
simplemente se ven geniales básicamente. Y también lo usaremos en
la próxima conferencia también. Por lo que
recomiendo encarecidamente echar un
vistazo a la documentación de aquí. También puedes hacer
esto simplemente
yendo a la
superficie entre aquí,
creo, y luego exhibirlo. Simplemente podría ser algo
muy interesante echar un vistazo independientemente. Entonces eso va a ser para
esta conferencia de aquí mismo. Espero que esto te haya resultado útil y aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
40. (Roblox) agrega piezas móviles al Obby: Vamos a continuar con el RB aquí, seguir curso de robótica
y en esta conferencia, vamos a empezar a mover
nuestros ladrillos muertos, ¿verdad? Así que me he burlado y
hablado del movimiento de los ladrillos
matadores desde hace un tiempo. Y la idea es que lo que
queremos hacer es que queramos hacer un guión que cambie la
rotación de los ladrillos de matar, algo así, ¿verdad? Y ya hemos visto previamente
en la conferencia anterior, hemos visto el
servicio de tweening para las escaleras, ¿verdad? Así que eso hizo que la transparencia de las escaleras saliera 0-1 o 1-0. Y ahora queremos hacer lo
mismo por nuestros ladrillos
muertos de aquí, solo con la rotación. Entonces para esto en los ladrillos de
matar, bien, solo
podemos dejar
el guión de matar. Básicamente podemos
mantener eso ahí. Y lo que queremos hacer es que solo queríamos agregar otro
guión y ese va a ser nuestro guión rotativo
por aquí. Eso es perfecto. Y ahora esto va a conseguir el
número uno, una parte, ¿verdad? Esta va a ser nuestra
parte, script dot parent. Y luego nos vamos a
meter entre servicio otra vez. Así que esto es entre
servicio igual a, hemos visto este
juego anteriormente dos puntos obtener servicio y luego poner en la cadena de
servicio de Tween por aquí. Ahora también queremos información. Entonces esto podría ser algo así como la información giratoria, la información
giratoria. Ahí vas. Y eso va a ser igual
a tween y pie son nuevos. Y entonces aquí
queremos el tiempo otra vez. Entonces, digamos uno
por el momento. Enum, ese estilo de flexibilización, ese lineal por el
momento también. Te recomiendo encarecidamente aquí, definitivamente
puedes echar
un vistazo a diferentes estilos de flexibilización y lo
haremos en un momento. Una vez que todo está funcionando, entonces la pregunta es, bien, ¿cómo podemos girar esto? Ahora esto es un poco más complicado que lo que
has visto anteriormente, porque hay un
poco más de matemáticas involucradas. Pero digamos que
vamos a girar esto, ¿verdad? Así que esta no va a
ser nuestra preadolescencia. Entonces va a haber tween
service colon create. Y esto, por supuesto, el
trabajo de la parte debería ser, lo cual debería tener sentido. Vamos a agregar
la información giratoria. Y luego aquí
queremos agregar lo que está cambiando en como una tabla. Ahora lo que va
a cambiar para el ladrillo de matar va
a ser el marco C, ¿verdad? Y lo que va
a estar cambiando para el cuadro C es específicamente
la orientación. Ahora, ¿cómo puedo cambiar la orientación del marco
C con esto? Bueno, antes que nada,
sólo vamos a decir C frame. Y entonces va a ser
igual a los fotogramas C reales. Ese va a ser el marco de la Parte C. Así que lo estamos configurando en el
mismo puerto y luego lo estamos multiplicando por ángulos de punto de
marco C. Y la idea aquí es
que esto sea igual a desde ángulos de Euler XYZ. Entonces Angles básicamente te devuelve un nuevo cuadro C a partir de números
radiantes. Entonces esto podría ser
un poco, oh, esto es una locura. En general. Las rotaciones en el espacio 3D son
en realidad bastante complicadas. Se podría decir, bueno, quiero decir, es como tres
números por aquí. Bueno, no es tan fácil. Tres números en realidad
no pueden ser suficientes para hacer orientación y rotación. Por eso a veces cuando
cambias esos números, hacen cosas raras, ¿verdad? Entonces tal vez has
cambiado este select -90 y de repente, este cambio a -90,
como el valor y, en realidad cambia esto
a 70 y estás como, bueno, ¿cómo sucedió esto? Bueno, en general, lo
que queremos hacer aquí en los ángulos es que queremos
decir radianes de punto matemáticos. Entonces queremos poner el
radiante aquí, 45. Y entonces queremos decir
cerrando paréntesis cero coma cero. Yo sólo voy a alejar el
zoom por aquí y se
puede ver el fotograma C. El valor real debe ser el valor actual multiplicado por cualquiera que sea el ángulo
del radián matemático 45s. ¿Qué significa eso? Bueno, vamos a ver esto
en un momento. Lo que solo vamos a hacer
es que vamos a decir “spin colon play”. Y eso es todo lo que
vamos a hacer ahora mismo. Así que vamos a
mantenerlo así, ¿verdad? Así que solo vamos
a decir, oye, solo da
vueltas y luego ya veremos, tomaremos nuestro inicio por aquí y solo
vamos a moverlo por aquí. Deberíamos poder ver a nuestro primer
muro de ladrillos matar hacer algo. Y vas a ver
lo que hace, ¿verdad? Así que vamos a hacer
aquí y se puede ver que en realidad gira, pero gira alrededor del eje equivocado o ha
girado alrededor de su propio eje. Entonces, para
girarlo realmente alrededor de este eje, que en este caso en
realidad no es correcto. Entonces queremos cambiar
las matemáticas por ahí. Así que en realidad queríamos rotar alrededor del eje azul,
que en realidad es z. Así que queremos cambiar estos dos aquí
mismo, eso
no tiene ninguna preocupación en absoluto. Entonces básicamente puedes echarle
un vistazo, justo si estás como, espera, ¿cómo sabes que
queremos rotar alrededor de este eje? De repente, se puede ver que si cambio
el azul por aquí, bien, eso
nos va a llevar al resultado deseado. Y el azul por aquí en
la parte superior derecha es z. Eso significa que
tenemos que cambiar el último porque
esto va x, y, z. Ojalá eso sea algo
comprensible. Entonces ahora que cambiamos esto, bien y
entramos aquí, ahora deberíamos poder ver esto girar lentamente
alrededor y ahí vas. Así que en realidad
ni siquiera nos dimos cuenta de eso, pero lo escribió alrededor
en esta dirección. Y si vamos al servidor
y seleccionamos esto, realmente
podemos ver en
la orientación que esto cambia el valor aquí, 245. Así que eso es, literalmente,
casi todo esto hace, ¿verdad? Entonces básicamente solo dice, Oye, queremos cambiar esta cosa
en particular a 45. Y si tuviéramos que
ir a cinco por ejemplo 5 s, entonces va a tomar
un poco más de tiempo y entonces en realidad
podremos
verlo moverse también. Para que lo veas
ahora se mueve. Y ahora hemos alcanzado
el ángulo de 45 grados, y eso es todo lo que hace. Entonces la idea aquí es
que literalmente solo cambia el ángulo a
lo que sea que pongas aquí. La mayoría de estas cosas son una especie de
cálculo. Ahora, es interesante
echarle un vistazo. Y si estás realmente
interesado en eso, recomiendo encarecidamente que
consultes las referencias de la API del marco C. Lo hacen, son bastante importantes, son
bastante interesantes. Sin embargo, es mucha
matemática involucrada. Eso es lo que
puedes tener en mente. Entonces ahora va
a rotar 0-45. Y ¿y si ahora queremos que vuelva a girar de nuevo? Bueno,
no te preocupes en absoluto. Sólo vamos a
hacer una segunda vuelta. Así que sólo vamos
a decir que esto es girar una vuelta a ella,
eso va a estar bien. Y éste va a -45. Entonces primero vamos a 45 y luego
vamos a volver a -45. Entonces ahora spin uno debería jugar, y ahora esto es lo del genio
absoluto. Ahora lo que queremos hacer
es una vez que esté hecho, queremos decir terminado. Por lo que una vez más utilizamos
el evento terminado. Queremos conectar
una nueva función y sólo vamos
a decir función. Y en la misma línea sólo
vamos a decir giro a juego de colon, y luego sólo vamos
a terminarlo en la misma línea. Espaciar a eso no es del todo el giro correcto también.
Ahí tienes, Correcto. Ahora, aún más locos, sólo
vamos a copiar esto también. Voy a decir uno, la
vuelta dos está terminada, ya sólo vamos a
colocar la vuelta una. Esto ahora hará
que pase de cuatro, 0-45 a -45 y de ida
y vuelta para siempre. Si solo jugamos esto, lo
podrás ver. En primer lugar, va a 45
y una vez que llegó a ese bam, vuelve atrás y ahora
va a -45, negativo 45. Y una vez que llega a
eso, vuelve de nuevo a 45. Absolutamente espectacular. Y me encanta
esto y están aquí, o entra, es el estilo de flexibilización
diferente. Entonces, quizá cambiemos el
tiempo de aquí a tres. Y ahora aquí, si conseguimos algo así como uno
exponencial, ¿verdad? Por lo que esto reduce la resistencia muy rápidamente ya que
entre se acerca a un objetivo. Eso podría ser interesante. Entonces echemos un
vistazo a éste. Esto va a
parecer una locura, ¿verdad? Entonces, si echamos un vistazo a esto, de
repente, se ve
completamente diferente. Sin embargo, este también es un efecto realmente genial
como puedes ver. Y a eso me refiero. Estar abierto a la experimentación en cosas como el estilo de flexibilización, porque eso
realmente se ve genial y puede agregar algo de imprevisibilidad a tus elementos de dos años
básicamente, ¿verdad? Entonces podemos hacer esto. También
podemos decir tal vez queremos decir ver una onda sinusoidal. Seguro, ¿por qué no? Echemos un vistazo al letrero. ¿Cómo va a quedar eso? Bueno, vamos a ver, bien. Entonces esto se va a
quedar bastante así. Entonces es diferente. Una vez más, no es lineal. Es una onda sinusoidal, ¿verdad? Entonces se ralentiza, se
acelera un poco. También podemos echarle un vistazo a otro que sea un
poco interesante. Es el, ¿es la parte de atrás? Sí, este que
en realidad también es bastante genial porque en realidad se
sobrepasa un poco. Entonces vamos a
ver que va un poco más allá de
45 grados en realidad. Y luego como que
rebotó como se puede ver. Así que se rebasa un
poco y luego vuelve y luego
sigue regresando. Es realmente increíble. No puedo enfatizar esto lo suficiente. Solo juega un poco con el estilo de
flexibilización
por aquí y te sorprenderá
lo que puedes hacer. Ahora que ya tenemos hecho el guión
rotativo. Bueno, básicamente podemos echar un vistazo a todos nuestros ladrillos
muertos por aquí. Solo asegurémonos de que
tenemos todos los correctos. Entonces son todos
los que están por encima de él. Bien, y luego
solo vamos a tomar el guión rotativo y
solo vamos a
agregarlo a todos ellos. Ahí vas. Notación de guión,
escritura giratoria, escritura giratoria N. El uno más en realidad, y necesitamos uno
más. Ahí vas. Ahí vas. Otra oportunidad. Todos van a rotar. Ahora. Ahora para ser justos,
todos van a rotar a la misma velocidad y bueno,
básicamente al unísono. Ahora lo que puedes hacer
es cambiar la rotación original
de algunas de ellas, ¿verdad? Para que la rotación
vaya a estar desincronizada o eso sí funcione. Entonces podemos hacer con
alguien así. Y entonces tal vez
vamos a cambiar a este tipo por algo así. Y voy a
continuar por aquí. A lo mejor este tipo tiene una cosa
absolutamente demente. A lo mejor este tipo
en
realidad está parado encima y entonces este tipo
está como ya a los 45. Entonces veamos
qué hace todo esto
cuando todos ellos se mueven ambos
simultáneamente, ¿verdad? Entonces echemos un vistazo a esto. Y se puede ver ahora todos moviéndose, sin embargo todos se están
moviendo al mismo tiempo. Se ve muy genial, ¿verdad? Te voy a dar que ellos, ellos, se ven bastante cool y ya
ves es que lo que son 45 grados realmente cambia
para cada uno de ellos, ¿verdad? Porque el marco C es, en este caso, una especie de derechos locales. Así que básicamente lo estamos
cambiando a 45 grados. Pero lo que 45 grados son los cambios, lo que en realidad sí tiene
un efecto muy, muy genial. Ahora hay una
cosa diminuta que sí
quiero agregar y que
va a ser la siguiente. Así que vamos a abrir la Escritura giratoria
superior para que tengamos la correcta. Y sólo vamos a hacer esto un
tiempo local de premamá por aquí. Esto va a ser, digamos, igual a uno y
solo vamos a cambiarlo aquí
mismo para que podamos cambiar el tiempo de pretensión para que cada uno de nuestros ladrillos muertos estén rotando ladrillos de
matanza por aquí. Y la idea aquí es que
en realidad vamos a hacer esto a través de unos nuevos valores int. Así que sólo vamos
a agregar un valor int aquí
mismo al ladrillo de matar. Y este va a ser
el tiempo de las gemelas, ¿verdad? Entonces vamos
a decir punto de puerto, tiempo
gemelo, valor de punto. Ahí vas. Y ahora tenemos el
tiempo de aquí. Entonces llamemos a esto dos. Y entonces podemos hacer es que
simplemente podemos eliminar los viejos scripts
rotativos. Entonces esta es una vez más,
una de esas cosas donde tal vez un script de módulo
sería un poco bueno, pero no es
absolutamente necesario. Y voy a
duplicar esto y
agregarlo a todos nuestros ladrillos
rotativos muertos. Y luego también hay un punto en posiblemente cambiarles el nombre a
los ladrillos de matanza giratorios solo para que sepamos
cuáles son esos, ¿verdad? Entonces esos van a
ser los rotativos o digamos que los
ladrillos muertos antidisturbios, eso va a estar bien. Eso ojalá sea
suficiente para que seamos como, bien, esos van a
ser los rotativos. Ahí vas.
Ese también es uno. Y luego éste también. Y ahí vamos. Y ahora
en realidad podemos cambiar esto. Entonces digamos que queremos
cambiar esto a seis y queremos
cambiar esto a uno, y queremos cambiar
esto a tres. Y esto también debería
ser tres, digamos. Ahora todos van a
estar completamente
desincronizados porque algunos de ellos
van a ser más rápidos, algunos de ellos
van a ser más lentos. Y aquí, también puedes por supuesto cambiar los estilos de flexibilización y ver ahora hay todo tipo de simplemente haciendo
lo suyo. Básicamente. Ni siquiera les importa. Y va a ser mucho más interesante saltar alrededor de esto, quiero decir, este
va a ser interesante. Ahí tienes, pero yo lo hice. Es simplemente increíble, ¿verdad? Entonces puedes hacer tantas
cosas ahora mismo, cambiando la
celda de flexibilización de algunas de ellas, puedes en teoría, también
cambiarías
la celda de flexibilización en algún momento durante el
mientras esto sucede, cambias entre el tiempo. Hay un montón de cosas que
podrías hacer. Esas ideas. Espero que básicamente te
haya inspirado a jugar con esto porque eso es lo más importante. Porque el mayor aprendizaje
que vas a hacer si estás como,
espera, ¿cómo puedo hacer
esto o esto o esto o esto? Y si, Normalmente puedes hacerlo. Solo equivale a
probarlo y ver lo que puedes hacer. Pero ese es básicamente
el movimiento para nuestros ladrillos muertos por aquí. Y eso resume
bastante lo general que
quería hacer con el RB. Vamos a tener una conferencia
más donde
hablé de algunas cosas que tal vez
puedas agregar. Pero independientemente de eso,
por el momento, esto va a ser para
esta conferencia aquí mismo. Seré honesto, útil y
aprenderás algo nuevo. Y los veo a todos en
la próxima conferencia. Entonces, sí.
41. (Roblox) Ideas adicionales para el Obby: Bien, bienvenidos de
nuevo al RB aquí para el curso de caja de fila. Y en esta conferencia,
solo quiero
hablar en breve sobre algunas cosas que
tal vez puedas agregar en tu OB cuando
continúes desarrollándolo. Entonces claro, en nuestro
ejemplo de aquí, sólo
tenemos cinco
etapas y se está
jugando mientras se puede jugar
muy, muy rápido, ¿verdad? Pero la idea
del ejército era ser una ilustración de lo
que eres capaz de hacer. Ciertas cosas sobre las que
podrías expandir serían algo así como tal vez tomar la raíz cuadrada del
agujero en el medio, ¿verdad? Tal vez haciéndolos un
poco más grandes. Y entonces puedes
ponerlos así, bien. los puedas poner para que
te den un cigarrillo, un pasillo. El corredor se mueve
con un servicio de Tween. Así que eso podría verse muy,
muy genial, ¿verdad? Y tal vez incluso podría
ser una cosa arcoíris. A lo mejor no sería
una etapa difícil, pero no siempre se trata de tener dificultades en el estatus. También se trata de simplemente tener etapas divertidas y que se
vean geniales, ¿verdad? Porque honestamente, ya sabes, la búsqueda de un RB es
como, yo diría, en algún lugar entre como un 30 a 60% de lo que
Lo genial de esto es, ¿verdad? Y si tiene muchas etapas, solo
sigues yendo
y
sumando diferentes etapas
que siguen siendo similares. Entonces puedes agregar más
formas en teoría, podrías agregar las
formas y hacer
que se inclinen de
una manera diferente. Lo escribí de una manera diferente. Se pueden agregar más escaleras, ¿verdad? Se pueden agregar escaleras
que tal vez se
separen de derecha a izquierda
o algo así. Se pueden añadir ciertas partes donde hay
que elegir
derecha o izquierda, derecha, tan similar a ésta, pero en realidad una de ellas es en realidad calcular sus faltas. Entonces vas a caer por ésta, cosas así. Hay muchas maneras en las que
puedes hacer esto y hacer esto realmente increíble. Y solo quiero que
experimentes si
realmente estás interesado en
continuar con esto, realidad
creo
que si solo
experimentas con alguna idea
que puedas tener, también
puedes por supuesto,
mirar otras Abby, ver lo que tienen
y luego tal vez como, Bien, ¿cómo puedo implementar esto? Esa es una excelente
manera de
seguir aprendiendo más y más
roadblocks scripting. Aparte de eso, hemos
terminado con esto. Ahora en realidad
volveremos con este RB en particular porque
en el resto del curso, realidad
vamos a entrar en algunos temas más intermedios. Y la mayoría de ellos,
básicamente quiero
mostrarte dentro de este
RB en este caso. Y con suerte eso te
va a ayudar a hacer tu propio juego personalizado de
Roblox también. También hay algunas ideas
de futuras adiciones, cómo podemos mejorar esto, cómo puedes seguir mejorando
tu afición en este caso. Y a lo
que me refiero, eso sería
para esta conferencia en esta sección del curso. Espero que esto te haya resultado útil. Y si lo hicieras hasta ahora, realmente agradecería
una reseña tuya. De lo contrario, los veo en
la próxima conferencia. Entonces, sí.
42. (Roblox) Publicación de tu juego: Bien, bienvenido de nuevo para
los temas intermedios aquí sigue el curso de Roblox
y en esta breve conferencia, te
mostraré cómo
puedes publicar tu RB o cualquier juego realmente
al propio Roblox. Entonces para hacer esto, solo
queremos ir a Archivo y luego verás
que tienes un publicado para Roblox por aquí. Ahora vamos a elegir
el publicado a Roblox ya que esto básicamente abrirá una nueva ventana por aquí. Ahora estas son algunas de las cosas que ya han publicado. No todos son
privados en este caso, pero puedo ir a crear un juego nuevo, y esto básicamente
creará un juego completamente nuevo. Ahora sólo vamos a llamar a
esto nuestro ejemplo, OBE por ejemplo alguien así,
nada demasiado loco. Yo soy el autor aquí. Incluso se puede cambiar el
género en este caso. Ahora, puedes quedártelo en absoluto. O se puede decir, esto es un, una
especie de temática medieval
o B, algo así. Está bien. Sólo vamos a
guardarlo en absoluto. Ahora, generalmente los dispositivos, solo
hemos probado realmente
esto para la computadora. Entonces, si quieres estar
absolutamente guardado, puedes apagar el teléfono
y la tableta porque, bueno, definitivamente
sabemos que
va a funcionar en la computadora. Sin embargo,
también puedes mantenerlos puestos, pero asegúrate de probar
tu juego también si funcionan correctamente en
el teléfono y en la parte superior, si así lo eliges, puedes
agregar una descripción por aquí. De lo contrario, solo puedes
presionar Crear y esto
ahora cargará el RBA
en barricada. Así se puede ver que en realidad ya estamos
cargando nuestro lugar. Solo ten paciencia para esto. Y luego ahí vas. Ahora tenemos el archivo por aquí con un
poco de nube, y eso significa que ahora
estamos en el servidor. Así que ahora solo navega
para crear que los bloqueos de carreteras son creaciones com
slash. Y solo voy a
recargar esto y
encontrarás nuestro ejemplo, aunque justo justo aquí abajo, como una nueva experiencia
que se creó. Eso es genial. Y se puede ver que esto no es lo que pasa. Si voy a editar en Studio, realidad
va a
abrir Roblox Studio para nosotros. Entonces esto en realidad
abriría una nueva ventana. Entonces ahora mismo puedes ver que Roblox
Studio vuelve a abrir. Ahora en nuestro caso, en realidad
tenemos esto ya abierto. Entonces va a ser como, oh
Dios mío, ya hemos abierto. Entonces ahí tienes. Vamos a
cerrar esto. Y ahora lo
tenemos abierto aquí también. Entonces esto es realmente,
realmente impresionante, pero esto no lo es todo. Así que, por supuesto, puedes entrar
aquí. Sólo entremos. También podemos cambiar si estas cosas para que
veas podemos hacerlo público, podemos cerrarlo todo. Podemos crear insignias. Hay diferentes
estadísticas que puedes echarle un vistazo. Incluso se puede configurar
el final de las localizaciones. Entonces, antes que nada, podemos
abrir esto en una nueva pestaña. Entonces esta va a ser nuestra
creación por aquí. Como puedes ver, esto
es solo la visión general. Hay otros
ajustes básicos para que puedas cambiar el nombre si así lo eliges
, puedes hacerlo privado. Esto también es
algo muy importante. Por lo tanto, permite hacer acceso
a los servicios API. Esto es a lo que
volveremos en un rato. Te recomiendo encarecidamente que enciendas esto ya y solo
guardes los cambios. No obstante, pasaremos por
esto una vez más. Esto es necesario para ciertas API, como la API de almacenamiento de datos que
veremos muy pronto. Hay lugares. Así que ahora solo hay
un lugar, ¿verdad? Entonces es solo este
RB en este caso. Y generalmente para una abadía, solo
tienes un lugar, pero tendrías múltiples
lugares que están conectados a través ciertas plataformas de teletransportación o ciertas puertas de enlace o lo que básicamente
quieras. Y también vamos
a ver esto en los
pasos intermedios aquí también. Hay otros elementos para que
puedas crear insignias, que puedas crear pases, e incluso puedes crear
un desarrollador productos no
entrarán en
los de este curso. Pero todavía hay algo
interesante. Hay diferentes tipos de acceso. Entonces los tipos de acceso aquí
serían si requiere o no un pago
para hacer un servidor privado. Entonces se puede decir requiere x
robótica, cosas así. Entonces hay una muy
cool que puedes hacer. Hay un cuestionario
que
no era elegible en este momento. Hay localización,
así que esto
traduciría ciertas cosas. Esto es absolutamente una locura. No hemos mirado la
localización del servicio, pero es genial
que esto exista. También podemos agregar
algunos enlaces sociales. Entonces esto sería solo ser plataformas
sociales por aquí. Podemos obtener algunas actualizaciones. Por lo que esta es una excelente manera de notificar
al usuario. Básicamente, ya sabes,
algo pasó. Hay notificaciones. Así que podemos crear
cadenas de notificación y luego publicidad y
el patrocinio realmente va a una ventana diferente. Y luego al final aquí
hay estadísticas de desarrolladores básicamente diciendo ¿cuántas personas en qué plataforma están jugando? ¿Cuáles son los datos históricos? Aquí hay muchas cosas, lo cual es realmente, realmente increíble. Pero si volvemos a la
experiencia aquí mismo, lo que puedes hacer es ir a ver en Roblox. Y lo que va a
pasar es que
verás la probablemente, como has visto varias veces,
esta ventana en particular. Y lo que es realmente
genial es que puedes volver a ir aquí a Editar y luego lo va a abrir una
vez más en Roblox Studio. Ahora en realidad
no vamos a querer eso, ¿verdad? Entonces hay un montón
de cosas, correcto, configuraron este lugar para
que podamos
configurar realmente esta es
la versión antigua. Si volvemos a
la nueva versión, puedes ver aquí ahora
también podemos cambiar el ícono y esas cosas. Entonces,
en realidad había una gran cosa que quería echar un
vistazo y la forma en que obtienes esto a través de las
creaciones, ¿verdad? Entonces si estamos en esta
pantalla de creación, vas a tu Abby, luego vas a lugares, y luego haces clic en
el lugar y luego puedes cambiar los
detalles, ¿verdad? Para que puedas cambiar
el icono aquí mismo. Puedes hacer
la imagen automatizada o incluso puedes cambiar esto. Puedes cambiar la miniatura. Entonces, la miniatura, por supuesto,
sería esta cosa de aquí, ¿verdad? En realidad se puede
ver en los bloqueos de carreteras. Entonces, si estás en robots, esta gran cosa de aquí mismo, y luego hay acceso a esto. ¿Cuántos visitantes hay disponibles? Por lo general, quieres
que todos sean como la configuración del servicio. Todos quieren el historial de versiones
optimizado de Roblox. Entonces, ¿cuáles son las versiones
que se implementaron? Y luego, por último,
algunos permisos. Ahora mismo, la mayoría de
esos no son importantes. Te sugiero que mantengas
la mayor parte de esta tasa de impago. Entonces, si ahora hacemos clic en Reproducir, a la derecha,
en realidad no se va a abrir. Roblox Studio en realidad
va a abrir Roblox en sí. Entonces ahí vamos,
nuestro ejemplo OB
contando a Joel y ahora nos estamos
uniendo, y ahí estamos. Ahora estamos dentro del juego y esto en realidad son barricadas. Esto no es Roblox Studio. Y si seguimos aquí
y vamos por aquí, bam, etapa uno, esto funciona. Todavía podemos morir por aquí. Y eso es prácticamente
todo lo que hay para ello. Quiero decir, eso es muy bueno. Entonces definitivamente funciona. Recomiendo encarecidamente realizar pruebas
frecuentes. Veamos las escaleras. También desaparecerían
y también se caían. Eso no es exactamente
lo que tenía en mente. Por favor, disculpe el hecho de
que no hubo volumen. Yo lo apagué,
pero ahí tienes. Entonces ahora tienes las
sierras de aquí que están girando alrededor, ¿
verdad? Ahí vas. Oh, esta es una locura. Este es un este es
un loco . Ese es realmente bueno. Eso me gusta. Y luego conseguimos nuestras
formas, y ahí vamos. Así que ahora en realidad tenemos
el juego por aquí. Ahora claro, sigue siendo
un poco descalzo, pero este es el inicio de crear juego y
ahora está publicado, aún no
es público, pero que por supuesto se puede
optar por hacer público o no. Una vez que hayamos terminado con esto,
podremos volver atrás. Una vez más. El grande son las creaciones. Y ahí básicamente puedes
acceder a todas tus creaciones. Entonces puedes ir a
tu ejemplo o B, y puedes cambiar todo lo
que quieras. Ahora bien, la razón por la que es
tan importante que
publiquemos esto es porque
en realidad requerimos que nuestro lugar sea publicado
antes de que podamos usarlo. Bueno, todas las cosas de las
que vamos a
hablar en las próximas conferencias. Pero eso básicamente va a
ser para esta conferencia de aquí mismo. Espero que esto te haya resultado útil y hayas aprendido que el Nuevo, y los veré a todos en la
próxima conferencia. Entonces, sí.
43. (Roblox) Añade fotos a tu GUI: Bien, bienvenidos de nuevo a
los temas intermedios aquí, curso de más barricadas. Y en esta breve conferencia, echaremos un
vistazo a cómo puedes agregar una imagen a tu GUI. Entonces, la razón por la que no
hemos podido
hacer esto cuando realmente miramos por
primera vez a las GUI, es porque las imágenes
en realidad tienen ser lo que requieren que se publique tu
lugar, ¿verdad? Entonces si agrego una imagen
por aquí, derecha, entonces agregamos una etiqueta de imagen, como pueden ver ahora
tenemos una imagen por aquí. Vamos a agregar esto
dentro del tamaño aquí. Eso va a estar totalmente bien. Esto va a cambiar. Ahora. Para cambiar este
derecho, das clic en la imagen y luego
simplemente bajes a la
imagen aquí mismo. Y ya puedes ver, ya
podemos agregar una imagen. Ahora para agregar una imagen,
sólo vamos a elegir un archivo. He preparado un botón de pulgar hacia
arriba por aquí. Creo que eso va
a estar totalmente bien. Vamos a llamarlo pulgares
arriba y vamos a crear, esto en realidad
subirá el botón pulgares arriba al propio Roblox. Para que puedas ver net ahora
tiene un ID de barricadas, y ese ID es
realmente importante y ahora estará disponible. Hagamos esto un
poco más agradable. Tal vez
hagamos esto un
poco más pequeño, incluso un
número así. Y entonces vamos a hacer esto. Ahí vas. Entonces
ahora tenemos esto. También quitemos el borde porque en realidad
no quiero ningún borde. No, no me gustaría que haya frontera
cero aquí mismo. Ahí vas. Entonces ahora
tenemos un pulgar hacia arriba por aquí al lado de tu escenario. Ahora mismo no estamos haciendo
nada con esto, pero es bastante genial, ¿verdad? Entonces así es más o menos como
puedes agregar la imagen. Si ahoramos,
puedes ver que ahora cambiamos, ahora guardamos esos
cambios en Roblox, ¿verdad? Entonces, si tuviéramos que
navegar de nuevo a nuestras creaciones y
vamos a nuestro ejemplo, voy a terminar en los lugares en lugar de un lugar en
el historial de versiones, se
puede ver que acabamos empujar la versión más nueva
porque es una caja fuerte. Y si tuviéramos que
publicar esto ahora, volveremos a
ir a publicar Roblox y luego en realidad también
publicará esto. Entonces ahora estamos publicando
los cambios. Hay dos
operaciones diferentes, ¿verdad? Pero si vuelves al historial de
versiones, ya
puedes ver, ahora esta
es una versión publicada. Entonces hay una diferencia entre guardar tus cambios en la
publicación de los cambios. Esto es algo muy
importante a tener en cuenta. ¿Bien? Entonces cuando agrego esto y lo
guardé, ¿verdad? Entonces yo, presioné Control S
o vas a Archivo y Guardar. Esto significa que se
guarda en la nube de Roblox. Puede restaurar versiones anteriores y como una versión guardada como
una versión temprana. Esta es una instantánea de todos
los cambios que has realizado. No obstante, solo porque salvaste, no significa que
la gente que juega tu juego vaya a
tener esos cambios. Para obtener los cambios a las personas que están
jugando a tu juego, en realidad
tienes que publicar
la versión que es
muy, muy importante y es una diferencia muy importante para que sepas cuándo en realidad estás
tratando de hacer esto básicamente. Una cosa más diminuta es que probablemente te
vas a preguntar, bueno, ¿cómo puedo cambiar esta imagen
si algo sucediera? Bueno, vamos solo por
el bien de la discusión, subiendo otra imagen, ¿no? Y esos van a
ser los pulgares para abajo. Ahí vas. También
va a ser un pulgar hacia abajo. Vamos a crear esto también. Esto va a ser
subido y va
a conseguir una nueva identificación por aquí. Entonces ahora tenemos un pulgar hacia abajo y digamos solo por
el bien de la discusión, solo
vamos a agregar un guión
local por aquí. Los servicios locales va a
ser el cambiador de imagen, acercar un poco y
solo queríamos obtener la imagen. Entonces la imagen es,
por supuesto, script dot parent debería ser bastante
autoexplicativa. Y luego vamos a
decir ImageView.image. Por favor, tenga en cuenta
que la variable se llama imagen con una I. minúscula Y la imagen I en mayúscula es
en realidad la propiedad
aquí que apunta a
cualquier imagen que
tengamos es igual a. Y
esto es muy importante. Básicamente queremos obtener la URL
ribulosa para que la imagen sea igual a HTTP colon
slash slash www dot. Los bloqueos son activos com slash, tal signo de interrogación id
es igual y luego puedes hacer un punto punto y luego solo
vas a obtener el ID de la imagen para
obtener el ID de la imagen. Pero solo selecciono
la etiqueta de la imagen y después selecciono la imagen
que quieras, ¿verdad? Puedes, solo puedes
seleccionarlo y luego
puedes copiar el DNI desde aquí mismo. Y luego solo vamos a
asegurarnos de que la imagen por defecto es
en realidad los pulgares hacia abajo. Y entonces básicamente
queremos cambiarlo. Así que vamos a volver aquí. Sólo vamos a
agregar esto aquí mismo. Y eso debería estar bien. Entonces podemos salvar esto. Y se puede ver que en realidad estoy aplicando las ediciones aquí mismo. Y esto es una vez más
salva dos barricadas a la Nube y deberíamos
comenzar con un pulgar hacia abajo. Sin embargo, en realidad
va a cambiar esto a un pulgar hacia arriba
una vez que iniciemos el juego, porque la imagen cambia, tu guión va a funcionar. Y ahí vamos. Ahora en realidad tenemos un
pulgar hacia arriba porque, bueno, claro que cambió
las imágenes aquí mismo. Puedes cambiar la
imagen aquí, ¿verdad? Cuando, cuando
realmente pasa algo, si eres un jugador
muere, quien tal vez lo
cambie a un
pulgar hacia abajo, ¿verdad? Y cuando lleguen
al siguiente puesto de control, puedes cambiarlo
a un pulgar hacia arriba. Ahora bien, tenga en cuenta que se trata un script local y que
la GUI estándar es local. Entonces, si estás tratando de hacer esto a través de un guión normal por aquí, podría ser un poco
más difícil conseguir esto funcione correctamente
por el momento, esta es la forma en que
cambias una imagen, ¿verdad? Y eso en realidad
va a ser todo para esta conferencia de aquí mismo. Espero que
esto les haya resultado útil y
aprendan algo nuevo
y
los veré a todos en la próxima
conferencia. Entonces, sí.
44. (Roblox) Almacenamiento de datos de jugadores con DataStoreService: Bien, continuemos
con los temas intermedios aquí para las puntuaciones de los robots. Y en esta conferencia,
vamos a echar
un vistazo al servicio de
almacenamiento de datos. Por lo que el servicio de almacenamiento de datos es un servicio increíblemente
poderoso que le permite almacenar
datos de jugadores en Roblox Cloud. Ahora esto no
solo es realmente genial, también te permite
hacer cosas como,
bueno, digamos que tu
jugador ha jugado
tu ABI antes de
llegar a la etapa dos. Ahora lo que va a pasar
es que si salieran del juego y se unieran de nuevo, bueno, van a ser engendrados
al inicio otra vez, ¿no? Por lo que perdieron todo su progreso porque su progreso
no se salvó. Pero con el servicio de
almacenamiento de datos, mientras que en realidad podemos
guardar el progreso en y en un archivo en línea, en una mesa en alguna parte, y luego recuperarlo cuando
el jugador se una y otra vez, y eso es exactamente
lo que vamos a hacer. Entonces, vamos a echar un
vistazo a cómo podemos hacer esto. Entonces la superficie en sí en realidad no
es tan complicada en estos
servidores, servidores web solo
vamos a crear un nuevo script y
vamos a llamar a esto el script load checkpoint. Y la forma en que
esto funciona está bien, primero que nada, por supuesto necesitamos un servicio de
almacenamiento de datos de tiempo. Entonces va a haber un servicio local de almacenamiento de
datos. Esto es igual a juego
colon obtener servicio. Y queremos el servicio de
almacenamiento de datos aquí mismo. Eso es increíble. Eso es
lo primero. Lo segundo es que
queremos una tienda específica. Entonces la idea es que en
el servicio de data store, tengas un montón de
diferentes, digamos bins. Y en esas papeleras,
guardas todos los datos. Entonces lo que esto va a hacer
es que necesitamos un local y
solo vamos a llamar a esto el
checkpoint, checkpoint store. Y esto es igual al servicio de almacenamiento de
datos dos puntos obtener Datastore. Y luego quisimos ponerle nombre a esto. Ahora bien, esto es
increíblemente importante. Vamos a llamar a esto
la tienda checkpoint. Cada vez que queremos acceder
a la tienda, necesitamos esta cadena específica. Esta es nuestra clave única para
identificar a qué data store
queremos acceder. Y es increíblemente importante
que hayamos acertado esto, pero tenemos
servicio de almacenamiento de datos y tenemos la tienda de punto de control por aquí que almacena toda
la información. Entonces lo siguiente que
queremos hacer es que quiero hacer lo
mismo que se
hace en la tabla de clasificación. Y esa es la idea del
jugador agregado por aquí. Así que sólo vamos a
conseguir a los jugadores también. Esto suele ser una
cosa que quieres. Y entonces lo que queremos
hacer es que queremos
copiar el
evento del jugador agregado por aquí. Quiero decir, también podemos
simplemente escribirlo, pero a veces puedes simplemente, puedes simplemente copiar esto como bien. Y esto va
a ser una función. Y la función aquí es
obtener datos de punto de control, ¿verdad? Vamos a hacer esto y
pondremos esto en la
conexión de aquí. Así que vamos a conseguir el
punto de control de los datos y también podemos
conseguir el jugador para esto. Por supuesto, ahí vas. Entonces ahora tenemos al jugador aquí también. Y eso es realmente
muy importante porque necesitamos el ID del jugador, ¿verdad? Entonces necesitamos una clave bajo la
cual guardemos todo esto. Entonces la idea es que
vamos a hacer una llave. Entonces esta va a ser
la clave del punto de control. Y esto es igual
a, normalmente lo que quieres
hacer es decir player dot, player ID, y va a hacer punto, punto, y luego haremos dash. Y entonces puedes por ejemplo
decir punto punto otra vez. Y entonces puedes
decir checkpoint e.g y esto
lo va a hacer para que la clave específica para cada jugador porque el ID del jugador es único
para cada jugador, por lo tanto, esto no debería
ser ningún problema en absoluto. Una vez más, sin embargo, esta clave
siempre tiene que ser la misma. De lo contrario no vas
a poder recuperar los datos ni obtener los datos. Va a ser muy interesante. Entonces vamos a
hacer que un dato local igual a cero en este momento, y luego lo haremos
la siguiente leche, un mensaje local de éxito o error que
es igual a la llamada P. Voy a explicar
esto en un momento. En lugar de la llamada P
hará una nueva función. Y esto va a ser datos
iguales a almacén de punto de control. Entonces ahora vamos a entrar, entrar en la tienda, dos puntos, obtener asincrónico. Así que vamos a
obtener cualquier dato
que haya ahí de forma asíncrona. Entonces no vamos a
esperar hasta que esto cargue. Sólo vamos a decir que solo
consíguelo siempre que puedas. Y vamos a
obtener los datos para
la clave de punto de control para el jugador que
acaba de unirse a nosotros. Esa es la idea general. Ahora, después de que se haga esto, bien, esto es muy importante. Queremos comprobar si todo ha funcionado o
no. Entonces vamos a
decir si el éxito, entonces podemos devolver
algo o podemos, podemos hacer es algo que
queremos decir más, ¿verdad? Pero esto significaría
que no tiene éxito, entonces en realidad
queríamos hacer error. Y queremos decir
un error de almacén de datos. No hace falta que se le
llame exactamente así, sino por si acaso. Y entonces queremos poner el mensaje de error aquí mismo, ¿no? Y si tiene éxito, básicamente
podemos proceder. Sólo vamos a
llamar a esto ahora mismo. Proceder a
cambiar, cambiar la tienda, cambiar, cambiar el punto de control, lo
hará en un momento. Pero la idea aquí es
que vamos a leer esta clave por aquí y
va a decir, Oye, solo tira de la
función get asincrónica por aquí con
esta clave en particular, que básicamente
nos consigue lo que esté almacenado bajo esta clave dentro
de nuestro almacén de datos. La razón por la que estamos usando peek hole que realmente puedes ver ejecuta la función del proveedor
y capta cualquier error. Entonces la idea general es
que por eso
tenemos ese éxito y
este error aquí mismo, el código P básicamente
solo se asegura de que si hay algún error que
ocurre en el get acing, no estás
conectado correctamente a Internet o hay una interrupción o los servidores se bloquean o
lo que sea, va a bloquear esto
bajo el mensaje de error. Y si todo fue
exitoso y sólo
vamos a conseguir un verdadero
bajo el éxito. Ese es Leary, todo lo que hacemos. Entonces ahora mismo por el momento. Yo solo quería
imprimir un éxito por aquí. Si esto tiene éxito y una flecha blanca justo
aquí, si no lo es. Entonces, solo guardemos esto
por el bien de la discusión. Vamos a ejecutar esto dentro
del juego y
verás lo interesante que va a pasar
si jugamos esto ahora, así como esto, puedes ver antes que nada, el ID del jugador
ni siquiera es miembro de la cuenta de un jugador
y eso está bien porque en realidad
llamó User ID. Yo hice un bucle, veo a su
líder que debería ser ID de usuario. Eso es lo que queríamos usar. Y entonces es la misma
idea que el ID del jugador. ¿Y si hacemos esto ahora? Ahora
ya obtenemos este error y
en realidad obtenemos un éxito. Ahora eso es genial, ¿verdad? Entonces hemos cargado algunos datos
en eso Eso es interesante. Ahora la verdadera pregunta es como, ¿
en qué cargamos, verdad? Entonces, si aquí solo decimos datos de
éxito, vamos a conseguir algo
interesante, ¿verdad? Entonces, ¿qué datos
cargó realmente desde el get asincrónico? Bueno, vamos a echar un vistazo. Y se puso, porque puedes
ver que tiene un nulo, ¿verdad? Entonces porque a la vista de
los datos de aquí, hemos escrito molino,
eso no es del todo correcto. Eso no es exactamente
lo que queremos. No queremos que esto sea nulo. Entonces lo que podemos hacer es que podemos
decir n datos básicamente diciendo, bueno, debería haber algo escrito en lugar de los datos. De lo contrario no estamos
realmente exitosos. Como si no fuera un éxito. Si los datos son nulos,
eso no está bien, queremos, así que
hagamos esto, ¿verdad? Entonces solo si el éxito
y los datos están presentes, entonces queremos
imprimir con éxito. De lo contrario queremos
imprimir el mensaje de error. Y si tuviéramos que
cargar esto ahora mismo, puede ver que
todavía estamos recibiendo un nulo, pero ahora en realidad estamos
obteniendo el nodo para pero ahora en realidad estamos
obteniendo el nodo para
el mensaje de error
porque curiosamente, no
hay
mensaje de error, ¿verdad? Bien, entonces eso es interesante. Queremos parar y queremos cambiar esto
a otra, si no éxito, entonces haz esto y luego
vamos ahora lo hemos hecho. Lo he hecho específicamente
así para que puedas pasar por la lógica por qué
necesitas cada
paso individual, ¿verdad? No quieres
realmente tener éxito si los datos son nulos, ¿verdad? Eso no está bien,
eso no es correcto. Solo quieres dar salida
al mensaje de error
si no tiene éxito
porque entonces sabemos, bien, todo está bien. Entonces, si se vuelve un
poco más complicado, esa es solo la naturaleza de
los pasos intermedios ahora, porque estamos usando muchas
más cosas y estamos
conectando muchas más cosas. Pero por el momento, lo
mantendremos así. Ahora se procedió a
cambiar el puesto de control. Ahora, ¿cómo haríamos esto, verdad? Entonces el checkpoint se hace en el
script checkpoint aquí mismo. Y esto es
realmente genial porque el script de punto de control
realmente crea un, como puedes ver, un punto
de control de datos aquí mismo. Ahora podemos literalmente simplemente tomar esto y realmente
cambiar esto. Así que podemos simplemente hacer esto,
podemos tomar esto, y vamos a
hacer lo mismo, ¿verdad? Entonces, si
leemos algo con éxito en, vamos a hacer
una nueva instancia. Ahora en este caso, el, esto es un, este es el dato del
punto de control aquí mismo. Entonces, lo que vamos a hacer
es que realmente queremos hacer exactamente
lo mismo aquí mismo. Así que voy a llegar hasta esto, ¿
verdad?
Entonces esta de aquí. Ahora lo que vamos a hacer es
simplemente vamos a echar esto a otra función porque creo que mantener la pantalla
es un poco mejor. Este va a ser el sistema de
creación de puntos de control. A lo mejor sistema
no es la palabra correcta aquí, pero eso va a estar bien. Podemos cambiar el nombre
de esto en un momento. Datos de puntos de control.
Claro, eso está bien. Datos de puntos de control de tarifas. Entonces vamos a
llamar a esto aquí mismo. Y la idea es
que esto sólo
se llame una vez, ¿verdad? Porque si los
datos del punto de control ya son creados por la primera persona que se
agrega al servidor. No queremos volver a
crearlo, pero si no lo es, entonces
sólo vamos a crearlo. Y si eso es lo correcto,
después de que hayamos creado esto, ahora
queremos hacer mientras
exactamente la primavera, ¿verdad? Entonces queremos cambiar eso. Queremos obtener el hijo
del ID de usuario aquí mismo. Y una vez más, lo que realmente
podemos hacer es que básicamente podemos obtener todo esto excepto el
jugador agregado aquí mismo. No queremos eso, sólo
queremos esto. Y entonces esta va
a ser otra función. Y esa función
va a ser un get o create checkpoint o player. Y esto va a
quedar así y luego solo agrega un final por aquí. Y eso es muy
importante. Ahí vas. Ahora no tenemos
los datos de los puntos de control. Eso está bien.
Podemos pasar esto. No tenemos al jugador. Podemos, definitivamente podemos
pasar al jugador. Eso va a ser
absolutamente sin preocupaciones. Entonces, si tuviéramos que llamar a esto get o crear el
nombre largo, pero eso está bien. Para que podamos pasar el
jugador por aquí. Ahí vas. Eso está bien. Y luego los
datos de punto de control no hemos pasado. Entonces pensemos en cómo básicamente
podemos conseguir esto. Entonces podríamos hacer algo muy
interesante y ese podría ser el
regreso de esto, ¿verdad? Para que podamos devolver los datos del
punto de control aquí mismo. Y podemos regresar a los datos del
punto de control aquí mismo. Y podemos hacer un
punto local de datos, ¿verdad? Y entonces solo podemos pasar
esto. Ahí vas. Y entonces sólo vamos a
decir datos puntuales aquí mismo. Entonces, por ejemplo, esa puede ser una manera
muy fácil de hacer esto. no lo has
pensado así, pero podrían,
por supuesto , eso estaría
totalmente bien, ¿verdad? O hemos creado los datos del
punto de control aquí mismo, o nosotros o los leemos desde los datos
del almacenamiento del servidor. Y si ese es el caso,
entonces simplemente lo devolvemos. Y porque es necesario
en esta función, podemos simplemente pasar
esto aquí mismo. Eso es todo lo que hay para ello. Sin embargo, lo único
que por supuesto, también
tenemos que hacer es asegurarnos de que el valor del punto de control sea igual a cualquier
dato que acabemos de leerlo. Este va a ser el puesto de control
almacenado. Creo que ese nombre es
bueno. Eso va a ser bueno. Y sólo vamos
a establecer que iguale
el valor de la misma al punto de control de
la tienda. Y sólo vamos a pasar
esto aquí también. Eso va a ser datos. Ahora bien, en este caso,
en realidad no necesitamos
verificar si un dato es nulo o
no. Porque hemos dicho
si el éxito y los datos, ya
estamos comprobando si los datos son nulos
o no, ¿verdad? Porque si N datos básicamente significa que no es nulo,
esa es la idea general. Entonces para eso, básicamente
obtenemos todo lo que
necesitamos. En este caso. Entonces, si estamos leyendo
algo en, en realidad
estamos obteniendo
los datos correctos a través de los servidores de puntos de control. Si tuvimos éxito y probablemente se leyeron
los datos, estamos imprimiendo un
éxito. Pues bien creando los
nuevos datos de punto de control en el almacenamiento del servidor. Se trata de las tiendas de servidores locales. Entonces este es el servidor en sí en el que estamos
jugando en este momento, no el mismo data store. Esas son dos cosas completamente
distintas. Ahora tienen un nombre muy
parecido, ¿no? En este caso, en realidad
tienen el mismo nombre, ¿verdad? Tenemos los datos, los datos del
punto de control aquí mismo, almacén
Check Point aquí mismo. Y tenemos el punto de control con los datos aquí de la tienda. Entiendo que hay
algunos niveles de abstracción que hay
que tener en cuenta. Al mismo tiempo,
el almacenamiento de datos es básicamente como un, un gran viejo, Ese es el archivo que en
algún lugar del servidor muy, muy lejos que ni siquiera
sabes dónde está esto, ¿verdad? Ese es el archivo. Puedes acceder al
archivo obteniendo el servicio y luego
obteniendo una tienda específica. Esto es como conseguir un archivador
específico. Digamos que
sacas
un archivo específico de ese archivador
verificando el id de usuario con el punto de control de
aquí, esa es la clave. Y luego obtienes esos datos
de ahí justo en
esos datos, por ejemplo, si son tres por el bien del
argumento, si esto es tres, entonces estás creando en el servidor que estás
jugando en este momento, toda esta locura aquí
mismo,
y luego diciendo, bien,
nuestro valor de y luego diciendo, bien, punto de control que
el jugador debería ser pequeño, eso es tres, y eso es más o menos
lo que somos haciendo aquí. No obstante, una gran cosa, y esto es lo
que no se hace. No estamos ahorrando nada. Estamos ahora mismo,
solo lo estamos leyendo en, bien, Así que también podemos
leer algo. Así que hagamos otra
función por aquí, y vamos a llamar a esto
los datos del punto de control establecido. Hagamos esto en realidad. Ahí vas con el jugador
específico del bosque una vez más, y eso va a ser jugadores eliminación de capa
oscura. Esto se dispara cuando un jugador
está a punto de abandonar el juego. Muy importante, la
eliminación de colon conectar. Y este va a ser el conjunto de datos de puntos de control aquí mismo. Y sin los paréntesis,
claro, ahí tienes. Entonces, ¿cómo configuramos los datos del
punto de control? Bueno, antes que nada, necesitamos
el mismo punto por aquí. Entonces eso es
lo que necesitamos. Ahora en realidad ya necesitamos el nombre del
puesto de control. Entonces digamos que este es
el get o create, el checkpoint para el jugador. Ahora bien, esto realmente establece
el valor para nosotros, que no es exactamente lo que queremos. Entonces lo que podemos hacer es conseguir esta parte en particular por aquí. Entonces deberíamos conseguir que este sea
el punto de control real. Ahora no tenemos
los datos en estos momentos. Eso está bien. Podemos crear los
datos de punto de control ahora en realidad quiero renombrar esto para también hacer obtener o crear datos de punto de control porque esa es una
forma más precisa. Y vamos a
cambiar esto justo aquí mismo. Y una vez más, solo podemos
obtener los datos del punto de control. Al hacer esto, podemos simplemente decir obtener o crear datos de
punto de control, encontrar el primer hijo
del ID de usuario aquí mismo. Y ahora tenemos el punto de control y el valor va a ser, estos van a
ser los datos que se supone que se van a guardar. Valor de punto de control y el ego. Ahora, ¿cómo guardamos esto? Si bien hacemos lo
mismo, hacemos un
mensaje de error de éxito local igual a llamada P, haciendo una nueva función aquí. Y entonces vamos a
decir tienda Check Point. Este es nuestro conjunto de
dos puntos de Datastore asincrónico. Vamos a pasar
la clave de punto de control, y luego pasaremos los datos. Y ahí tienes. Y eso debería ser todo lo
que necesitamos. Ahora claro,
también deberías hacer un éxito si no. Entonces queremos dar salida a un
error y vamos a decir, no se pueden guardar correctamente los datos y luego
sacar el mensaje de error aquí, solo para que tengamos esto, siempre es muy importante
bloquear tus errores. Y ahora cuando un
jugador es removido, correcto, cuando abandona
el juego, en teoría, debería guardar el punto de control y cuando el reincorporarse al juego, Debería conseguir ese punto de control
que se guardó, correcto, los datos que se guardaron, y eso debería ser
prácticamente todo lo que necesitamos aquí. Ahora bien, esto podría parecer bastante complicado
por el momento. Ahora lo es, ¿verdad? Tenemos como
múltiples funciones. Estamos haciendo muchas cosas
diferentes. Aquí tenemos alguna lógica
de ramificación. Entiendo que
esto es bastante en básicamente asimilar
al mismo tiempo. Es por ello que se trata de los temas
intermedios. Se vuelve cada vez más
complicado a medida que avanzamos. Pero ojalá la lógica
general sea sólida. Así que solo guardemos esto y veamos realmente
si todo funciona. Podría haber una
flecha aquí o allá, pero creo que en general
esto debería estar bien. Y entonces voy a
explicar otra cosa que aquí es bastante importante. Así que vamos a unirnos. En teoría, deberíamos
unirnos en la etapa cero, todo debería estar bien
y no hay errores presentes, y eso es absolutamente asombroso. Entonces, si ahora fuéramos a seguir
aquí mismo e ir aquí, ahora estamos en la etapa uno. Si ahora paramos esto por
ahora, guarda los datos. Ahora en realidad
obtenemos esto y eso es una especie de guardar los datos, no se puede almacenar instancia
en el almacenamiento de datos. Recurren a aceptar
únicamente caracteres UTF-8 válidos. Bien, eso está bien. Entonces la pregunta aquí
es ¿cuál es el valor real
que está tratando de salvar? Entonces eso es lo siguiente. Oh, sí, esto es en realidad, ya
sé cuál es el problema. Por supuesto, si
realmente volvemos a la lógica aquí
del script de checkpoint, el valor en check point aquí son solo las ubicaciones de
spawn. En realidad queremos el valor del
número de punto de control aquí mismo, porque eso no es una cosa
que realmente se guarde. Entonces si hacemos lo siguiente, si entramos aquí y guardamos
punto de control punto valor punto, ahora en realidad estamos
haciendo esto correctamente. Y lo mismo
va en el otro sentido. Ahora, sólo nos estamos
topando con un problema. Ahorrar es absolutamente ninguna preocupación. Entonces ahorrando podemos hacer esto, no hay problema alguno, pero cargar ahora es un
poco más difícil. Simplemente por
el hecho de que bueno, ahora mismo conseguimos el
número para el puesto de control. Bien. Eso está bien. Pero, ¿cómo consigues
ese puesto de control? ¿Cómo se obtiene el
punto de control correcto para el número? Ahora lo que puedes hacer es que tenemos este
script de numeración de
puntos de control muy práctico aquí mismo, ¿verdad? Y eso en realidad podría resultar mucho
más útil de lo que piensas, porque aquí mismo
metemos a los hijos de todos los puntos de control
con esto. Entonces esto debería ser en realidad
todo lo que realmente necesitamos. Estoy pensando en
la idea de hacer una mesa por aquí, ¿verdad? Entonces estos serían
nuestros puntos de control, que es igual a una mesa
que está vacía en este momento. Y luego puedes hacer
puntos de control de inserción de puntos de tabla. Y entonces el valor
va a ser, va a
haber
conteo y el valor va a ser el propio
punto de control. Así que eso va a ser el premio mayor. Creo que esta forma más inteligente hacer esto probablemente es entrar en el servicio de
script del servidor aquí
mismo y hacer un script de
módulo, ¿verdad? Vamos a hacer una nueva, esta va a ser
nuestra mesa de puntos de control. Digamos que en realidad
vamos a cambiar el nombre de esto a
los puntos de control también, ¿verdad? No girar los
puntos de control aquí mismo. Y ahora lo que deberíamos
poder hacer es en lugar del derecho de
numeración de los puntos de control, cuando podamos requerir esto. Entonces esa va a ser nuestra mesa. Llamemos a este
puesto de control mesa orilla. Esto es requerir. Esta va a ser la tabla de puntos de control de
puntos de servicio de script de
servidor de juegos . Y la tabla de puntos de control, deberíamos poder
hacer lo siguiente. Ahora, inserte el punto de control del contador de
la tabla del punto de control. Entonces ahora estamos insertando
cosas en la tabla, ese es el
script del módulo, ¿verdad? Y lo que podamos hacer,
solo guardemos esto por un momento. Y dentro del punto de control de
carga aquí, podemos conseguir esto también. Hay los puntos de
picoteo locales iguales a
requiere tabla de puntos de control de puntos de
servicio de script de servidor de juegos. Y esto
sería entonces puntos de control,
corchetes, punto de control de tienda. Ahí vas. Y creo que
esa es probablemente la forma más limpia de hacerlo
realmente. Entonces el éxito uno está
cargado, está bien. Vamos solo por el
bien de la discusión, estamos por aquí, y
hagamos esto. Entonces ahora tenemos uno cargado,
vamos a parar. Esta es una caja fuerte, Eso está bien. Volvamos a jugar y
seguimos desove al inicio,
lo cual es muy interesante. Sin embargo, no estamos
recibiendo ningún error, lo cual en realidad es bastante bueno. Sucede inesperado. De hecho, podríamos tener que
tomar el carácter agregado blanco aquí mismo en
nuestro script de carga. Y pondría eso
justo después de que estemos estableciendo el valor aquí mismo. Creo que esa sería la idea de esto y
eso debería hacerlo porque el personaje
agregado aquí debería
llamarse después de agregar al
jugador. Así que intentemos agregar esto bajo el valor de
que ya has cambiado la
ubicación de desove porque eso es lo único que realmente
necesitamos hacer, ¿verdad? Solo necesitamos gastar para
cambiar la ubicación de desove. Ahí vamos.
Inmediatamente funciona. Eso es absolutamente asombroso. Así que puedes ver
a veces hay un poco del
***** aquí mismo. Entonces si vas a dos, puedo saltar de
él y voy a
responder a dos mientras
estoy en el juego, ¿verdad? Entonces vamos a
responder en la etapa dos. Ahí vas. Y si dejo esto bien, ahora
estamos salvando a los dos otra vez. Una vez más, no hay errores. Absolutamente increíble. Y si volviera a jugar, no sólo vamos a
ver el éxito para aparecer, también inmediatamente van
a comenzar en la etapa dos. Absolutamente increíble. Entonces lo que es muy importante
aquí es que se puede ver a veces
hay las conexiones. Hay muchas
conexiones que a veces
son difíciles de desenredar. Se puede ver como la forma en
que hicimos esto, ¿verdad? Teníamos una, ahora tenemos una mesa de punto de control por
aquí como script de módulo. Y estamos guardando los puntos de control a través del
script de numeración de puntos de control aquí mismo. Y luego también está el script
load checkpoint que hace un montón de cosas, ¿verdad? Entonces voy
a tratar de resumir esto en como 2 min para que
sea comprensible. Entonces tenemos un servicio de
almacenamiento de datos. Este es un archivo, y el archivo almacena muchos, muchos archivadores diferentes. Ahora el acomodo final,
se puede pensar en esto
como un data store. El data store es
un archivador. Esto puede contener muchos
archivos diferentes. Ahora una vez que tengamos nuestro almacén de datos, entonces
podremos acceder a ciertos
archivos a través de una clave, ¿verdad? Para que podamos obtener esta llave. En nuestro caso, estamos
haciendo una clave usando el ID de usuario y luego simplemente
echamos el punto de control por aquí,
solo para que tengas esto. Entonces estamos obteniendo los datos de este archivador en particular diciendo puntos de control almacena, este es el data store, dos puntos se vuelven asincrónicos, y luego
pasando la clave cuando eso devuelve los
datos específicos almacenados en con esa clave. Ahora bien, en nuestro caso,
este va a ser el número asociado a
nuestro puesto de control, ¿verdad? Entonces, o va a
ser el primer punto de control, segundo punto de control,
así sucesivamente y así sucesivamente. Es verdad, ¿verdad? Y si hemos
recuperado con éxito esos datos, entonces estamos creando
los datos del punto de control, y luego estamos creando el punto de control para
el jugador real. Ahora bien, estas dos funciones de
aquí son muy similares a las funciones dentro
del punto de control real. Si miramos el
script checkpoint y luego
llegamos al
módulo checkpoint por aquí. Va a ser este
de aquí,
justo donde básicamente
solo se crea el mismo modelo, ¿verdad? Y luego llamar a un dato de
punto de control y reclutar el mismo
valor de objeto en esto también. Y la idea del valor del objeto es que guarda el puerto real, lee la parte del punto de control real, el puerto físico
dentro del juego. Entonces, si entramos aquí,
guarda esta parte en particular como el punto de control donde
el jugador debe responder. Y ahora queremos conseguir
esto con el número. Ahora el tema es el número y el puerto de chequera real o un puerto completamente
separados entre sí. Realmente no tienen nada que
ver el uno con el otro, lo cual es una especie de problema. La forma en que resolvemos
esto es que mientras estamos numerando los
puntos de control, ¿verdad? Mientras estamos numerando
los puntos de control, agregando el valor int a ellos, también los
estamos agregando a una
tabla que tiene el conteo. Y si tenemos el
conteo, entonces podemos obtener la parte del checkpoint. Y al hacer eso, entonces
podemos requerir los
puntos de control aquí mismo, el script del
módulo checkpoint table. Podemos usar puntos de control, almacenar punto de control para obtener la parte
real de él por aquí, derecho, el objeto del juego,
el objeto real. Y luego solo estamos
diciendo, oye, una vez se agrega
el personaje, entonces simplemente cambia el
marco del personaje, que es básicamente la
posición del personaje
al propio punto de control
más para arriba arriba. Así que básicamente
vamos a generar un poco
más alto que el punto de control, caer sobre él. Ahí estamos. Cuando ahora estamos saliendo del juego, cuando se
está retirando al jugador, entonces
estamos tomando la misma llave, básicamente
estamos desbloqueando
el archivador. Otra vez siendo como desbloquear
el archivador, obtener el inicio
del archivo y decir, oye, ahora pon este archivo a los datos
que especificé por aquí. Y la idea es que
vamos a conseguir el nuevo objeto, el objeto que
actualmente es nuestro punto de control. Vamos a sacar el valor
del número ahí y
bam, ahí vamos. Vamos a obtener el número
de eso y luego guardarlo bajo nuestra llave una vez más, una nota más importante aquí. Ahora estamos
hablando de guardar datos. Y es increíblemente
importante que seas muy cuidadoso con la forma en que guardas los datos y que probablemente
agregues las cajas fuertes y puntos de control
y errores y todo esto. Porque cuando los datos se van
por tu negligencia, entonces la gente podría no estar contenta, especialmente si hay certeza si hay
robots involucrados. En este momento no tenemos
ningún robot involucrado, así que no debería ser tan malo. Pero solo digo que sean cautelosos y tengan mucho
cuidado con esto. También recomiendo encarecidamente leer sobre el servicio de almacenamiento de
datos, en las referencias de API
en el propio Roblox. Esa es una
lectura muy, muy recomendable para esto. Pero aparte de eso,
eso va a ser todo para esta conferencia de aquí mismo. Espero que esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
45. (Roblox) múltiples lugares en un solo juego: Bien, bienvenidos de nuevo a
la sección intermedia aquí para el curso de robótica. Y en esta conferencia, vamos
a estar echando un
vistazo a cómo puedes agregar múltiples lugares a
una experiencia. Entonces para esto, la
idea general es que cuando
volvamos a nuestro
panel de control del Creador por aquí, bien, nuestras creaciones,
tenemos nuestro ejemplo por aquí. Sólo como ejemplo,
sólo vamos a usar esto. Podemos adentrarnos en esta experiencia
particular
que esta creación, y podemos agregar diferentes lugares. Ahora bien, si vamos a lugares, literalmente
podemos agregar
un nuevo lugar por aquí. Me va a dar
algunos lugares que
ya
he publicado previamente. Puedes ver algunos de ellos
puedes agregar porque son lugares
almacenados y algunos
de ellos puedes agregar. Entonces, ¿cómo básicamente
hacemos esto? Bueno, lo que puedes hacer es
dentro de Roblox Studio. Entonces, si volvemos por
aquí, lo que podemos hacer, por ejemplo, es que solo vamos a
conseguir tal vez un terreno plano, así que va a verse un
poco diferente, así que no tienen algo un poco diferente
para jugar con esto como el césped
de aquí en este caso, vas a decir, bueno, bien, ¿qué vamos a hacer con esto? Así que sólo
vamos a salvar esto. Y lo que puedes hacer es que o bien
podemos hacer un nuevo juego, podemos guardar esto como un
juego nuevo si
presiono Control S, o puedo decir actualizar un juego
existente y puedo
entrar aquí y puedo decir
agregar como un nuevo lugar ellos. Entonces voy a decir esto,
voy a crear. Ahora el nombre va a ser
literalmente juego sin título, pero eso está bien
porque
todos podemos cambiar eso en un poquito. Eso no es nada de qué preocuparse. Así que ahora podemos volver a nuestro tablero si
realmente recargo esto. Ver carpinteros,
por favor, número diez. Ahora claro que ese
no es un buen nombre. Lo que vamos a hacer es
que solo vamos a hacer clic en el botón Editar en estudio y luego debería abrir
Roblox Studio nuevamente. Ahora una teoría, esta debería ser una instancia diferente a esta. En realidad no deberían chocar. Ya ves que estamos
cargando el lugar y este es el lugar real, la experiencia RB o
la creación de RB, ¿verdad? Entonces ahora se puede ver que
se llama contar minerales
juega número diez. Ahora ese no es exactamente el
nombre que tenía en mente. Así que podemos ir a la configuración del
juego y puedes ver que ahora podemos debajo los lugares realmente
cambiar esto también. Así se puede ver que hay diferentes
jugadores, jugadores también. Y aquí podemos
configurar la obra. Entonces digamos que también solo 16, y esto va
a ser el pasto es más verde. Ahí vas. Y puedes ver que
hay un montón de cosas
diferentes que también
puedes hacer. Sólo vamos a salvar esto.
Y si entonces guardamos esto, nada cambió,
bien, está bien. Pero entonces podemos publicar esto y en
realidad va a publicar, ¿verdad? Entonces se puede ver publicamos
los cambios, sin embargo, ahora, si volvemos a las correlaciones por aquí
a nuestro ejemplo será, si recargamos esto, se puede ver ahora el
nombre real es una hierba es más verde y también cambiamos algunas de estas cosas aquí
mismo, ahora mismo. Aquí no pasa nada ahora mismo, claro, porque aquí no se agrega nada, pero es un lugar diferente
dentro del mismo juego. Entonces, como siempre, una cosa a
tener en cuenta leer puedes tener múltiples lugares
dentro de una puerta. Siguiente conferencia,
veremos cómo se puede
distinguir entre los dos lugares
diferentes. De lo contrario, espero
que esto te haya resultado
útil y aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
46. (Roblox) Teleport entre diferentes lugares: Bien, bienvenidos de nuevo a
la sección intermedia aquí para el curso robusto. Y en esta conferencia
vamos a estar viendo cómo podemos teletransportarnos
de un lugar a otro extremo
en realidad es bastante
directo mediante el uso del servicio de
teletransporte. Entonces para esto, lo
que voy a hacer es que voy a copiar mi círculo por aquí
solo para que tengamos
algo a lo que básicamente ir. Y cuando llegues a este círculo, vamos a teletransportarnos
al lugar que básicamente
hemos agregado
a nuestra experiencia,
a nuestro RB aquí la última vez, esto sucedió en
la última conferencia, este va a ser el círculo de
teletransportación y
vamos a hacer clic en el pequeño plus de
aquí agregando un guión. Y el guión va a
ser el guión de teletransporte. Y esto nos va
a teletransportar. Para la teletransportación,
necesitamos el servicio de teletransporte. Esto va a ser igual
a juego colon obtener servicio. Entonces esta es por supuesto la
forma en que conseguir un servicio, y este es el servicio de
teletransporte. También queremos conseguir a los jugadores, esto solo van a
ser jugadores de juego. Y entonces queremos unos teletransportadores. Entonces los teletransportadores son el
verdadero objeto de juego, ¿verdad? Circulan en este caso. Entonces esta va a ser
la orden del cajero y esto va a ser igual
al script dot parent. Y luego queremos el ID del lugar. Entonces esto es lo
importante, ¿verdad? La identificación del lugar es una
identificación única para tu lugar. Y deberías ser
capaz de conseguir esto yendo justo aquí, ¿verdad? Entonces este es nuestro lugar al
que queremos ir. Y ya ves, bueno,
¿cómo conseguimos esto? Bueno, sólo entra aquí. También puedes cambiar
el nombre aquí, la descripción aquí son géneros, todo eso, y eso está bien. Sin embargo, necesitábamos la
identificación del lugar. ¿Cómo conseguimos esto? Bueno, puedes mirar la
URL por aquí y
puedes ver que esta es la experiencia
y este es el lugar. Entonces esta sería nuestra identificación de lugar. Sólo vamos a copiar
esto y luego vamos a volver a los
bloqueos de carretera por aquí. Y verás que solo
podemos hacer de esto un, en realidad no queremos
hacer de esto una cuerda. Queremos hacer de este un número que en realidad es bastante importante. Y entonces aquí
sólo vamos a hacer una función local
tanto en parte toque. Entonces vamos a hacer un evento touch por
aquí en este caso, otra parte y esto
va a hacer, esto va a llevarnos antes que
nada al personaje. Esto es solo otra parte punto
padre, ese es nuestro personaje. Y entonces sólo vamos
a decir jugador es igual a los jugadores colon, obtener jugador de carácter, pasando en el
personaje aquí mismo. Y entonces si hay un jugador, lo que vamos a hacer
es que vamos a decir teletransporte servicio colon teletransporte. Cuando un teletransporte al
lugar ID aquí mismo, puede ver que este es el
ID de lugar y vamos a
teletransportarnos, por supuesto, el jugador ahora jugadores, pero el jugador singular que
acaba de tocar esta parte
en particular. Y vamos a
decir teletransportarse o punto tocó Polonia y conectar. Y luego sólo
vamos a agregar la parte tocada sin los paréntesis. Y ese va a ser
el guión del teletransporte. Así que vamos a guardar eso. Y eso es prácticamente todo
lo que tenemos que hacer en este caso. Pero si ahora jugamos, en
realidad debería estar desove en etapa dos porque esa
fue la última vez, bueno, lo último que se salvó, y pueden ver que
estoy en la etapa dos, así que esto es
lo genial de la tasa de ahorro. Esto realmente guarda mientras que todos
los datos diferentes incluso
después de varios días. Entonces eso es lo
increíble ahora, claro que sí tengo que
vencer el nivel de aquí, pero creo que voy a estar bien
por aquí. Ahí vas. Y una hora en la etapa cinco. Y ahora cuando toque esto, debería ser teletransportada. Entonces vamos a ver. Así que estamos recibiendo un
error aquí mismo. Eso está totalmente bien porque, y puedes ver fallar el teletransporte porque no puedes
teletransportarte en Roblox Studio. Esa es la primera cosa muy
interesante en la que pensar,
pero no hay ningún problema al respecto
porque lo que podemos hacer
es que simplemente podemos detener esto y luego solo
podemos publicar esto a Roblox tarifas vamos
a publicar esto por ahora. Todos nuestros cambios son
publicados en Roblox. Y si ahora vuelves a
nuestras creaciones por aquí, podemos volver a
la experiencia, al RB aquí mismo. Y sólo vamos a
decir vista sobre los bloqueos viales. Y el modo
va a jugar esto ahora mismo, Roblox lo abrirá. Esto ya no es Roblox
Studio, sino bloqueos de carreteras. También tendrás que
probarlo en Roblox. Entonces esto es algo muy
importante a tener en cuenta, ¿verdad? Si tienes, cuanto más
complejo sea tu juego, básicamente, más
tendrás que hacer también en lugar de barricadas. Y fuera de Roblox Studio, quiero decir, claro que tiene
sentido, ¿verdad? Quieres, quieres
probar continuamente tu juego también para detectar cualquier
bicho y cosas así. Entonces lo que puedes ver,
sigo en la etapa cinco porque, bueno, sigo en la etapa
cinco, eso es genial de verdad. Y ahora si entro aquí, boop, bien, va
a tomar un momento. Y se puede ver que el
pasto es más verde. Bam. Tardó un tiempo. A veces lleva un poco de tiempo
cargar. Pero ahí vamos. Ahora estamos en un lugar diferente. Ahora, por supuesto,
no hay nada aquí, pero esto es realmente
increíble porque esta es la forma en que básicamente
puedes conectar múltiples lugares
diferentes. Puedes hacer varios niveles
diferentes o puedes hacer múltiples instancias
diferentes. Hay tantas maneras en las que básicamente
puedes usar esto, pero puedes hacer múltiples Abby que se
interconecten entre sí. Puedes hacer quiero decir, hay
toneladas de cosas que
básicamente puedes hacer con esto agregando múltiples lugares
diferentes. Es realmente genial. Y esa es básicamente
la idea de un teletransporte a diferentes lugares
dentro de tu experiencia. Muy chulo. En efecto, eso va a ser para esta
conferencia de aquí mismo. Espero que esto te haya resultado útil y
aprendas algo nuevo y los veré a todos
en la próxima conferencia. Entonces, sí.
47. (Roblox) a dónde ir desde aquí: Bien, bienvenido de nuevo a
la sección intermedia aquí, más curso de Roblox. Y en esta conferencia, sólo
vamos a hablar de dónde ir a continuación, ya que ésta es básicamente la última conferencia
aquí en este curso. Y la idea es que qué, ¿a
dónde quieres ir después? Entonces una cosa en particular que simplemente no puedo
recomendar lo suficiente, y ya he
hablado de las referencias de la API de Roblox Engine aquí
mismo, que tiene todas
las clases, correcto ,
como referencia, tienes
todos los tipos de datos. Básicamente todo lo
que quizás quieras tener está aquí. También hay algunas guías
que pueden ser realmente útiles. Esto básicamente te ayudará a construir una
base aún mejor de la que
ya tienes después de haber
pasado por todas las
conferencias anteriores. Además, por supuesto,
una gran cosa es que
más aprenderás haciendo. Entonces. Esto básicamente significa que solo sigas probando cosas
diferentes. O quiero agregar esto,
quiero hacerlo para que el jugador sea
disparado al cielo. Y entonces XYZ sucede dando pasos
continuos hacia adelante, podrás aprender
aún más en el futuro. También quiero hacer un curso
intermedio a avanzado. Sin embargo, esto aún no está
disponible tan pronto como lo está. Serás notificado, por supuesto, y los apoyos a ti por apegarte a través de
esta perseverancia es lo mejor que puedes
tener a
la hora de aprender
algo como esto. Porque al final, Roblox scripting y
programando en sí mismo, puede ser bastante
desafiante y bastante puede ser bastante
desafiante y bastante
complicado, pero lo
apestas. Así que estoy muy orgulloso de
ti y me emociona ver qué juego de barricadas te va a
ocurrir Aparte de eso, muchas gracias por ver. Una vez más, si esto te
fuera útil, agradecería mucho
una reseña de tu parte. De lo contrario,
ojalá te vea en el próximo curso. Así que sí.