SetGraphics

Kategorie: Objekte / Darstellung
Ab Engineversion: 4.9.1.0 GWE (erweitert ab 4.9.5.0 CE)

Beschreibung

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

Syntax

bool SetGraphics (string szGfxName, object pObj, id idSrcDef, int iOverlay, int iOverlayMode, string szAction, int dwBlitMode, object pOvelayObject);

Parameter

szGfxName:
[opt] Name der neu zu setzenden Grafik. Bei 0 wird die Standardgrafik (Graphics.png bzw. bmp) gesetzt.
pObj:
[opt] Objekt, dessen Grafik geändert werden soll. 0 bei lokalem Aufruf.
idSrcDef:
[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 iOverlay!=0, wird das entsprechende Overlay entfernt.
iOverlay:
[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.
iOverlayMode:
[opt] Nur beachtet bei angegebenem iOverlay: 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. Ab CR.
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. Ab CR.
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. Ab CR.
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 pObj verwendet wurden. Ab CR.
szAction:
[opt] Nur für iOverlayMode==GFXOV_MODE_Action: Aktivität in der Definition idSrcDef, dessen Grafik über das Zielobjekt gelegt werden soll. Diese Aktivität muss in der ActMap.txt der Quelldefinition definiert sein. Achtung: Die Länge dieser Animation sollte 1 sein; bewegte Animtionen sind noch nicht möglich. Ab CR.
dwBlitMode:
[opt] Blitmodus der überlegten Grafik (z.B. additiv). Siehe SetObjectBlitMode
pOvelayObject:
[opt] Nur für iOverlayMode==GFXOV_MODE_Object: Objekt, dessen Grafik über das Zielobjekt gelegt werden soll. Ab CR.

Anmerkung

Es wird bei iOverlay=0 nur die Grafik eines Objekts geändert. Der Effekt entspricht dem Ersetzen der Graphics.bmp/-.png/Overlay.png in der Definition; Quellangaben aus der ActMap.txt 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

SetGraphics(0, FindObject(ROCK), GOLD);
Gibt einem zufälligen Stein aus der Landschaft die Grafik des Goldes.
SetGraphics("Armored", FindObject(KNIG));
Gibt dem zuletzt erstellten Ritter im Spiel das Aussehen eines rüstungstragenden Ritters. Dazu werden die Dateien GraphicsArmored.png und OverlayArmored.png aus der Ritter-Gruppendatei für die Darstellung verwendet.
var obj; while (obj = FindObject(0, 0,0,0,0, 0, 0,0, 0, obj)) SetGraphics(0, obj);
Gibt allen Objekten im Spiel ihre Ursprungsgrafiken zurück.
SetGraphics(0, this(), CLNK, GFX_Overlay, GFXOV_MODE_Picture);
SetObjDrawTransform(800,0,0, 0,800,0, this(), GFX_Overlay);
Objektscript: Das aufrufende Objekt bekommt ein verkleinertes Clonk-Bild auf die Picture-Grafik gedruckt.
SetGraphics(0, FindObject(KNIG), SHIA, GFX_Overlay, GFXOV_MODE_Base, 0, GFX_BLIT_Additive);
Es wird bei irgendeinem Ritter ein Schild auf die Grafik gesetzt, und additiv gezeichnet.
Siehe auch: Objektdefinitionen (C4D), SetObjDrawTransform, SetObjectBlitMode, SetPicture
Sven2, Juni 2003, März 2005