Looping und Arrays

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Arrays können mit Loops kombiniert werden, wie z. B. while und for , um den gleichen Code für jeden indizierten Wert wiederzuholen. Zum Beispiel das Teleportieren eines jeden Spielers in ein neues Ort oder das Erstellen eines Teams, das initiierenfangen.

Um das Looping durch Arrays zu erkunden, erstellen Sie einen verschwindenden Bridge-Weg, bei dem Teile in ein Array platziert werden und dann einzeln verschwinden.

Looping durch ein Array

Für das Projekt finden oder erstellen Sie ein Set von drei Teilen, um es zu verschwinden. Die Teile müssen alle verankert sein.

  1. Erstellen Sie drei Teile. Benennen Sie die Teile in der Reihenfolge, in der sie verschwinden sollen, Teil 1, Teil 2, Teil 3.

  2. In ServerScriptService fügen Sie ein neues Skript ein und erstellen Sie ein Array, um die Teile zu speichern.


    local pathArray = {
    }
  3. Auf einer einzelnen Zeile jedes, geben Sie den Namen der Teile in der Reihenfolge ein, in der sie verschwinden sollen. Mit einer neuen Zeile für jeden Wert macht es einfacher zu gelesen.


    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3,
    }

Verwendung eines for Loop Mit einem Array

Verwenden Sie ein for Loop, um durch die Matrix zu gehen und zu kontrollieren, wie schnell die Teile in der Reihenfolge erscheinen, in der die Teile in der Arrayindexiert sind.

  1. Um zu kontrollieren, wie oft ein Teil in Sekunden verschwindet, erstellen Sie eine Variable namens VANISH_RATE . Für das Testen ist es am besten, sie auf eine kleine Zahl zu halten.


    local VANISH_RATE = 1.5
    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3
    }
  2. Erstellen Sie eine for-Loop mit dem gefolgte Profile: Start: partIndex = 1 , die Index des ersten Werte in der Matrix. End: 1> #pathArray1> , die Größe dieser Matrix.


    for partIndex = 1, #pathArray do
    end
  3. So gibt es eine Verzögerung, bevor ein Teil verschwindet, im Loop, füge einen task.wait() hinzu, verwendendo VANISH_RATE.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    end
  4. Um ein Teil verschwinden zu lassen, erstellen Sie eine neue Variable mit dem Namen whichPart und setzen Sie sie auf partsArray[partIndex] . Dann, um dieses Teil zu verschwinden, setzen Sie seine CanCollide auf false und seine 1> Transparenz1> auf 1.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
  5. Überprüfen Sie, ob Teile des Pfades im Laufe der Zeit verschwinden.

Troubleshooting-Tipps

Wenn die Brücke nicht verschwindet, überprüfen Sie die möglichen Probleme unten: Problem:: Teile verschwinden zu schnell oder sind zu startenweg.

  • Abhängig von der Geschwindigkeit, mit der dein Charakter in die Erlebnislädt, können die ersten Teile bereits unsichtbar sein. Um dies zu beheben, füge einen kleinen Warte hinzu, z. B. task.wait(2) , am Beginn des Skript, das. PL: die Skripts.

Codierung der zweiten Schleife

Derzeit verschwinden die Teile für immer. Um sie wieder zu erscheinen, erstellen Sie eine Sekunde für Loop, die durch jedes Teil geht und sofort jedes Stück zu gehen macht.

  1. Nach der ersten Schleife fügen Sie ein task.wait() hinzu, um eine kurze Verzögerung zu erstellen, bevor der Weg wieder erscheint.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    task.wait(1)
  2. Auf deinem eigenen. , versuche, ein zweites Mal zu codieren, das den Weg wieder verwendbar macht, indem die Eigenschaft Collisions jedes Teils auf " true " und Transparency auf 0 gesetzt wird. Wenn Sie fertig sind, überprüfen Sie Ihre Arbeit gegen den Code unten.


    -- Reset the path by making all parts walkable again
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
  3. Testen Sie das Projekt, um zu bestätigen, dass alle Teile verschwinden, wenn sie Zurück.

