Normalmente, las funciones solo pueden usar la información que tienen codificada dentro de ellas. Sin embargo, a veces, es posible que no sepas de antemano cuál será esa información, o que desees poder reutilizar la misma función con múltiples piezas de información similar. Por ejemplo, si quisieras usar una función para mostrar el nombre de la persona que terminó un curso de obby más rápido en letras gigantes para todos. No sabrás el nombre del futuro ganador hasta que la carrera haya terminado.
Los parámetros son marcadores de posición para la información que deseas darle a la función en un momento posterior. Son como ventanas que te permiten pasar información a la función.
Usa parámetros y eventos para configurar una trampa
Este script creará una parte de trampa que destruye cualquier cosa que toque la parte, incluidas otras partes. Tendrás que usar un parámetro para configurarlo. Ten cuidado de anclar la trampa donde no caiga y destruya cosas de manera no intencionada.
Crea una nueva parte
Se necesita configurar una parte que destruirá cualquier cosa que la toque.
- Crea una nueva parte que no esté tocando nada. Si está tocando algo, podría activarse demasiado pronto.
- En el Explorador, renombra la parte: TrapPart.
- Ancla la parte.
Configura el script
Usa lo que sabes sobre variables y la jerarquía del juego para hacer referencia a la parte de trampa.
Agrega un nuevo script en la parte de trampa. Renombra el script TrapScript.
Elimina Hello World y agrega un comentario descriptivo.
Bajo el comentario, crea una nueva variable que encuentre el padre del script.
-- Destruye cualquier cosa que toque el padrelocal trap = script.Parent
Crea una función con un parámetro
La trampa utilizará una función para destruir cualquier cosa que toque la parte. Para funcionar, la función necesita saber qué tocó la parte. Y eso significa usar parámetros. Los parámetros se escriben dentro de los () que vienen después del nombre de una función. Se ven así:
local function functionName(parameterName)
endLa información real que se pasa a través del parámetro se llama argumento. Crearás una nueva función llamada onTouch() con un parámetro llamado objectTouched que rastreará cualquier cosa que toque la trampa y luego destruirá la parte que toca.
Crea una función local. Puede llamarse de cualquier manera, pero esta lección usará onTouch
local trap = script.Parentlocal function onTouch()endDentro de los (), escribe un nombre para el parámetro. Esta lección usará objectTouched.
local trap = script.Parentlocal function onTouch(objectTouched)endEntre local function onTouch() y end, crea una declaración de impresión. Usarás esto para verificar si algo está tocando la parte en la siguiente sección.
local trap = script.Parentlocal function onTouch(objectTouched)print("Algo tocó la trampa")end
Usa un evento para llamar a la función
Queremos que la función se ejecute cada vez que algo toque la parte. Para hacer que eso suceda, conecta la función al evento Touched. Los eventos son cosas que suceden en el juego. Como un jugador tocando una parte o perdiendo salud. Cuando una función está conectada a un evento, la función se ejecuta cada vez que ocurre el evento.
El evento Touched se activa cada vez que una parte toca otra parte y se puede usar para crear botones, trampas y otros objetos con los que los jugadores interactúan.
Debajo del end de la función, escribe trap.Touched:Connect(onTouch)
local trap = script.Parentlocal function onTouch(objectTouched)print("Algo tocó la trampa")end-- Conectar la función al evento Touchedtrap.Touched:Connect(onTouch)Haz clic en Probar y luego toca la parte. Verifica tu declaración de impresión de prueba: Algo tocó la trampa. Si no puedes ver la cadena en la ventana de Salida, verifica lo siguiente:
- Asegúrate de que la cadena "Algo tocó la parte!" esté entre local function onTouch() y end.
- Verifica que Touched esté en mayúsculas.
Ahora que la función está configurada correctamente, úsala para destruir cualquier cosa que toque la parte. Dentro de la función, después de la cadena, escribe objectTouched:Destroy() El código completo debería ser:
local trap = script.Parentlocal function onTouch(objectTouched)print("Algo tocó la trampa")-- Destruir el objeto que tocaobjectTouched:Destroy()endtrap.Touched:Connect(onTouch)Prueba de nuevo y observa qué sucede cuando la parte es tocada. Tu avatar debería terminar sin pies o brazos. Si la parte toca la cabeza o el cuello del avatar, podría incluso ser destruido por completo.
Resumen
Los parámetros se utilizan para pasar información que normalmente estaría fuera de alcance (donde una función no puede verla), a una función. Mientras tanto, los eventos son señales especiales que se activan dentro del juego cuando sucede algo importante. Diferentes objetos tienen diferentes eventos. Las funciones se pueden conectar a eventos para que se llamen cada vez que se activa el evento. Este pequeño script conectó una función al evento Touched de la trampa, y pasó lo que estaba tocando la trampa a través del parámetro.