[id] = LoadSprite(id, filename$[, args])
filename$
angegebenen Sprite in
den Arbeitsspeicher und weist ihm die id
zu. Wenn Sie Nil angeben,
wird LoadSprite()
automatisch eine freie ID für Sie auswählen
und Ihnen zurückgeben.
Unterstützte Bildformate sind PNG, JPEG, BMP, IFF ILBM und
einige mehr, je nachdem auf welcher Plattform Hollywood läuft.
Ab Hollywood 4.5, kann LoadSprite()
auch Animationsformate (IFF ANIM,
GIF ANIM, unkomprimierte AVIs oder AVIs mit Motion-JPEG-Kompression)
öffnen und wandelt diese Animationen direkt in ein Sprite um.
Das dritte Argument args
ist optional. Es ist eine Tabelle,
die weitere Möglichkeiten für den Ladevorgang verwendet. Die
folgenden Felder der Tabelle können benutzt werden:
Transparency:
LoadAlpha:
True
, wenn der Alphakanal des Bildes
auch geladen werden soll. Bitte beachten Sie, dass nicht alle
Bilder einen Alphakanal haben und dass nicht alle Bildformate
in der Lage sind, Alphakanaldaten zu speichern. Es wird vorgeschlagen,
dass Sie das PNG-Format verwenden, wenn Sie Alphakanaldaten
benötigen. Dieser Tag ist standardmäßig False
. (4.5)
X, Y, Width, Height, Frames, FPR:
Width
und Height
definieren die Dimensionen für den Sprite und
Frames
gibt an, wie viele Einzelbilder LoadSprite()
aus dem Bild
lesen wird. Wenn die Einzelbilder in mehreren Reihen im Quellbild
abgelegt sind, werden Sie auch das Argument FPR
übergeben
müssen (steht für Frames per row (Einzelbild pro Zeile)), um
LoadSprite()
mitzuteilen, wie viele Bilder es in jeder Reihe hat.
schließlich können Sie LoadSprite()
anweisen, wo in der Bilddatei
das Scannen starten soll, indem Sie die Felder X
und Y
angeben (beide standardmäßig auf 0 gesetzt). LoadSprite()
wird
dann an der Position X/Y
beginnen und mit Frames
die
Anzahl der Bilder mit der Abmessungen von Width
und Height
aus der Bilddatei filename$
lesen. Nachdem es die Anzahl
der in FPR
gesetzten Bilder gelesen hat, wird es in die nächste
Zeile vorrücken. Alle diese Felder können nur verwendet werden,
wenn Sie eine Bilddatei in filename$
angeben. Wenn Sie eine
Animationsdatei angeben, werden sie ignoriert.
Loader:
Adapter:
LoadTransparency:
True
gesetzt, wird die monochrome Transparenz
des Bildes geladen. Bitte beachten Sie, dass dieser Tag speziell
für monochrome Transparenzkanäle ausgelegt sind, die einem
transparenten Stift in einem palettenbasierten Bild haben.
Wenn Sie den Alphakanal eines Bildes laden möchten, stellen
Sie den Tag LoadAlpha
auf True
. Dieser LoadTransparency
Tag ist standardmäßig auf False
gesetzt. (V6.0)
LoadPalette:
True
gesetzt ist, lädt Hollywood den Sprite
als Paletten-Sprite. Dies bedeutet, dass Sie die Palette des
Sprites abrufen und ändern können, was für bestimmte Effekte
wie Farbwechsel nützlich ist. Sie können Stifte auch mit dem
Tag TransparentPen
(siehe unten) oder dem Tag LoadTransparency
(siehe oben) transparent machen. Paletten-Sprites haben auch
den Vorteil, dass sie weniger Speicher benötigen, da 1 Pixel
nur 1 Byte Speicherplatz anstelle von 4 Byte für 32-Bit-Bilder
benötigt. Dieser Tag ist standardmäßig False
. (V9.0)
TransparentPen:
LoadPalette
auf True
gesetzt wurde (siehe oben),
kann mit dem Tag TransparentPen
ein Stift definiert werden,
der transparent gemacht werden soll. Stifte werden ab 0 gezählt.
Alternativ können Sie auch den Tag LoadTransparency
auf True
setzen, um Hollywood zu zwingen, den in der Datei gespeicherten
transparenten Stift zu verwenden (sofern das Dateiformat die
Speicherung transparenter Stifte unterstützt). Dieser Tag ist
standardmäßig auf #NOPEN
gesetzt. (V9.0)
UserTags:
Bitte beachten Sie, dass die Felder Transparency
, LoadTransparency
und LoadAlpha
sich gegenseitig ausschließen. Eine Animation kann
nicht eine Maske und einen Alphakanal haben!
Dieser Befehl ist auch als Präprozessor-Anweisung vorhanden: mit @SPRITE können Sie Sprites vorladen.
LoadSprite(1, "MySprite.png", {Transparency = #RED})Dieser Code lädt "MySprite.png" als Sprite 1 und die Farbe Rot wird transparent dargestellt.
LoadSprite(1, "PlayerSprites.png", {Width = 32, Height = 32, Frames = 16, FPR = 8, Transparency = #BLACK})Der obige Code erzeugt den Sprite 1 aus der Datei "PlayerSprites.png". Sprite 1 wird die Dimensionen 32x32 haben und 16 verschiedene Einzelbilder enthalten. Die Einzelbilder sind mit 8 Bildern pro Zeile in dem Bild "PlayerSprites.png" abgespeichert. So muss
LoadSprite()
zwei Zeilen scannen, um die 16 Einzelbilder alle
zu lesen.