Los arreglos se pueden combinar con bucles, como mientras y para , para repetir el mismo código para cada valor indexado.Por ejemplo, teletransportar a cada jugador en un array a un nuevo lugar o hacer que un array de partes se desencadenar.
Para explorar la repetición a través de los arrays, crea un camino de puente desaparecedor en el que las partes se colocan en un array y luego se hacen desaparecer una por una.
Repetir a través de un matriz/lista
Para el proyecto, encuentra o crea un conjunto de tres partes para desaparecer. Las partes deben estar todas ancladas.
Crea tres partes. Nombre las partes en el orden en que deberían desaparecer, Part1, Part2, Part3.
En ServerScriptService, inserta un nuevo script y crea un array para almacenar las piezas.
local pathArray = {}En una sola línea cada uno, escriba el nombre de las partes en el orden en que deberían desaparecer. Usar una nueva línea para cada valor facilita la leído.
local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3,}
Usa un bucle for con un matriz/lista
Usa un bucle for para recorrer el array y controlar cuán rápido deben desaparecer las partes en el orden en que se indexan dentro del matriz/lista.
Para controlar con qué frecuencia una parte desaparece en segundos, crea una variable llamada VANISH_RATE. Para las pruebas, es mejor mantenerla a un pequeño número.
local VANISH_RATE = 1.5local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3}Crea un bucle for con lo siguiendo: Inicio: partIndex = 1 , el índice del primer valor en el matriz/lista. Fin: #pathArray , el tamaño de ese matriz/lista.
for partIndex = 1, #pathArray doendAsí que hay un retraso antes de que una parte desaparezca, en el bucle, agrega un task.wait() usando VANISH_RATE .
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)endPara que una parte desaparezca, crea una nueva variable llamada whichPart y ponla igual a partsArray[partIndex].Luego, para desaparecer esa parte, establece su propiedad CanCollide en falso y Transparency en 1.
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endCompruebe que partes del camino desaparecen con el tiempo.
Consejos de solución de problemas
Si el puente no desaparece, verifique los problemas posibles a continuación: Problema: Las piezas desaparecen demasiado rápido o se van todas al iniciar.
- Dependiendo de cuán rápido carga tu personaje en la experiencia, las primeras partes pueden ser invisibles.Para abordar esto, agregue una pequeña espera, como task.wait(2) , al comienzo del script.
Codifica el segundo bucle
En este momento, las partes desaparecen para siempre.Para hacerlos reaparecer, crea un segundo bucle que pasará por cada parte y hará que cada pieza sea caminable instantáneamente.
Después del primer bucle, agrega un task.wait() para crear un breve retraso antes de que reaparezca el camino.
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endtask.wait(1)Por tu propia cuenta , intenta codificar un segundo bucle que haga que el camino sea nuevo de nuevo al cambiar la propiedad CanCollide de cada parte a verdadero y la transparencia a 0.Cuando termines, comprueba tu trabajo contra el código siguiente.
-- Reinicia el camino haciendo que todas las partes sean caminables de nuevofor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endPrueba el proyecto para confirmar que una vez que todas las partes desaparezcan, vuelvan.
Repetir con un bucle while
Las partes desaparecen y reaparecen, pero solo una vez. Para que el código siga repitiéndose, anida todo el código dentro de un bucle while.
Al final del script, crea un nuevo bucle while verdadero. Luego, mueve ambos para bucles al bucle while.
while true do-- Hacer desaparecer una parte de la lista en ordenfor partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Espere un segundo antes de que reaparezca el caminotask.wait(1)-- Reinicia el camino haciendo que todas las partes sean caminables de nuevofor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endendAsegúrate de que una vez que todas las partes desaparezcan, reaparezcan.
Se puede descargar una versión terminada del proyecto.
scriptcompletado
local VANISH_RATE = 1.0local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3,}while true do-- Hacer desaparecer una parte de la lista en ordenfor partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Espere un segundo antes de que reaparezca el caminotask.wait(1.0)-- Reinicia el camino haciendo que todas las partes sean caminables de nuevofor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endend
Matices y ipairs()
ipairs() se usa con arrays .El "i" en ipairs() representa "índice". ipairs() se puede usar para repetir rápidamente una operación en muchos objetos, como, digamos, una carpeta llena de partes.
Esto se demostrará agregando rápidamente partículas a toda una carpeta de piezas.
En el espacio de trabajo, crea una carpeta llamada PartsFolder. Añade tantas piezas como quieras.
En ServerScriptService, crea un nuevo script y referencia la carpeta.
Usa GetChildren() para obtener automáticamente un array que liste todos los objetos en la carpeta.
local partsFolder = workspace.PartsFolder-- Obtiene un array que lista las partes en PartsFolderlocal partsArray = partsFolder:GetChildren()Usa in ipairs(ArrayToUse) con el bucle for para recorrer partsArray y agregar partículas.
scriptcompletado-- Obtiene un array que lista las partes en PartsFolderlocal partsArray = partsFolder:GetChildren()-- Añade partículas a cada parte en el matriz/listafor index, part in ipairs(partsArray) dolocal particles = Instance.new("ParticleEmitter")particles.Parent = partend
Prueba y observa cómo flotan las partículas de cada parte en la carpeta.
Resumen
Las bucles se pueden combinar con arrays para trabajar con cualquier número de valores rápidamente.Si desea tener un control exacto sobre lo que le sucede a unas pocas partes y en qué orden, debe codificarse un array con valores específicos.
Para trabajar con muchas partes donde el orden no importa, GetChildren() puede crear un array de los hijos de un objeto.Al utilizar ipairs(), la lista se puede iterar rápidamente sin conocer el tamaño del matriz/lista.