Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

API Referenz

Vollständige API Referenz

Auch in Kurzform im Editor selbst verfügbar: image.png

Asset-Konstruktoren

Konstruktoren erstellen die Hauptasset-Typen, die vom Editor verwendet werden. Wenn du einen einer Variablen zuweist, erkennt der Editor ihn und ermöglicht es dir, den passenden Asset-Editor mit Strg+Klick zu öffnen.

Funktion Beschreibung
Sprite(width, height) Erstellt ein Sprite-Asset mit angegebenen Abmessungen
Scene() oder Scene(name) Erstellt ein Szene-Asset
Audio() Erstellt ein kleines Tracker-Stil Audio-Asset
Object() oder Object(name) Erstellt ein Spielobjekt

Listenmethoden

Erstelle Listen mit [] oder [value1, value2, ...]. Lese und überschreibe Einträge mit list[index] und iteriere mit for (var i = 0; i < list.length(); i = i + 1).

Funktion Beschreibung
list.add(value) Hängt einen Wert am Ende der Liste an
list.length() Gibt die Anzahl der Elemente in der Liste zurück
list.remove(index) Entfernt das Element am angegebenen Index
list.clear() Entfernt alle Elemente aus der Liste

Operatoren

Operatoren sind kleine Symbole, die gängige Berechnungen durchführen. Der Modulo-Operator ist besonders nützlich für das Wrappen von Timern, Indizes, Animationsschritten oder sich wiederholenden Mustern.

Operator Beschreibung
% Modulo. Gibt den Rest nach der Division zurück

Objekt-Eigenschaften

Objekte sind die Dinge, die dein Skript normalerweise während des Spiels bewegt und ändert. Diese Funktionen lesen oder aktualisieren die Position, das Sprite, das Kollisionsverhalten, die Schicht und den visuellen Farbton eines Objekts.

Funktion Beschreibung
getX(obj) Gibt die X-Position des Objekts zurück
setX(obj, x) Setzt die X-Position des Objekts
getY(obj) Gibt die Y-Position des Objekts zurück
setY(obj, y) Setzt die Y-Position des Objekts
getVelocityX(obj) Gibt die X-Geschwindigkeit des Objekts zurück
setVelocityX(obj, vx) Setzt die X-Geschwindigkeit des Objekts
getVelocityY(obj) Gibt die Y-Geschwindigkeit des Objekts zurück
setVelocityY(obj, vy) Setzt die Y-Geschwindigkeit des Objekts
getName(obj) Gibt den Namen des Objekts zurück
setName(obj, name) Setzt den Namen des Objekts
getSprite(obj) Gibt das Sprite des Objekts zurück
setSprite(obj, sprite) Weist ein Sprite dem Objekt zu (setzt die Animation auf Frame 0 zurück)
getLayer(obj) Gibt die Zeichenschicht des Objekts zurück
setLayer(obj, layer) Setzt die Zeichenschicht des Objekts (höher = später gezeichnet)
getTint(obj) Gibt den Farbton als [r, g, b, a]-Liste zurück
setTint(obj, r, g, b, a) Setzt den Farbton des Objekts (0-255 jeweils)
getCollisionType(obj) Gibt die Kollisionsartnummer zurück
setCollisionType(obj, type) Setzt die Kollisionsart

Sprite-Funktionen

Sprite-Funktionen ermöglichen es, den Sprite-Pixeldaten und die Animationsgeschwindigkeit zu inspizieren oder zu modifizieren. Die meisten Spiele zeichnen Sprites im Editor, aber diese Funktionen sind nützlich für prozedurale Effekte, Debugging oder einfache Laufzeitanpassungen.

Funktion Beschreibung
fillSprite(sprite, r, g, b, a) Füllt alle Pixel aller Frames mit einer soliden RGBA-Farbe (0-255)
getPixel(sprite, frame, x, y) Gibt [r,g,b,a] des Pixels an (x,y) im angegebenen Frame zurück oder null, wenn außerhalb der Grenzen
setPixel(sprite, frame, x, y, r, g, b, a) Setzt die Pixel-Farbe an (x,y) im angegebenen Frame. Nichts geschieht, wenn außerhalb der Grenzen
getAnimationFPS(sprite) Gibt die Animationsgeschwindigkeit des Sprites in Frames pro Sekunde zurück
setAnimationFPS(sprite, fps) Setzt die Animationsgeschwindigkeit des Sprites in Frames pro Sekunde

