Willkommen bei PS-Evolution: Board.
Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch.
Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten.
Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Hi,
also ich zeig euch mal wie eine Tabelle funktionert.
Also:
Eine Tabelle ist nix weiter als das wir kennen.
Also sowas zb:
Zeile1
Zeile2
Zeile3
Erstellen wir aber erstmal unsere Tabelle:
Code:
tabelle={}
Wir zeigen Lua mit {} das es eine Tabelle ist, also sie fängt mit { und endet mit }.
mit tabelle={} erstellen wir eine Variable. Dh wenn wir "tabelle" aufrufen wollen benutzen wir den Namen tabelle. Es geht auch jeder andere Name. Zb "asd". Das würde dann so aussehen:
Code:
asd={}
So jetzt haben wir eine leere Tabelle, wir wollen aber das diese 3 Zeilen reinkommen! Das sieht dann so aus:
Code:
tabelle={"Zeile1",
"Zeile2",
"Zeile3"
Weil die Wörte Ganz normale Buchsten sind D.H. sie sind keine Variablen, Befehle oder Zahlen oder sonstiges, sondern kanz normale Buchstaben. Und die packen wir in ->""
Wie zeigen wir Lua das eine Zeile zuende ist, und wir in die nächste Zeile schreiben wollen? Ganz einfach mit einem Komma.
Code:
tabelle={"Zeile1","Zeile2"}
Wichtig ist, das man bei der letzten Zeile kein Komma setzt, das heißt nämlich, das darauf keine weiter zeile folgt!
Jetzt zeig ich eich wie man noch anders Zeilen in die Tabelle packt!
Nämlich so:
Code:
tabelle[1]="Zeile1"
tabelle[2]="Zeile2"
tabelle[3]="Zeile3"
Ist das selbe wie:
tabelle={"Zeile1",
"Zeile2",
"Zeile3"}
Wieso setzten wir bei tabelle[ ] kein {}? Ganz einfach: Weil wir keine neue Tabelle erstellen wollen. Würden wir {} reintun, wär das eine neue Tabelle!
Wenn man tabelle [] benutzt, muss die Tabelle schon existieren! Also wir erstellen eine Tabelle mit tabelle={}
Mit tabelle[] "schieben" wir eine Zeile rein, existiert die Zeile schon, wird sie ersetzt!
[] bedeutet das wir in eine bestimmte zeile zugreifen wollen. Das benutzen wir so:
Code:
tabellenname[zeile]
Also wir haben jetzt die normale Tabelle:
Code:
tabelle={"Zeile1",
"Zeile2",
"Zeile3"}
Benutzen wir den code:
tabelle[2]=BAMBAM
sieht das dann so aus:
Code:
tabelle={"Zeile1",
"BAMBAM",
"Zeile3"}
oder noch ein Beispiel:
tabelle[4]=LALALA
verändert volgendes:
Code:
tabelle={"Zeile1",
"Zeile2",
"Zeile3",
"LALALA"}
------------------------------------------------------------------------------------------------
So jetzt haben wir hoffentlich gelernt was eine Tabelle ist, wie sie funktioniert, und Wie man sie erstellt und bearbeitet! Jetzt wollen wir sie ach ausgeben!
erstellen wir erstmal einen ganz normalen Script für Lua:
Code:
white=Color.new(255,255,255)
while true do
screen:print(1,1,"Hallo!",white)
screen.flip()
screen.waitVblankStart()
end
Jetzt erstellen wir noch eine Tabelle!:
Code:
white=Color.new(255,255,255)
tabelle={"Also ich bin die zweite Zeile",
"und ich die dritte"}
while true do
screen:print(1,1,"Hallo!",white)
screen.flip()
screen.waitVblankStart()
end
Und jetzt geben wir sie mit tabelle[] aus!
Code:
white=Color.new(255,255,255)
tabelle={"Also ich bin die zweite Zeile!",
"und ich die dritte!"}
while true do
screen:print(1,1,"Hallo!",white)
screen:print(1,10,tabelle[1],white)
screen:print(1,20,tabelle[2],white)
screen.flip()
screen.waitVblankStart()
end
Auf eurem PSP bildschirm würde das so aussehen:
Code:
Hallo,
Ich bin die zweite Zeile!
und ich die dritte!
Nervig ist jetzt aber wenn man über 5 Zeilen hat! Muss man dann immer wieder screenrint() benutzen? Bei der Tabelle ist es nicht nötig. Mann kann alle Zeilen mit einem kleinen Code ausgeben:
Code:
white=Color.new(255,255,255)
tabelle={"Zeile1",
"Zeile2",
"Zeile3",
"Zeile4",
"Zeile5"}
while true do
screen:print(1,1,"Hallo!",white)
i = 1
while tab <= table.getn(tabelle) do
yy = (i*10)
screen:print(1,yy,tabelle[i],white)
i = i+1
end
screen.flip()
screen.waitVblankStart()
end
Was ist neu? Dashier:
Code:
i = 1
while i <= table.getn(tabelle) do
yy = (i*10)
screen:print(1,yy,tabelle[i],white)
i = i+1
end
"i" ist die Zeile der Tabelle, und yy ist die zeile der Ausgabe. mit "table.getn(tabelle)" Finden wir raus wieviele Zeile die Tabelle "tabelle" hat!
Der Code fragt ab ob die Zeilen existieren, wenn ja, gibt er sie aus!
Auf eurer PSP würde das so aussehen:
Spoiler:
Geändert von SFX (21.07.2010 um 17:36 Uhr).
Folgende 6 Benutzer sagen Danke zu djedu für den nützlichen Beitrag:
Im großen und ganzen ganz ordentlich, allerdings ist ein string sehrwohl eine Variable und eine Table kann auch Integer (zahlen), Booleans (true/false), Objekte (zB screen) und auch leere Einträge enthalten (nil)
Und was du mit den Zeilenumbrüchen willst weiß ich nicht ganz, eine script kann auch so aussehen: