SetGraphics

Kategorie: Objekte / Darstellung
Ab Engineversion: 1.0 OC

Beschreibung

Ändert die Grafik des aufrufenden Objekts. Diese beeinflusst die Darstellung des betreffenden Objekts überall im Spiel: In der Landschaft, im Menü oder auf Maussteuerungssymbolen.

Syntax

bool SetGraphics(string gfx_name, id source_definition, int overlay, int overlay_mode, string action, int dwBlitMode, object overlay_object);

Parameter

gfx_name:
[opt] Name der neu zu setzenden Grafik. Bei nil wird die Standardgrafik gesetzt.
source_definition:
[opt] Definition, von der die Grafik entnommen werden soll. Wenn nicht angegeben, gilt die Definition des Objekts, dessen Grafik geändert wird. Wenn nicht angegeben für overlay!=0, wird das entsprechende Overlay entfernt.
overlay:
[opt] Index der zu setzenden Overlaygrafik. Muss wenn angegeben größer 0 sein, und fügt dem Objekt eine Grafik mit dem gegebenen Index hinzu, bzw. ändert sie wenn eine Grafik mit dem gegebenen Overlayindex schon existiert. Overlays mit größerem Index werden stets über denen mit kleinerem Index gezeichnet. Wenn ein Objekt nur eine Overlaygrafik hat, kann die symbolische Konstante GFX_Overlay (=1) verwendet werden.
overlay_mode:
[opt] Nur beachtet bei angegebenem overlay: Gibt an, wie das Overlay gezeichnet wird. Folgende Konstanten sind möglich:
Konstante Wert Effekt
GFXOV_MODE_None 0 Ungültig: Nicht benutzen
GFXOV_MODE_Base 1 Die Basisgrafik der angegebenen Definition, das heißt das Zielrechteck (0,0,Width,Height,OffsetX,OffsetY), wird an der Objektposition über die Grafik gelegt.
GFXOV_MODE_Action 2 Die Aktivität der angegebenen Objektdefinition.
GFXOV_MODE_Picture 3 Hat nur Auswirkung, wenn das Objekt im Inventar eines Clonks oder in einem Menü (z.B. Aktivieren in Gebäuden) auftaucht: Das Picture-Rechteck der angegebenen Definition wird über das Repräsentativbild des Objekts gezeichnet. Hiermit können zum Beispiel Zauberer auf Steine oder Zaubersymbole auf Schriftrollen gedruckt werden.
GFXOV_MODE_IngamePicture 4 Legt die Picture-Grafik der Quelldefinition über das Shape des Zielobjektes.
GFXOV_MODE_Object 5 Legt die aktuelle Objektgrafik inklusive aller Overlays von pOverlayObject über das Objekt. Achtung: Ein Objekt darf sich nicht rekursiv über sich selbst als Overlay legen.
GFXOV_MODE_ExtraGraphics 6 Benutzt die angegebene Grafik als Quellgrafik, um das Objekt erneut zu zeichnen. Die Quellkoordinaten sind die gleichen wie die, die auch beim Zeichnen von obj verwendet wurden.
action:
[opt] Nur für overlay_mode==GFXOV_MODE_Action: Aktivität in der Definition source_definition, dessen Grafik über das Zielobjekt gelegt werden soll. Diese Aktivität muss in der ActMap der Quelldefinition definiert sein. Achtung: Die Länge dieser Animation sollte 1 sein; bewegte Animtionen sind noch nicht möglich.
dwBlitMode:
[opt] Blitmodus der überlegten Grafik (z.B. additiv). Siehe SetObjectBlitMode
overlay_object:
[opt] Nur für overlay_mode==GFXOV_MODE_Object: Objekt, dessen Grafik über das Zielobjekt gelegt werden soll.

Anmerkung

Es wird bei overlay=0 nur die Grafik eines Objekts geändert. Der Effekt entspricht dem Ersetzen der Graphics.png/Overlay.png in der Definition; Quellangaben aus der ActMap oder DefCore.txt werden dadurch nicht beeinflusst; diese Koordinaten sollten also in der neuen Grafik auf sinnvolle Positionen verweisen (Das gilt auch für SolidMasks!).

Beispiele

FindObject(Find_ID(Rock))->SetGraphics(nil, Gold);
Gibt einem zufälligen Stein aus der Landschaft die Grafik des Goldes.
for (var obj in FindObjects(Find_And())) obj->SetGraphics();
Gibt allen Objekten im Spiel ihre Ursprungsgrafiken zurück.
SetGraphics(nil, Clonk, GFX_Overlay, GFXOV_MODE_Picture);
SetObjDrawTransform(800,0,0, 0,800,0,GFX_Overlay);
Objektscript: Das aufrufende Objekt bekommt ein verkleinertes Clonk-Bild auf die Picture-Grafik gedruckt.
Siehe auch: Objektdefinitionen (ocd), SetObjDrawTransform, SetObjectBlitMode, SetPicture
Sven2, 2005-03