Animationsfunktionen

Animationsfunktionen arbeiten an Objekten, die Sprites mit mehreren Frames verwenden. Verwende sie, wenn du willst, dass Code die aktuelle Animationsframe inspiziert oder gezwungen wird.

Funktion Beschreibung
getFrame(obj) Gibt den aktuellen Animationsframe-Index des Objekts zurück
setFrame(obj, frameIndex) Setzt den Animationsframe des Objekts (setzt den Timer zurück)
getFrameCount(obj) Gibt die Anzahl der Frames im Sprite des Objekts zurück

Transformationsfunktionen (Flip/Rotation)

Transformationsfunktionen ändern, wie das Sprite eines Objekts gezeichnet wird, ohne das Sprite selbst zu bearbeiten. Sie sind gut, um ein Sprite in mehreren Richtungen wiederzuverwenden.

Funktion Beschreibung
getFlipX(obj) Gibt zurück, ob das Objekt horizontal gespiegelt ist
setFlipX(obj, flip) Setzt die horizontale Spiegelung. true = gespiegelt, false = normal
getFlipY(obj) Gibt zurück, ob das Objekt vertikal gespiegelt ist
setFlipY(obj, flip) Setzt die vertikale Spiegelung. true = gespiegelt, false = normal
getRotation(obj) Gibt die 90-Grad-Rotation des Objekts zurück (0-3)
setRotation(obj, rot) Setzt die 90-Grad-Rotation: 0=0, 1=90, 2=180, 3=270 Grad im Uhrzeigersinn

Hinweis: Diese Transformationen werden nur zur Renderzeit angewendet. Sie beeinflussen nicht die Kollisionskästen oder tatsächlichen Sprite-Pixeldaten.

Kollisionsarten

Kollisionsarten entscheiden, wie ein Objekt an Kollisionsprüfungen teilnimmt. Wähle den Typ basierend auf der Rolle des Objekts: Wände sind normalerweise statisch, Spieler normalerweise dynamisch und Abholungen oft Trigger.

Konstante Wert Beschreibung
COLLISION_NONE() 0 Keine Kollisionsdetektion
COLLISION_STATIC() 1 Kollidiert, bewegt sich aber nicht
COLLISION_DYNAMIC() 2 Kollidiert und wird herausgeschoben
COLLISION_TRIGGER() 3 Erkennt Kollisionsereignisse, blockiert aber nicht

Szenenfunktionen

Szenenfunktionen steuern, welche Szene aktiv ist, welche Objekte sich darin befinden und szenenweite Einstellungen wie Hintergrundfarbe und Schwerkraft. Sie bieten auch Suchhilfen, um Objekte an Positionen oder nach Namen zu finden.

Funktion Beschreibung
addObject(scene, obj) Fügt ein Objekt zu einer Szene hinzu
removeObject(scene, obj) Entfernt ein Objekt aus einer Szene
setScene(scene) Setzt die aktive Szene
getScene() Gibt die aktuelle aktive Szene zurück
resetScene(scene) Setzt die Szene auf ihren ursprünglichen Zustand zurück (wie im Editor entworfen)
setBackgroundColor(scene, r, g, b) Setzt die Hintergrundfarbe der Szene (RGB 0-255)
getBackgroundColor(scene) Gibt die Hintergrundfarbe als [r, g, b]-Liste zurück
getGravityX(scene) Gibt die Schwerkraftkomponente X der Szene zurück
setGravityX(scene, gx) Setzt die Schwerkraftkomponente X der Szene
getGravityY(scene) Gibt die Schwerkraftkomponente Y der Szene zurück
setGravityY(scene, gy) Setzt die Schwerkraftkomponente Y der Szene (positiv = unten)
getObjectAt(scene, x, y) Gibt das erste Objekt an Punkt (x,y) zurück oder null
getObjectsAt(scene, x, y) Gibt eine Liste aller Objekte an Punkt (x,y) zurück
getObjectsInBox(scene, x, y, w, h) Gibt alle Objekte zurück, die den Kasten überlappen
getObjectByName(scene, name) Findet ein Objekt nach Namen oder null, wenn nicht gefunden
getObjectCount(scene) Gibt die Anzahl der Objekte in der Szene zurück
getAllObjects(scene) Gibt eine Liste aller Objekte in der Szene zurück
isObjectInScene(scene, obj) Gibt zurück, ob das Objekt in der Szene ist
getObjectsBySprite(scene, sprite) Gibt alle Objekte zurück, die das angegebene Sprite verwenden
getObjectsByCollisionType(scene, type) Gibt alle Objekte mit dem angegebenen Kollisions typ zurück

