Die Game-Loop
Teil des Abschnitts Logic & Flow der Lua-Journey von Coddy — Lektion 27 von 54.
Aufgabe
EinfachImplementiere die Haupt-Spielschleife, die kontinuierlich die Beschreibung des aktuellen Raums anzeigt, solange das Spiel läuft.
Dir werden die Variablen startingRoom, gardenRoom und player aus der vorherigen Herausforderung zur Verfügung gestellt.
Erstelle eine Variable namens gameRunning und setze sie auf true.
Schreibe eine while-Schleife, die so lange fortgesetzt wird, wie gameRunning den Wert true hat. Innerhalb der Schleife:
- Gib die Beschreibung des aktuellen Raums des Spielers aus
- Setze
gameRunningauffalse, um die Schleife zu beenden (vorerst werden wir in der nächsten Lektion eine ordnungsgemäße Eingabeverarbeitung hinzufügen)
Erwartetes Ausgabeformat:
You find yourself in a dusty library filled with ancient books and scrolls.Probier es selbst
-- Create the starting room
local startingRoom = {
name = "Ancient Library",
description = "You find yourself in a dusty library filled with ancient books and scrolls."
}
-- Create the garden room
local gardenRoom = {
name = "Secret Garden",
description = "A beautiful garden with exotic flowers and a mysterious fountain."
}
-- Link the rooms
startingRoom.nextRoom = gardenRoom
gardenRoom.previousRoom = startingRoom
-- Create the player table
local player = {
currentRoom = startingRoom
}
-- Print the player's current room name and description
print(player.currentRoom.name)
print(player.currentRoom.description)Alle Lektionen in Logic & Flow
1Fortgeschrittene Table-Iteration
Iterieren mit pairs()Iterieren mit ipairs()pairs() vs. ipairs()Zusammenfassung – Charakterbogen4Einführung in Metatables
Was ist eine Metatable?setmetatable & getmetatableDie __index-MetamethodeDie __newindex-MetamethodeDie __tostring-MetamethodeArithmetische Metamethoden Teil 1Arithmetische Metamethoden Teil 2Zusammenfassung – Schreibgeschützte Tabellen7Fortgeschrittene String-Manipulation
string.gsub() für ErsetzungenEinführung in String-Patternsstring.find()string.match()Iterieren mit string.gmatch()Rückblick – Log-File-Parser2Weitere Funktionen der Table-Bibliothek
table.concat()Tabellenerstellung & unpack()table.sort()Benutzerdefiniertes Sortieren mit FunktionenRückblick – Highscore-Tabelle5Projekt: Text-Adventure-Engine
Projekt-Setup: Der RaumRäume verknüpfen