Wiederholen mit einem While Loop

Die Teile verschwinden und wieder erscheinen, aber nur einmal. Um den Code wiederholt zu machen, verschachteln Sie den gesamten Code in einer Zeit-Schleife.

  1. Am unteren Rand des Skripts erstellen Sie einen neuen while true do loop. Dann, bewegen Sie beide für Loop in die while Loop.


    while true do
    -- Löschen Sie einen Teil aus der Matrix, um
    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    -- Warte, bis eine Sekunde, bevor du den Pfad erneut erscheinen lässt
    task.wait(1)
    -- Reset the path by making all parts walkable again
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
    end
  2. Überprüfen Sie, dass alle Teile verschwinden, und sie wieder erscheinen.

Eine fertige Version des Projekts kann heruntergeladen werden.

Abgeschlossenes Skript, das. PL: die Skripts

local VANISH_RATE = 1.0
local pathArray = {
workspace.Part1,
workspace.Part2,
workspace.Part3,
}
while true do
-- Löschen Sie einen Teil aus der Matrix, um
for partIndex = 1, #pathArray do
task.wait(VANISH_RATE)
local whichPart = pathArray[partIndex]
whichPart.CanCollide = false
whichPart.Transparency = 1
end
-- Warte, bis eine Sekunde, bevor du den Pfad erneut erscheinen lässt
task.wait(1.0)
-- Reset the path by making all parts walkable again
for partIndex = 1, #pathArray do
local whichPart = pathArray[partIndex]
whichPart.CanCollide = true
whichPart.Transparency = 0
end
end

Arrays und ipairs()

ipairs() wird mit Arrays verwendet. Das "i" in ipairs() steht für "Index." ipairs() kann verwendet werden, um eine Operation auf einer Menge Objekte, wie z. B. ein Ordner voller Teile, schnell wiederzuholen.

Dies wird durch das Schnell-Hinzufügen von Partikeln zu einem ganzen Ordner von Teilen gezeigt.

  1. In Arbeitsbereicherstellen Sie einen Ordner namens PartsFolder. Fügen Sie so viele Teile hinzu, wie Sie möchten.

  2. In ServerScriptService erstellen Sie ein neues Skript und verweisen auf den Ordner.

  3. Verwenden Sie GetChildren() , um automatisch eine Liste von Objekten im Ordner zu erhalten.


    local partsFolder = workspace.PartsFolder
    -- Bietet eine Liste der Teile in PartsFolder
    local partsArray = partsFolder:GetChildren()
  4. Verwenden Sie in ipairs(ArrayToUse) mit dem for-Loop, um Teile Array durchzugehen und Partikel hinzuzufügen.

    Abgeschlossenes Skript, das. PL: die Skripts

    -- Bietet eine Liste der Teile in PartsFolder
    local partsArray = partsFolder:GetChildren()
    -- Fügt jedem Teil in der ArrayPartikel hinzu
    for index, part in ipairs(partsArray) do
    local particles = Instance.new("ParticleEmitter")
    particles.Parent = part
    end

Testen Sie das Spiel und beobachten Sie, wie die Partikel aus jedem Teil des Ordners schweben.

Zusammenfassung

Loopings können mit Arrays kombiniert werden, um mit einer beliebigen Anzahl von Werten schnell zu arbeiten. Wenn Sie genaue Kontrolle über einige Teile und in welcher Reihenfolge sie passieren, muss ein Array mit bestimmten Werten hart codiert sein.

Um mit vielen Teilen zu arbeiten, in denen die Reihenfolge nicht wichtig ist, kann GetChildren() ein Array von Kindern eines Objekts erstellen. Mit der Verwendung von ipairs() kann die Liste schnell durchgerarbeitet werden, ohne die Größe des Arrays zu kennen.