Dieses Projekt ist ein weiteres Beispiel für die praktische Verwendung von for-Schleifen. Bei dieser Brücke werden die Spieler einen Knopf berühren, um die Brücke für eine begrenzte Zeit begehbar zu machen, bevor sie verschwindet. Um einen Timer zu erstellen und die verbleibende Zeit für einen Spieler anzuzeigen, verwenden Sie for-Schleifen.
Projekt einrichten
Diese Brücke kann in jedes Roblox-Projekt mit bewegungsbasierten Herausforderungen integriert werden, wie z.B. ein Obby.
Teile erstellen
Finden Sie einen Ort, um eine Brücke zu bauen, wie einen Fluss oder eine große Lücke in einem Obby. Erstellen Sie drei verankerte Teile wie unten.
- TimerDisplay
- Bridge
- ButtonBridge

Wenn inaktiv, wird die Brücke halbtransparent sein. Um dies zu tun, wählen Sie die Brücke aus und ändern Sie ihre Eigenschaften.
- Transparenz = 0.8
- KannKollidieren = Falsch
Timer-Anzeige erstellen
Beim Überqueren der Brücke müssen die Spieler sehen, wie viele Sekunden noch verbleiben, bevor die Brücke verschwindet. Eine Möglichkeit, Bilder oder Text anzuzeigen, besteht darin, ein Objekt namens Surface GUI zu einem Teil hinzuzufügen. Surface GUIs können auch verwendet werden, um In-Game-Schilder, benutzerdefinierte Gesundheitsanzeigen und Inventarsysteme zu erstellen. Dieses Tutorial wird dies schnell durchgehen, aber weitere Informationen finden Sie im Abschnitt Tutorials.
Wählen Sie TimerDisplay aus und fügen Sie eine SurfaceGui hinzu. Fügen Sie dann, als Kind der Surface Gui, ein TextLabel hinzu.

