Kategorie: Objekte
/ Darstellung
Ab Engineversion: 1.0 OC
SetGraphics
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.