Difference between revisions of "Lua/de"
m (1 revision) |
(talk) |
||
Line 18: | Line 18: | ||
Mit dieser Möglichkeit können User das Spiel modifizieren, ohne programmieren zu können. | Mit dieser Möglichkeit können User das Spiel modifizieren, ohne programmieren zu können. | ||
− | + | == = Schnelle Einführung in Scripts = == | |
− | + | === Wie man ein Script ausführt === | |
Um ein Script auszuführen, speicher die .lua-Datei in den Speicherordner von Powder Toy(dort wo powdertoy.exe ist). Öffne die Konsole (siehe oben) und tippe ein: | Um ein Script auszuführen, speicher die .lua-Datei in den Speicherordner von Powder Toy(dort wo powdertoy.exe ist). Öffne die Konsole (siehe oben) und tippe ein: | ||
'''dofile("filename.lua")''' | '''dofile("filename.lua")''' | ||
, wobei du filename.lua durch deinen Dateinamen ersetzt. | , wobei du filename.lua durch deinen Dateinamen ersetzt. | ||
− | + | === Variablentypen === | |
<ins>Die verschiedenen Variablentype sind:</ins> | <ins>Die verschiedenen Variablentype sind:</ins> | ||
Line 106: | Line 106: | ||
Verhält sich wie eine Wildcard.Acts as a wildcard. Es kann für jede der oben genannten benutzt werden, was '''nicht''' bedeutet, dass es von jedem Typ sein kann. Es hängt von der Funktion ab. | Verhält sich wie eine Wildcard.Acts as a wildcard. Es kann für jede der oben genannten benutzt werden, was '''nicht''' bedeutet, dass es von jedem Typ sein kann. Es hängt von der Funktion ab. | ||
− | + | === Generelle Argumente === | |
<ins>The arguments given here are general, here are some examples:</ins> | <ins>The arguments given here are general, here are some examples:</ins> | ||
Line 172: | Line 172: | ||
---- | ---- | ||
− | + | == Lua API == | |
'''Powder toy hat die folgenden Funktionen als API:''' | '''Powder toy hat die folgenden Funktionen als API:''' | ||
− | + | === Spiel === | |
==== tpt.set_pause ==== | ==== tpt.set_pause ==== | ||
Pausiere das Spiel | Pausiere das Spiel | ||
− | == tpt.set_pause(number Status) == | + | ====== tpt.set_pause(number Status) ====== |
==== tpt.set_console ==== | ==== tpt.set_console ==== | ||
Stelle die Sichtbarkeit der Konsole ein. | Stelle die Sichtbarkeit der Konsole ein. | ||
− | == tpt.set_console(number Status) == | + | ====== tpt.set_console(number Status) ====== |
==== tpt.set_shortcuts ==== | ==== tpt.set_shortcuts ==== | ||
Sind Tastenkombinationen erlaubt? | Sind Tastenkombinationen erlaubt? | ||
− | == tpt.set_shortcuts(number Status) == | + | ====== tpt.set_shortcuts(number Status) ====== |
==== tpt.set_pressure ==== | ==== tpt.set_pressure ==== | ||
Stellt den Druck auf der Karte ein. | Stellt den Druck auf der Karte ein. | ||
− | == tpt.set_pressure(number x, number y) == | + | ====== tpt.set_pressure(number x, number y) ====== |
− | == tpt.set_pressure(number x, number y, number Breite, number Höhe) == | + | ====== tpt.set_pressure(number x, number y, number Breite, number Höhe) ====== |
− | == tpt.set_pressure(number x, number y, number width, number height, number Wert) == | + | ====== tpt.set_pressure(number x, number y, number width, number height, number Wert) ====== |
− | ===== Teilchen | + | === Teilchen === |
==== tpt.reset_spark ==== | ==== tpt.reset_spark ==== | ||
Entfernt Materialien mit Strom von der Karte. | Entfernt Materialien mit Strom von der Karte. | ||
− | == tpt.reset_spark() == | + | ====== tpt.reset_spark() ====== |
==== tpt.set_property ==== | ==== tpt.set_property ==== | ||
Verändert die Art der Teilchen | Verändert die Art der Teilchen | ||
− | == tpt.set_property(string Eigenschaft, object Wert) == | + | ====== tpt.set_property(string Eigenschaft, object Wert) ====== |
− | == tpt.set_property(string Eigenschaft, object Wert, string Typ) == | + | ====== tpt.set_property(string Eigenschaft, object Wert, string Typ) ====== |
− | == tpt.set_property(string Eigenschaft, object Wert, number index) == | + | ====== tpt.set_property(string Eigenschaft, object Wert, number index) ====== |
− | == tpt.set_property(string Eigenschaft, object Wert, number index, string Typ) == | + | ====== tpt.set_property(string Eigenschaft, object Wert, number index, string Typ) ====== |
− | == tpt.set_property(string Eigenschaft, object Wert, number x, number y) == | + | ====== tpt.set_property(string Eigenschaft, object Wert, number x, number y) ====== |
− | == tpt.set_property(string Eigenschaft, object Wert, number x, number y, string Typ) == | + | ====== tpt.set_property(string Eigenschaft, object Wert, number x, number y, string Typ) ====== |
− | == tpt.set_property(string Eigenschaft, object Wert, number x, number y, number Breite, number Höhe) == | + | ====== tpt.set_property(string Eigenschaft, object Wert, number x, number y, number Breite, number Höhe) ====== |
− | == tpt.set_property(string Eigenschaft, object Wert, number x, number y, number Breite, number Höhe, string Typ) == | + | ====== tpt.set_property(string Eigenschaft, object Wert, number x, number y, number Breite, number Höhe, string Typ) ====== |
==== object tpt.get_property ==== | ==== object tpt.get_property ==== | ||
Erkennt verschiedene Eigenschaften eines Partikels und gibt sie als ''object'' zurück. | Erkennt verschiedene Eigenschaften eines Partikels und gibt sie als ''object'' zurück. | ||
− | == tpt.get_property(string Eigenschaft, number index) == | + | ====== tpt.get_property(string Eigenschaft, number index) ====== |
− | == tpt.get_property(string Eigenschaft, number x, number y) == | + | ====== tpt.get_property(string Eigenschaft, number x, number y) ====== |
==== tpt.create ==== | ==== tpt.create ==== | ||
Erzeugt ein Teilchen an einer bestimmten Stelle. | Erzeugt ein Teilchen an einer bestimmten Stelle. | ||
− | == tpt.create(number x, number y, string Typ) == | + | ====== tpt.create(number x, number y, string Typ) ====== |
==== tpt.delete ==== | ==== tpt.delete ==== | ||
Löscht ein Teilchen. | Löscht ein Teilchen. | ||
− | == tpt.delete(number index) == | + | ====== tpt.delete(number index) ====== |
− | == tpt.delete(number x, number y) == | + | ====== tpt.delete(number x, number y) ====== |
− | ===== Zeichnen | + | === Zeichnen === |
==== number tpt.textwidth ==== | ==== number tpt.textwidth ==== | ||
Gibt die Länge eines ''string'' in Pixeln an. Gibt eine ''number'' zurück. | Gibt die Länge eines ''string'' in Pixeln an. Gibt eine ''number'' zurück. | ||
− | == tpt.textwidth(string Text) == | + | ====== tpt.textwidth(string Text) ====== |
− | ===== Input/Output | + | === Input/Output === |
==== tpt.log ==== | ==== tpt.log ==== | ||
Speichere eine Nachricht auf der Konsole | Speichere eine Nachricht auf der Konsole | ||
− | == tpt.log(string Nachricht) == | + | ====== tpt.log(string Nachricht) ====== |
==== tpt.message_box ==== | ==== tpt.message_box ==== | ||
Zeigt ein OK-Fenster mit Titel und Nachricht an. | Zeigt ein OK-Fenster mit Titel und Nachricht an. | ||
− | == tpt.message_box(string Titel, string Nachricht) == | + | ====== tpt.message_box(string Titel, string Nachricht) ====== |
==== string tpt.input ==== | ==== string tpt.input ==== | ||
Lass den User Text eingeben und antwortet darauf mit immer der gleichen Nachricht. Die Einstellung "text" ist schon vorher eingegebener Text. | Lass den User Text eingeben und antwortet darauf mit immer der gleichen Nachricht. Die Einstellung "text" ist schon vorher eingegebener Text. | ||
− | == tpt.input(string Titel, string Nachricht) == | + | ====== tpt.input(string Titel, string Nachricht) ====== |
− | == tpt.input(string Titel, string Nachricht, string text) == | + | ====== tpt.input(string Titel, string Nachricht, string text) ====== |
− | ===== Sonstige | + | === Sonstige === |
==== string tpt.get_name ==== | ==== string tpt.get_name ==== | ||
Erkennt den aktuellen Usernamen und gibt ihn als ''string'' heraus. | Erkennt den aktuellen Usernamen und gibt ihn als ''string'' heraus. | ||
− | == tpt.get_name() == | + | ====== tpt.get_name() ====== |
==== tpt.register_step ==== | ==== tpt.register_step ==== | ||
Lass eine Funktion jeden Schritt ausgeführt werden. | Lass eine Funktion jeden Schritt ausgeführt werden. | ||
− | == tpt.register_step(function Funktion) == | + | ====== tpt.register_step(function Funktion) ====== |
==== tpt.unregister_step ==== | ==== tpt.unregister_step ==== | ||
Entferne eine vorher automatisierte Funktion. | Entferne eine vorher automatisierte Funktion. | ||
− | == tpt.unregister_step(function Funktion) == | + | ====== tpt.unregister_step(function Funktion) ====== |
− | ====== Einfaches Beispiel | + | == Einfaches Beispiel == |
-- Diese Zeile ist ein Kommentar. Alles nach einem -- wird nicht von Lua gelesen. | -- Diese Zeile ist ein Kommentar. Alles nach einem -- wird nicht von Lua gelesen. | ||
Revision as of 19:42, 28 September 2011
Du öffnest die Konsole mit dieser Taste.
BEVOR DU DIR SORGEN MACHST: DU KANNST AUCH DIE ALTEN KOMMANDOS BENUTZEN. PACK NUR EIN '!' OHNE ANFÜHRUNGSZEICHEN DAVOR
!set type dust metl
Dieses Kommando schreibt man in Lua so: tpt.set_property("type", "metl", "dust") (siehe hier)
Aber lerne die Lua-Sprache. Es wird nützlicher sein, als du denkst. (Hier lernst du nicht die Lua-Sprache allgemein. Hier lernst du nur ein API. Aber du kannst hier mehr darüber herausfinden.)//
Die neue Lua-Konsole bietet die Möglichkeit, die Kommandos zusammenzufassen, was in Script geschieht. Lua ist eine sehr einfache Scriptsprache.
Mit dieser Möglichkeit können User das Spiel modifizieren, ohne programmieren zu können.
Contents
- 1 = Schnelle Einführung in Scripts =
- 2 Lua API
- 2.1 Spiel
- 2.2 Teilchen
- 2.2.1 tpt.reset_spark
- 2.2.2 tpt.set_property
- 2.2.2.1 tpt.set_property(string Eigenschaft, object Wert)
- 2.2.2.2 tpt.set_property(string Eigenschaft, object Wert, string Typ)
- 2.2.2.3 tpt.set_property(string Eigenschaft, object Wert, number index)
- 2.2.2.4 tpt.set_property(string Eigenschaft, object Wert, number index, string Typ)
- 2.2.2.5 tpt.set_property(string Eigenschaft, object Wert, number x, number y)
- 2.2.2.6 tpt.set_property(string Eigenschaft, object Wert, number x, number y, string Typ)
- 2.2.2.7 tpt.set_property(string Eigenschaft, object Wert, number x, number y, number Breite, number Höhe)
- 2.2.2.8 tpt.set_property(string Eigenschaft, object Wert, number x, number y, number Breite, number Höhe, string Typ)
- 2.2.3 object tpt.get_property
- 2.2.4 tpt.create
- 2.2.5 tpt.delete
- 2.3 Zeichnen
- 2.4 Input/Output
- 2.5 Sonstige
- 3 Einfaches Beispiel
= Schnelle Einführung in Scripts =
Wie man ein Script ausführt
Um ein Script auszuführen, speicher die .lua-Datei in den Speicherordner von Powder Toy(dort wo powdertoy.exe ist). Öffne die Konsole (siehe oben) und tippe ein: dofile("filename.lua") , wobei du filename.lua durch deinen Dateinamen ersetzt.
Variablentypen
Die verschiedenen Variablentype sind:
- 'string'
Steht für ein Wort, einen Buchstaben oder einen Satz. 'string'variablen müssen mit doppelten Anführungszeichen beginnen und enden.(")
Beispiel: local str = "Das ist eine Stringvariable."
- 'number'
Steht für eine Zahl. Es gibt Fließpunktzahlen und Fixed-Punkt-Zahlen (was bedeutet, dass sie Nachkommastellen haben [Fließpunkt] oder das sie Zahlen ohne Bruchteil sind [Fixed-Punkt].)
Beispiel: local num = 1234
- 'boolean'
Es ist eine Art Schalter, der entweder An (true) oder Aus (false) ist.
Beispiel: local bool = true
- 'function'
Steht für eine Methode oder Funktion in Lua.
Beispiel: function func(Argument)
Merke: Funktionen, die eine 'function' als Argument haben, brauchen kein () am Ende. Nur der Name muss angegeben werden.
- 'table'
Tables, also Tabellen, sind mehrere Variablen zusammen. Tables können auch ein Array sein, was in jeder Programmiersprache für eine Abfolge von Variablen steht. Sie können alle Variablen beinhalten, außerdem verschiedene Typen auf einmal.
Beispiel: local tbl = {} Dies erzeugt eine leere Tabelle.
Beispiel: local tbl = {1, 2, 3, "string"}
Erzeugt eine Tabelle mit den Elemente 1,2,3 und "string".
Man kann diese Werte so abrufen:
tbl[1] --gibt 1 zurück tbl[2] --gibt 2 zurück tbl[3] --gibt 3 zurück tbl[4] --gibt "string" zurück
Beispiel:
local tbl = {} tbl.x = 7 tbl.y = 5 tbl.str = "dies ist ein String" tbl.sqr = function(v) return v * v end
Erzeugt eine Tabelle mit den Variablen x, y, str und der Funktion sqr.
Du kannst diese Variablen so aufrufen:
tbl.x --gibt 7 zurück tbl.y --gibt 5 zurück tbl.str --gibt "dies ist ein String" zurück tbl.sqr(2) --gibt 4 zurück (dies ist also eine Funktion, die v nimmt und es quadriert. )
- 'object'
Verhält sich wie eine Wildcard.Acts as a wildcard. Es kann für jede der oben genannten benutzt werden, was nicht bedeutet, dass es von jedem Typ sein kann. Es hängt von der Funktion ab.
Generelle Argumente
The arguments given here are general, here are some examples:
'string Eigenschaft
Hiermit lässt sich festlegen, welche Eigenschaft eines Teilchens zu verändern ist. Nicht vergessen: Das ist eine 'string'variable, sodass ein Wort dahinter mit doppelten Anführungszeichen geschrieben werden muss.(") Die möglichen Eigenschaften sind:
"type"
"life"
"ctype"
"temp"
"tmp"
"vx"
"vy"
"x"
"y"
Alle anderen gegebenen Wörter rufen einen "invalid property error" hervor.
'object Wert
In was du die Eigenschaft ändern willst. Weil das eine objectvariable ist, hängt der Typ von der Funktion ab.
'string Type
Ein 'String', der der Code von einem Element ist, wie "dust" "watr" "spng".
'number index
Ein bestimmtes Teilchen, das von dem Index angegeben wird.
'number Status
0 oder 1, 0 für aus, 1 für an.
'number Breite und 'number Höhe
Steht für ein Rechteck.
'number x und 'number y
Eine 2-Dimensionale Koordinate.
Lua API
Powder toy hat die folgenden Funktionen als API:
Spiel
tpt.set_pause
Pausiere das Spiel
tpt.set_pause(number Status)
tpt.set_console
Stelle die Sichtbarkeit der Konsole ein.
tpt.set_console(number Status)
tpt.set_shortcuts
Sind Tastenkombinationen erlaubt?
tpt.set_shortcuts(number Status)
tpt.set_pressure
Stellt den Druck auf der Karte ein.
tpt.set_pressure(number x, number y)
tpt.set_pressure(number x, number y, number Breite, number Höhe)
tpt.set_pressure(number x, number y, number width, number height, number Wert)
Teilchen
tpt.reset_spark
Entfernt Materialien mit Strom von der Karte.
tpt.reset_spark()
tpt.set_property
Verändert die Art der Teilchen
tpt.set_property(string Eigenschaft, object Wert)
tpt.set_property(string Eigenschaft, object Wert, string Typ)
tpt.set_property(string Eigenschaft, object Wert, number index)
tpt.set_property(string Eigenschaft, object Wert, number index, string Typ)
tpt.set_property(string Eigenschaft, object Wert, number x, number y)
tpt.set_property(string Eigenschaft, object Wert, number x, number y, string Typ)
tpt.set_property(string Eigenschaft, object Wert, number x, number y, number Breite, number Höhe)
tpt.set_property(string Eigenschaft, object Wert, number x, number y, number Breite, number Höhe, string Typ)
object tpt.get_property
Erkennt verschiedene Eigenschaften eines Partikels und gibt sie als object zurück.
tpt.get_property(string Eigenschaft, number index)
tpt.get_property(string Eigenschaft, number x, number y)
tpt.create
Erzeugt ein Teilchen an einer bestimmten Stelle.
tpt.create(number x, number y, string Typ)
tpt.delete
Löscht ein Teilchen.
tpt.delete(number index)
tpt.delete(number x, number y)
Zeichnen
number tpt.textwidth
Gibt die Länge eines string in Pixeln an. Gibt eine number zurück.
tpt.textwidth(string Text)
Input/Output
tpt.log
Speichere eine Nachricht auf der Konsole
tpt.log(string Nachricht)
tpt.message_box
Zeigt ein OK-Fenster mit Titel und Nachricht an.
tpt.message_box(string Titel, string Nachricht)
string tpt.input
Lass den User Text eingeben und antwortet darauf mit immer der gleichen Nachricht. Die Einstellung "text" ist schon vorher eingegebener Text.
tpt.input(string Titel, string Nachricht)
tpt.input(string Titel, string Nachricht, string text)
Sonstige
string tpt.get_name
Erkennt den aktuellen Usernamen und gibt ihn als string heraus.
tpt.get_name()
tpt.register_step
Lass eine Funktion jeden Schritt ausgeführt werden.
tpt.register_step(function Funktion)
tpt.unregister_step
Entferne eine vorher automatisierte Funktion.
tpt.unregister_step(function Funktion)
Einfaches Beispiel
-- Diese Zeile ist ein Kommentar. Alles nach einem -- wird nicht von Lua gelesen.
-- Als erstes wird die Konsole entfernt: tpt.set_console(0)
-- Und jetzt kommt die Hauptfunktion: function ClassicPowder() local ox = 125 -- Dies ist unser Startpunkt für die Elemente, die wir erzeugen. local y = 4 -- Auf welchem y-Wert soll das Element erzeugt werden?
local x = ox -- Wo auf der x-Achse das Element erzeugt werden soll. Dies hängt von dem Startpunkt oben ab. for i=0, 10 do -- das ist eine Schleife, die von 0 bis 10 in 1erschritten geht und den Wert in i speichert. tpt.create(x + i, y, "DUST") --Erzeugt einen DUST-Partikel. end
x = x + ox -- Erhöhe x um das Offset von oben. for i=0, 10 do tpt.create(x + i, y, "WATR") --Erzeugt einen WATR-Partikel end
x = x + ox for i=0, 10 do tpt.create(x + i, y, "SALT") end
x = x + ox for i=0, 10 do tpt.create(x + i, y, "OIL") end
return false end
-- Als letztes wird sichergestellt, dass mit jedem Simulationsschritt die Funktion ausgeführt wird. tpt.register_step(ClassicPowder)