Los arreglos se pueden combinar con bucles, como mientras y por , para repetir el mismo código para cada valor indexado. Por ejemplo, teletransportar a cada jugador en un arreglo a un nuevo lugar o hacer que un arreglo de partes se ponga en desencadenar.
Para explorar el looping a través de los arrays, crea un camino de puente desapariciendo donde las partes se colocan en un array y luego se hacen para desaparecer uno a uno.
Ciclo a través de un matriz
Para el proyecto, busque o cree un conjunto de tres partes para hacer desaparecer. Las partes deben tener todas las anclas.
Crea tres partes. Nombre las partes en el orden en que deben desaparecer, Part1, Part2, Part3.
En ServerScriptService, introduce un nuevo script y crea un nuevo array para almacenar las partes.
local pathArray = {}En una sola línea cada, escriba el nombre de las partes en el orden en que deberían desaparecer. Usar una nueva línea para cada valor hace que sea más fácil de leído.
local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3,}
Usando un for Loop con un Array
Usa un for loop para ir a través del array y controlar con qué rapidez las partes deben desaparecer en el orden en que las partes están indexadas dentro del matriz/lista.
Para controlar con qué frecuencia desaparece una parte en segundos, crea una variable llamada VANISH_RATE . Para probarlo, es mejor mantenerlo en un pequeño número.
local VANISH_RATE = 1.5local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3}Crear un for loop con lo siguiendo: Inicio: partIndex = 1, el índice del primer valor en el matriz/lista. Fin: 1> #pathArray1>, el tamaño de ese matriz/lista.
for partIndex = 1, #pathArray doendAsí que hay un retraso antes de que desaparezca una parte, en el ciclo, agrega un task.wait() usando VANISH_RATE .
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)endPara obtener una parte que desaparezca, crea una nueva variable llamada whichPart y establece que sea igual a partsArray[partIndex] . Luego, para desaparecer esa parte, establece su propiedad CanCollide a false y su propiedad 1> Transparency1> a 1.
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endAsegúrese de que algunas de las partes del camino desaparezcan con el tiempo.
Consejos de solución de problemas
Si el puente no desaparece, verifique los posibles problemas a continuación: Problema: Las partes desaparecen demasiado rápido o están todas en el iniciar.
- Dependiendo de la rapidez con la que se carga tu personaje en la experiencia, las primeras partes pueden ser invisibles. Para abordar esto, añade un pequeño espacio de espera, como task.wait(2), al comienzo del script.
Código del segundo bucle
En este momento, las partes desaparecen para siempre. Para hacer que reaparezcan, crea una segunda para la que pasará por cada parte y hará que cada pieza sea caminable.
Después de la primera vuelta, agregue un task.wait() para crear un breve retraso antes de que la ruta reaparezca.
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endtask.wait(1)Por tu cuenta , intenta codificar un segundo para la repetición que hace que el camino sea usable de nuevo al cambiar la propiedad CanCollide de cada parte a true y Transparency a 0. Cuando termines, comprueba tu trabajo contra el código a continuación.
-- Restablece 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 desaparecen, volver.
Repitiendo con un bucle mientras
Las partes desaparecen y reaparecen, pero solo una vez. Para hacer que el código se repita una y otra vez, anida todo el código dentro de un bucle mientras.
En la parte inferior del script, crea un nuevo mientras es cierto que se repite. Luego, mueve ambos para en la ronda de repetición.
while true do-- Haga que una parte desaparezca del array en ordenfor partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Espere un segundo antes de hacer que el camino reaparezcatask.wait(1)-- Restablece el camino haciendo que todas las partes sean caminables de nuevofor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endendAsegúrese de que una vez que todas las partes desaparecen, reaparecen.
Una versión final del proyecto se puede descargar.
scriptcompletado
local VANISH_RATE = 1.0local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3,}while true do-- Haga que una parte desaparezca del array en ordenfor partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Espere un segundo antes de hacer que el camino reaparezcatask.wait(1.0)-- Restablece el camino haciendo que todas las partes sean caminables de nuevofor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endend
Matrices y ipairs()
ipairs() se usa con arrays . El "i" en ipairs() significa "索引". Los "ipairs()" pueden usarse para repetir rápidamente una operación en muchos objetos, como, digamos, un directorio lleno de partes.
Esto se mostrará agregando rápidamente partículas a una carpeta completa de partes.
En el espacio de trabajo, crea una carpeta llamada PartsFolder. Añade tantas partes como quieras.
En ServerScriptService, crea un nuevo script y referencia el directorio.
Usa GetChildren() para obtener automáticamente un listado de objetos en la carpeta.
local partsFolder = workspace.PartsFolder-- Obtiene un arreglo que lista las partes en PartsFolderlocal partsArray = partsFolder:GetChildren()Usa in ipairs(ArrayToUse) con el for loop para pasar por partsArray y agregar partículas.
scriptcompletado-- Obtiene un arreglo 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
Pruebe y vea las partículas flotar de cada parte en la carpeta.
Resumen
Las cadenas se pueden combinar con matices para trabajar con cualquier número de valores rápidamente. Si desea tener un control exacto de lo que sucede con algunas partes y en qué orden, un matiz debe estar codificado con valores específicos.
Para trabajar con muchas partes donde el orden no importa, GetChildren() puede crear un arreglo de hijos de un objeto. Utilizando ipairs(), la lista se puede repetir rápidamente sin conocer el tamaño del matriz/lista.