Dieses Projekt ist ein weiteres Beispiel dafür, wie man for-Schleifen auf praktische Weise nutzen kann. Für diese 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, wirst du for-Schleifen verwenden.
Projekt einrichten
Diese Brücke kann in jedes Roblox-Projekt mit bewegungsbasierten Herausforderungen eingebaut werden, wie z.B. in ein obby.
Teile erstellen
Finde einen Platz, um eine Brücke zu bauen, z.B. einen Fluss oder eine große Lücke in einem obby. Erstelle drei verankerte Teile wie unten.
- TimerDisplay
- Bridge
- ButtonBridge

Wenn inaktiv, wird die Brücke halbtransparent sein. Wähle dazu die Brücke aus und ändere ihre Eigenschaften.
- Transparenz = 0.8
- KannKollidieren = Falsch
Erstelle die Timeranzeige
Wenn die Spieler die Brücke überqueren, müssen sie sehen, wie viele Sekunden verbleiben, bis 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 kurz ansprechen, aber weitere Informationen sind im Abschnitt Tutorials zu finden.
Wähle TimerDisplay aus und füge eine SurfaceGui hinzu. Dann füge innerhalb der Surface Gui ein TextLabel hinzu.

Wähle die Surface GUI aus. Nimm in den Eigenschaften die folgenden Änderungen vor:
- Ändere die Gesicht-Eigenschaft so, dass du das Textlabel an der Vorderseite des Timers sehen kannst, wo der Spieler hinschaut.
Wähle das TextLabel aus. Nimm in den Eigenschaften die folgenden Änderungen vor:
- Setze Größe auf {1, 0},{1, 0}.
- Setze TextSkaliert auf wahr.
- Setze Text auf leer. Der Text wird mit dem Skript aktualisiert.
Skript einrichten
Jetzt, da der Timer eingerichtet ist, erstelle ein Skript, um die Brücke zu steuern und die Countdown-Zahl für die Spieler anzuzeigen.
Füge im Bridge-Teil ein neues Skript mit dem Namen TimedBridge hinzu. Erstelle 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
Den Berührungsinteraktionscode erstellen
Um die Brücke zu benutzen, musst du zwei Funktionen erstellen. Eine Funktion macht die Brücke begehbar und zeigt den Timer an. Die andere Funktion überwacht, ob ein Spieler den Knopf berührt, der die Brücke aktiviert.
Erstelle eine neue Funktion mit dem Namen startTimer() und füge eine Druckanweisung innerhalb ein. Du wirst die Druckanweisung verwenden, um deinen Code zu testen.
local timerDuration = 5local function startTimer()print("Countdown gestartet")endSchreibe eine Funktion namens 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, falls 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, rufe in der if-Anweisung die Funktion startTimer() auf.
local function buttonPressed(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenstartTimer()endendVerbinde die buttonPressed()-Funktion mit dem Touched-Ereignis des Buttons am Ende von buttonPressed().
local function buttonPressed(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenstartTimer()endendbutton.Touched:Connect(buttonPressed)Starte das Projekt. Berühre das Teil und überprüfe im Ausgabefenster die Druckanweisung.
Fehlersuche Tipps
Zu diesem Zeitpunkt, wenn die Brücke nicht wie gewünscht funktioniert, versuche eines der folgenden.
Problem: Fehlermeldung sagt: "... ist kein gültiges Mitglied von Workspace".
- Überprüfe im TimedBridge-Skript, dass alle Teile genau so geschrieben sind, wie sie im Explorer angezeigt werden.
Problem: Teile sind nicht sichtbar.
- Stelle sicher, dass alle drei Teile verankert sind.
- Überprüfe die Transparenzeigenschaft für die Brücke.
Timer erstellen
Jedes Mal, wenn die 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 unbegreifbar, sodass jeder, der nicht schnell genug ist, fällt.
Die Brücke begehbar machen
Um zu beginnen, muss das Skript die Brücke stabil oder kollisionierbar machen und dann einen Timer starten, bis sie unbegreifbar wird.
Um die Brücke begehbar zu machen, ändere in startTimer() die Transparenzeigenschaft der Brücke auf 0 (opak) und die CanCollide-Eigenschaft auf wahr.
local function startTimer()-- Mache die Brücke sichtbar und begehbarbridge.Transparency = 0bridge.CanCollide = trueendUm einen Timer zu erstellen, der herunterzählt, erstelle eine for-Schleife mit den folgenden Werten.
- Steuerungsvariable: genannt count, gesetzt auf timerDuration.
- Ende: 0
- Inkrement: -1
local function startTimer()-- Mache die Brücke sichtbar und begehbarbridge.Transparency = 0bridge.CanCollide = truefor count = timerDuration, 0, -1 doendendUm den Timer für die Spieler anzuzeigen, ändere den Text in timerText, um count anzuzeigen, indem du timerText.Text = count eingibst. 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 = countendVerwende eine task.wait-Funktion, um sicherzustellen, dass die for-Schleife nur einmal pro Sekunde läuft.
for count = timerDuration, 0, -1 dotimerText.Text = counttask.wait(1)endStarte die Erfahrung. Wenn du den Knopf berührst, sollte die Brücke erscheinen und der Timer starten und dann abgeschlossen sein.
Verhindere, dass die Brücke neu startet
Beachte jedoch, dass der Timer neu gestartet wird, wenn du dich auf dem Knopf bewegst.
Das liegt daran, dass die for-Schleife jedes Mal aufgerufen wird, wenn du den Knopf berührst und die for-Schleife von vorne beginnt. Um zu verhindern, dass der Timer ständig neu startet, musst du eine boolean Variable hinzufügen, die steuert, ob startTimer() erneut aufgerufen werden darf.
Booleans werden genauso wie andere Variablen geschrieben, aber anstatt Zahlen oder Strings zu verwenden, können sie nur auf wahr oder falsch gesetzt werden. In dieser Situation wird das Skript ein Boolean verwenden, um zu überprüfen, ob der Timer derzeit läuft, bevor er gestartet wird.
Erstelle am Anfang deines Skripts unter deinen Variablen eine Variable mit dem Namen timerActive und setze 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 der timerActive Boolean falsch ist, füge 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, setze den Boolean timerActive auf wahr.
local function startTimer()timerActive = truebridge.Transparency = 0bridge.CanCollide = trueÄndere in der Funktion startTimer() nach der for-Schleife die Brücke zurück zu ihren ursprünglichen Eigenschaften, indem du die Transparenz der Brücke auf 0.8 und CanCollide auf falsch setzt.
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-- Mache die Brücke unbegreifbarbridge.Transparency = 0.8bridge.CanCollide = falseendEine letzte Sache, um die Brücke zurückzusetzen, ist es, den timerText auf einen leeren String zu ändern, wie es ursprünglich war. Setze dann den timerActive Boolean auf falsch.
bridge.Transparency = 0.8bridge.CanCollide = falsetimerText.Text = ""timerActive = falseTeste das Spiel und überprüfe, ob die Brücke mehrere Male verwendet werden kann.
Vollständiges Skript für die zeitgesteuerte Brücke
local bridge = script.Parent
-- Holt den Knopf, wie er im Explorer eingegeben wurde
local button = workspace.ButtonBridge
-- Holt den 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 Zeit haben, 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
-- Mache die Brücke unbegreifbar
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 Interaktionsmitteln kombiniert werden, um unterhaltsame Gameplay-Momente zu schaffen. In diesem Tutorial wird eine zeitgesteuerte Brücke erstellt, die eine for-Schleife verwendet, die als Countdown dient. Während des Countdowns haben die Spieler eine begrenzte Zeit, um hinüberzukommen.