Audio-Wiedergabe

Audio-Wiedergabefunktionen starten und stoppen Audio-Assets aus Skripten. playAudio() gibt ein Handle zurück, sodass du später diese spezifische Wiedergabeinstanz stoppen oder überprüfen kannst.

Funktion Beschreibung
playAudio(audio) Startet ein Audio-Asset und gibt eine Wiedergabe-Handle-ID zurück
stopAudio(handle) Stoppt ein Wiedergabe-Handle, das von playAudio() zurückgegeben wurde
isAudioPlaying(handle) Gibt true zurück, solange das Wiedergabe-Handle weiterhin aktiv ist

Bildschirmfunktionen

Bildschirmfunktionen helfen, wenn du die Fenstergröße wissen oder zwischen Bildschirm-Pixeln und Weltpositionen umwandeln musst. Dies ist nützlich für Maus-Zielen, Klickerkennung und kamera-bewusste UI.

Funktion Beschreibung
getScreenWidth() Gibt die Bildschirm-/Fensterbreite in Pixeln zurück
getScreenHeight() Gibt die Bildschirm-/Fensterhöhe in Pixeln zurück
screenToWorld(screenX, screenY) Wandelt Bildschirm-Pixel-Koordinaten in Weltkoordinaten um. Gibt [worldX, worldY] zurück
worldToScreen(worldX, worldY) Wandelt Weltkoordinaten in Bildschirm-Pixel-Koordinaten um. Gibt [screenX, screenY] zurück

Fenster-Modus

Steuere den Fenster-Modus für exportierte Spiele. Diese Funktionen haben keine Wirkung, wenn du im Editor spielst (der Editor hat höhere Autorität über den Fensterzustand).

Konstante Wert Beschreibung
WINDOW_WINDOWED() 0 Regulärer Fenstermodus
WINDOW_MAXIMIZED() 1 Maximiertes Fenster (Standard)
WINDOW_FULLSCREEN() 2 Randloser Vollbildmodus
Funktion Beschreibung
getWindowMode() Gibt die aktuelle Fenster-Modus-Konstante zurück
setWindowMode(mode) Setzt den Fenster-Modus. Funktioniert nur in exportierten Spielen

Beispiel:

func start() {
    // Setze den Fenster-Modus (WINDOW_MAXIMIZED ist der Standard für exportierte Spiele)
    setWindowMode(WINDOW_MAXIMIZED())
}

Hinweis: Wenn setWindowMode() in einem exportierten Spiel nie aufgerufen wird, ist der Standard WINDOW_MAXIMIZED.

UI-Funktionen

Die UI verwendet eine virtuelle Bildschirmauflösungsauflösung. Der Standard-UI-Raum ist 100 x 100. Die Schriftgröße kann für nachfolgende Text-Widgets mit uiPushFontSize(size) erhöht werden und mit uiPopFontSize() wiederhergestellt werden. Schriftfarben können mit uiPushFontColor(r, g, b[, a]) gestapelt werden, und UI-Elementfüllungen können mit uiPushElementColor(r, g, b[, a]) gestapelt werden. Wie bei der restlichen sofortigen UI gelten diese Überschreibungen während des Baus der UI des aktuellen Frames. Wenn die gepushte Größe 0 oder kleiner ist, verwendet die Engine die automatische Größe.