Wählen Sie die Surface GUI aus. Nehmen Sie in den Eigenschaften die folgenden Änderungen vor:
- Ändern Sie die Gesicht-Eigenschaft, damit Sie das Textlabel auf der Vorderseite des Timers sehen können, wo der Spieler hinschaut.
Wählen Sie das TextLabel aus. Nehmen Sie in den Eigenschaften die folgenden Änderungen vor:
- Setzen Sie Größe auf {1, 0},{1, 0}.
- Setzen Sie TextSkaliert auf wahr.
- Setzen Sie Text auf leer. Der Text wird mit dem Skript aktualisiert.
Skript einrichten
Jetzt, da der Timer eingerichtet ist, erstellen Sie ein Skript, um die Brücke zu steuern und die Countdown-Zahl den Spielern anzuzeigen.
Fügen Sie im Brücken-Teil ein neues Skript mit dem Namen TimedBridge hinzu. Erstellen Sie in diesem Skript die folgenden Variablen.
local bridge = script.Parentlocal button = workspace.ButtonBridgelocal timerText = workspace.TimerDisplay.SurfaceGui.TextLabel-- Wie lange die Brücke stabil bleibtlocal timerDuration = 5
Berührungsinteraktion codieren
Um die Brücke zu benutzen, müssen Sie zwei Funktionen erstellen. Eine Funktion macht die Brücke begehbar und zeigt den Timer an. Die andere Funktion hört darauf, ob ein Spieler den Knopf berührt, der die Brücke aktiviert.
Erstellen Sie eine neue Funktion mit dem Namen startTimer(), die eine Druckanweisung enthält. Sie verwenden die Druckanweisung, um Ihren Code zu testen.
local timerDuration = 5local function startTimer()print("Countdown gestartet")endCodieren Sie eine Funktion mit dem Namen buttonPressed(), um zu überprüfen, ob ein Humanoid den Knopf berührt. Die Funktion sollte einen Parameter partTouched akzeptieren und dann eine leere if-Anweisung haben, wenn ein Humanoid in diesem Teil erkannt wird.
local function startTimer()print("Countdown gestartet")endlocal function buttonPressed(partTouched)local character = partTouched.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenendendUm den Timer zu starten, rufen Sie in der if-Anweisung die Funktion startTimer() auf.
local function buttonPressed(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenstartTimer()endendVerbinden Sie am Ende von buttonPressed() die Funktion buttonPressed() mit dem Touched-Ereignis des Knopfes.
local function buttonPressed(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenstartTimer()endendbutton.Touched:Connect(buttonPressed)Führen Sie das Projekt aus. Berühren Sie das Teil und überprüfen Sie im Ausgabefenster die Druckanweisung.
Fehlersuche
An diesem Punkt, wenn die Brücke nicht wie beabsichtigt funktioniert, versuchen Sie eine der folgenden Lösungen.
Problem: Fehlermeldung: "... ist kein gültiges Mitglied von workspace".
- Überprüfen Sie im TimedBridge-Skript, ob alle Teile genau so geschrieben sind, wie sie im Explorer angezeigt werden.
Problem: Teile sind nicht sichtbar.
- Stellen Sie sicher, dass alle drei Teile verankert sind.
- Überprüfen Sie die Transparenzeigenschaft der Brücke.
Timer erstellen
Immer wenn Spieler auf die Brücke treten, wird startTimer() die Brücke begehbar machen und den Timer starten. Sobald der Timer 0 erreicht, wird die Brücke unbetretbar, was dazu führt, dass jeder, der nicht schnell genug ist, fällt.
Brücke begehbar machen
Um zu beginnen, muss das Skript die Brücke stabil oder kollidierbar machen und dann einen Timer starten, bis sie unbetretbar wird.
Um die Brücke begehbar zu machen, ändern Sie in startTimer() die Transparenzeigenschaft der Brücke auf 0 (undurchsichtig) und die CanCollide-Eigenschaft auf wahr.
local function startTimer()-- Machen Sie die Brücke sichtbar und begehbarbridge.Transparency = 0bridge.CanCollide = trueendUm einen Timer zu erstellen, der herunterzählt, erstellen Sie eine for-Schleife mit den folgenden Werten.
- Steuerungsvariable: benannt count, gesetzt auf timerDuration.
- Ende: 0
- Inkrement: -1
local function startTimer()-- Machen Sie die Brücke sichtbar und begehbarbridge.Transparency = 0bridge.CanCollide = truefor count = timerDuration, 0, -1 doendendUm den Timer den Spielern anzuzeigen, ändern Sie den Text in timerText, um count anzuzeigen, indem Sie timerText.Text = count eingeben. Jedes Mal, wenn die for-Schleife eine Iteration durchläuft, wird den Spielern die nächste Zahl im Timer angezeigt.
for count = timerDuration, 0, -1 dotimerText.Text = countendVerwenden Sie eine Funktion task.wait, um sicherzustellen, dass die for-Schleife nur einmal pro Sekunde ausgeführt wird.
for count = timerDuration, 0, -1 dotimerText.Text = counttask.wait(1)endFühren Sie das Spiel aus. Wenn Sie den Knopf berühren, sollte die Brücke erscheinen und der Timer starten, dann abschließen.
Verhindern, dass die Brücke neu startet
Beachten Sie jedoch, dass der Timer immer wieder neu gestartet wird, wenn Sie sich auf dem Knopf bewegen.
Dies liegt daran, dass die for-Schleife jedes Mal aufgerufen wird, wenn Sie den Knopf berühren, und die for-Schleife von vorne beginnt. Um zu verhindern, dass der Timer ständig neu gestartet wird, müssen Sie eine boolesche Variable hinzufügen, die steuert, ob startTimer() erneut aufgerufen werden darf oder nicht.
Boolesche Variablen werden auf die gleiche Weise wie andere Variablen geschrieben, aber anstelle von Zahlen oder Zeichenfolgen können sie nur auf wahr oder falsch gesetzt werden. In dieser Situation wird das Skript eine boolesche Variable verwenden, um zu überprüfen, ob der Timer derzeit läuft, bevor er gestartet wird.
Erstellen Sie oben in Ihrem Skript unter Ihren Variablen eine Variable mit dem Namen timerActive und setzen Sie sie auf false, da noch niemand den Knopf gedrückt hat.
local timerDuration = 5local timerActive = falselocal function startTimer()Um sicherzustellen, dass der Timer nur startet, wenn die boolesche Variable timerActive falsch ist, fügen Sie eine zweite Bedingung zur if-Anweisung in buttonPressed() hinzu.
local function buttonPressed(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and timerActive == false thenstartTimer()endendUm zu verhindern, dass startTimer() erneut ausgeführt wird, bevor der Timer abgelaufen ist, setzen Sie die boolesche Variable timerActive auf wahr.
local function startTimer()timerActive = truebridge.Transparency = 0bridge.CanCollide = trueIn der Funktion startTimer(), nach der for-Schleife, setzen Sie die Brücke zurück auf ihre ursprünglichen Eigenschaften, indem Sie die Transparenz der Brücke auf 0.8 und CanCollide auf falsch ändern.
local function startTimer()timerActive = truebridge.Transparency = 0bridge.CanCollide = true-- For-Schleife, die von timerDuration herunterzähltfor count = timerDuration, 0, -1 dotimerText.Text = counttask.wait(1)end-- Machen Sie die Brücke nicht begehbarbridge.Transparency = 0.8bridge.CanCollide = falseendEine letzte Sache, um die Brücke zurückzusetzen, besteht darin, den timerText auf eine leere Zeichenfolge zu ändern, wie es ursprünglich war. Setzen Sie dann die boolesche Variable timerActive auf falsch.
bridge.Transparency = 0.8bridge.CanCollide = falsetimerText.Text = ""timerActive = falseTesten Sie das Spiel und überprüfen Sie, ob die Brücke mehrfach verwendet werden kann.
Vollständiges Skript für die zeitgesteuerte Brücke
local bridge = script.Parent
-- Holt den Knopf, wie er im Explorer eingegeben ist
local button = workspace.ButtonBridge
-- Holt das Teil für die Anzeige
local timerPart = workspace.TimerDisplay
-- Holt den Text, der den Timer anzeigt
local timerText = timerPart.SurfaceGui.TextLabel
-- Wie lange die Spieler haben, um die Brücke zu überqueren
local timerDuration = 5
local timerActive = false
local function startTimer()
print("Countdown gestartet")
timerActive = true
bridge.Transparency = 0
bridge.CanCollide = true
-- For-Schleife, die von timerDuration herunterzählt
for count = timerDuration, 0, -1 do
timerText.Text = count
task.wait(1)
end
-- Machen Sie die Brücke nicht begehbar
bridge.Transparency = 0.8
bridge.CanCollide = false
timerText.Text = ""
timerActive = false
end
local function buttonPressed(partTouched)
local character = partTouched.Parent
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
print("Teil berührt")
if humanoid and timerActive == false then
print("Timer starten")
startTimer()
end
end
button.Touched:Connect(buttonPressed)Zusammenfassung
Schleifen können mit verschiedenen Interaktionsmethoden kombiniert werden, um unterhaltsame Spielmomente zu schaffen. In diesem Tutorial wird eine zeitgesteuerte Brücke erstellt, die mit einer for-Schleife funktioniert, die als Countdown dient. Während des Countdowns haben die Spieler eine begrenzte Zeit, um hinüberzukommen.