Funktion Beschreibung
getUIResolutionX() Gibt die aktuelle virtuelle UI-Breite zurück
setUIResolutionX(width) Setzt die virtuelle UI-Breite, die für nachfolgende UI-Aufrufe verwendet wird
getUIResolutionY() Gibt die aktuelle virtuelle UI-Höhe zurück
setUIResolutionY(height) Setzt die virtuelle UI-Höhe, die für nachfolgende UI-Aufrufe verwendet wird
uiPushFontSize(size) Fügt einen Schriftgrößenskalierungswert für nachfolgende UI-Text hinzu. Werte <= 0 verwenden automatische Größenanpassung
uiPopFontSize() Entfernt die zuletzt verwendete UI-Schriftgrößeneinstellung
uiPushFontColor(r, g, b) oder uiPushFontColor(r, g, b, a) Fügt eine Schriftfarbe für nachfolgende UI-Texte hinzu
uiPopFontColor() Entfernt die zuletzt verwendete UI-Schriftfarbe
uiPushElementColor(r, g, b) oder uiPushElementColor(r, g, b, a) Fügt eine Füllfarbe für Kästchen, Schaltflächen, Umschalter, Schieberegler und Bildschaltflächen hinzu
uiPopElementColor() Entfernt die zuletzt verwendete UI-Elementfarbe
uiLabel(text, x, y) Zeichnet Text im Bildschirmraum an virtuellen UI-Koordinaten
uiBox(x, y, w, h) Zeichnet ein einfaches Panel-Kästchen
uiButton(text, x, y, w, h) Zeichnet eine Schaltfläche und gibt einen der UI_*()-Statuskonstanten zurück
uiToggle(text, value, x, y, w, h) Zeichnet einen Umschalter und gibt den aktualisierten booleschen Wert zurück
uiSlider(text, value, min, max, x, y, w, h) Zeichnet einen Schieberegler und gibt den aktualisierten numerischen Wert zurück
uiSprite(sprite, x, y) Zeichnet ein Sprite im UI-Raum mit der natürlichen Größe des Sprites in UI-Einheiten
uiSprite(sprite, x, y, w, h) Zeichnet ein Sprite im UI-Raum mit einer expliziten Größe
uiImageButton(sprite, x, y, w, h) Zeichnet eine Bildschaltfläche und gibt einen der UI_*()-Statuskonstanten zurück

UI-Zustandskonstanten

UI-Funktionen geben Zustandskonstanten zurück, sodass Ihr Skript feststellen kann, ob ein Widget inaktiv, schwebend, gehalten oder geklickt wurde. Normalerweise ist UI_CLICKED() der Wert, den Sie für Schaltflächenaktionen überprüfen.

Konstanten Wert Beschreibung
UI_IDLE() 0 Widget ist weder schwebend noch gedrückt
UI_HOVERED() 1 Maus schwebt über dem Widget
UI_HELD() 2 Maustaste ist auf dem Widget gedrückt
UI_CLICKED() 3 Widget wurde in diesem Frame geklickt

Kamera-Funktionen

Die Kameraposition repräsentiert das Zentrum der Ansicht. Der Zoom sorgt für eine konsistente vertikale Weltansicht unabhängig von der Bildschirmgröße.

Funktion Beschreibung
getCameraX(scene) Gibt die Kameraposition X (Zentrum der Ansicht) zurück
setCameraX(scene, x) Setzt die Kameraposition X
getCameraY(scene) Gibt die Kameraposition Y (Zentrum der Ansicht) zurück
setCameraY(scene, y) Setzt die Kameraposition Y
getCameraZoom(scene) Gibt den Zoomlevel der Kamera zurück
setCameraZoom(scene, zoom) Setzt den Kamerazoom. Zoom 1.0 zeigt 720 Welt-Einheiten vertikal, 3.0 zeigt 240 Einheiten.

Zoom-Verhalten: Der Zoom sorgt für eine konsistente vertikale Weltansicht unabhängig von der Fenstergröße oder dem Seitenverhältnis. Breitere Bildschirme zeigen mehr horizontal, aber dieselbe vertikale Menge.

Eingabe-Funktionen

Eingabefunktionen ermöglichen dem Spiel, auf den Zustand von Tastatur und Maus zu reagieren. Verwenden Sie Pressed für Einzelframe-Aktionen, Held für kontinuierliche Bewegungen und Released für Aktionen, die beim Loslassen einer Taste stattfinden.

Funktion Beschreibung
isKeyPressed(key) Wahr nur im Frame, in dem die Taste gedrückt wurde
isKeyHeld(key) Wahr, solange die Taste gedrückt gehalten wird
isKeyReleased(key) Wahr nur im Frame, in dem die Taste losgelassen wurde
getMouseX() Gibt die Maus-X-Position in Bildschirmkoordinaten zurück
getMouseY() Gibt die Maus-Y-Position in Bildschirmkoordinaten zurück
getMouseDeltaX() Gibt die Maus-X-Bewegung in diesem Frame zurück
getMouseDeltaY() Gibt die Maus-Y-Bewegung in diesem Frame zurück
isMouseButtonPressed(button) Wahr nur im Frame, in dem die Maustaste gedrückt wurde
isMouseButtonHeld(button) Wahr, solange die Maustaste gedrückt gehalten wird
isMouseButtonReleased(button) Wahr nur im Frame, in dem die Maustaste losgelassen wurde
getFPS() Gibt die aktuelle Bildrate pro Sekunde zurück

Maus-Tastenkonstanten

Maus-Tastenkonstanten werden in die Maus-Eingabefunktionen übergeben. Sie machen den Code lesbarer als rohe Zahlen.

Konstante Beschreibung
MOUSE_LEFT() Linke Maustaste
MOUSE_RIGHT() Rechte Maustaste
MOUSE_MIDDLE() Mittlere Maustaste

Tastenkonstanten

Tastenkonstanten werden in die Tastatureingabefunktionen übergeben. Die Engine stellt Buchstaben, Zahlen, Funktionstasten, Pfeile und eine kleine Menge gemeinsamer Sondertasten bereit.

Buchstaben: KEY_A() bis KEY_Z()

Zahlen: KEY_0() bis KEY_9()

Funktionstasten: KEY_F1() bis KEY_F12()

Sondertasten: | Konstante | Taste | |----------|-----| | KEY_SPACE() | Leertaste | | KEY_ENTER() | Enter/Return | | KEY_ESCAPE() | Escape | | KEY_TAB() | Tab | | KEY_BACKSPACE() | Rücktaste | | KEY_DELETE() | Löschen | | KEY_SHIFT() | Shift | | KEY_CTRL() | Steuerung | | KEY_ALT() | Alt | | KEY_LEFT() | Linke Pfeiltaste | | KEY_RIGHT() | Rechte Pfeiltaste | | KEY_UP() | Obere Pfeiltaste | | KEY_DOWN() | Untere Pfeiltaste | | KEY_HOME() | Pos1 | | KEY_END() | Ende |

Mathe-Funktionen

Mathe-Helfer decken häufige Berechnungen in Bewegung, Animation, Zufälligkeit und Wertgrenzen ab. Sie halten Skripte kürzer und einfacher zu lesen.

Funktion Beschreibung
abs(n) Absoluter Wert
min(a, b) Gibt das kleinere von zwei Zahlen zurück
max(a, b) Gibt das größere von zwei Zahlen zurück
clamp(value, min, max) Begrenz den Wert zwischen min und max
lerp(a, b, t) Interpoliert linear von a nach b unter Verwendung von t
floor(n) Rundet auf die nächste ganze Zahl nach unten
ceil(n) Rundet auf die nächste ganze Zahl nach oben
round(n) Rundet auf die nächste ganze Zahl
sign(n) Gibt -1, 0 oder 1 zurück, abhängig vom Vorzeichen des Eingangs
sqrt(n) Quadratwurzel
pow(base, exponent) Hebt eine Basis auf einen Exponenten
sin(radians) Sinus eines Winkels in Bogenmaß
cos(radians) Kosinus eines Winkels in Bogenmaß
tan(radians) Tangens eines Winkels in Bogenmaß
random() Gibt eine zufällige Fließkommazahl zwischen 0.0 und 1.0 zurück
randomRange(min, max) Gibt eine zufällige Fließkommazahl zwischen min und max zurück
randomInt(min, max) Gibt eine zufällige Ganzzahl zwischen min und max (einschließlich) zurück
PI() Gibt pi (3.14159...) zurück
TAU() Gibt tau (2 * pi = 6.28318...) zurück
TWOPI() Gibt 2 * pi (gleich wie TAU) zurück
E() Gibt Eulers Zahl e (2.71828...) zurück
deg2rad(degrees) Wandelt Grad in Bogenmaß um
rad2deg(radians) Wandelt Bogenmaß in Grad um

Utility-Funktionen

Utility-Funktionen sind allgemeine Helfer, die nicht zu einem bestimmten Asset-Typ gehören. print() ist besonders nützlich beim Lernen, da es zeigt, was Ihr Skript tut.

Funktion Beschreibung
print(value) Gibt die Ausgabe für Debugging (im Spiel angezeigt) aus
quitGame() Beendet das Spiel. Im Editor wird der Spielmodus gestoppt. In exportierten Spielen wird die Anwendung geschlossen

String-Funktionen

String-Funktionen arbeiten mit Textwerten. Zurzeit ist dieser Abschnitt absichtlich klein.

Funktion Beschreibung
strlen(string) Gibt die Länge eines Strings (Anzahl der Zeichen) zurück

Speicherfunktionen

Speichern und Laden von Spieldaten in Dateien. Unterstützt Zahlen, Strings, Booleans und Listen (einschließlich verschachtelter Listen). Unterstützt keine Werte von Sprite, Scene, Object oder Audio.

Funktion Beschreibung
save(path, data) Speichert Daten in einer Datei im Binärformat. Gibt true beim Erfolg zurück
save(path, data, format) Speichert Daten mit dem angegebenen Format: "binary" oder "text"
save(path, data, format, key) Speichert Daten mit Verschlüsselung unter Verwendung des angegebenen Schlüssel-Strings
load(path) Lädt Daten aus einer Datei. Gibt die Daten oder null bei einem Fehler zurück
load(path, key) Lädt verschlüsselte Daten unter Verwendung des angegebenen Schlüssel-Strings
fileExists(path) Gibt true zurück, wenn die Datei an dem angegebenen Pfad existiert
deleteFile(path) Löscht die Datei am angegebenen Pfad. Gibt true beim Erfolg zurück
getAppDataPath() Gibt den AppData/Tiniest2D-Ordnerpfad zurück (erstellt ihn, falls erforderlich)
getDocumentsPath() Gibt den Pfad zum Dokumentenordner des Benutzers zurück
getGamePath() Gibt das Verzeichnis zurück, in dem die Spielanwendung gespeichert ist

Beispiel: Speichern und Laden des Spielerfortschritts

// Spielerdaten speichern
var playerData = [100, "Player1", true, [1, 2, 3]]
var savePath = getAppDataPath() + "/MyGame/save.dat"
if (save(savePath, playerData)) {
    print("Spiel gespeichert!")
}

// Spielerdaten laden
if (fileExists(savePath)) {
    var loaded = load(savePath)
    if (loaded != null) {
        var health = loaded[0]
        var name = loaded[1]
        var hasKey = loaded[2]
        var inventory = loaded[3]
    }
}

// Verschlüsseltes speichern (zum Verbergen von Daten vor alltäglicher Prüfung)
var secretData = ["secret", 12345]
save(getAppDataPath() + "/MyGame/config.dat", secretData, "binary", "mySecretKey")
var decrypted = load(getAppDataPath() + "/MyGame/config.dat", "mySecretKey")

// Textformat (menschlich lesbar, nützlich für Debugging)
save(getAppDataPath() + "/MyGame/debug.txt", playerData, "text")

Hinweise:

  • Binärformat (Standard) ist kompakt und schneller
  • Textformat ist menschlich lesbar, nützlich für Debugging
  • Falscher Verschlüsselungsschlüssel gibt null zurück (Daten sind Müll)
  • Verzeichnisse werden beim Speichern automatisch erstellt