Seite 1 von 1

Imgage in ein Sprite kopieren?

Verfasst: 05.06.2006 23:18
von Kurzer
Hallo zusammen,

ist es möglich ein Image direkt in ein Sprite zu kopieren?

Momentan mache ich das, indem ich das Image auf einen Screen zeichne und von dort dann in ein Sprite grabbe. Geht das auch ohne den Umweg des zeichnens?

Gruß Markus

Verfasst: 05.06.2006 23:23
von Kaeru Gaman
wo hast du denn das image her?

die meisten image-manipulationen kannst du auch direkt mit sprites machen.
also, wenn du das image lädst oder bearbeitest, nimm vielleicht gleich ein sprite.

damit will ich nicht gesagt haben, dass deine frage nicht interessant ist.

hab momentan keine lösung parat. pointer verbiegen vielleicht?

Verfasst: 05.06.2006 23:42
von Kurzer
Das Image wird geladen - insoweit ist Deine Frage schon berechtigt. :)

Aber es handelt sich um eine Hintergrundgrafik für einen windowedScreen.
Da komme noch ein paar Sonderschritte zu, die ein direktes Laden in ein Sprite eher nicht so einfache machen.

1) Das Image wird geladen
2) Das Image wird resized (falls ein nicht passendes Hintergrundbild im Verzeichnis liegt)
3) Das Image wird auf den Screen gezeichnet
4) Dann wird das gezeichente Image in 4 Sprites gegrabbed.

Warum 4 Sprites? Ich möchte, daß der Hintergrund auch auf alten Grakas dargestellt wird. Wir hatten letztens ja die Erkenntnis, daß man dafür Sprites mit einer Kantenlänge von einem Vielfachen von 2 benötigt. Ansonsten kommt da Grafikmüll raus.

Ich "fotografiere" also 4 überlappende Bereiche des Images ab und packe sie in 4 Sprites mit vordefinierter Größe (384 x 480 pixel)

ungefähr so...

Code: Alles auswählen

+-------+-+--------+
|       : :        |
|       : :        |
+.......+.+........+
+.......+.+........+
|       : :        |
|       : :        |
+-------+-+--------+
Wenn ich das Image direkt in ein Sprite kopieren könnte, würde ich das auch vier mal machen und dann die Sprites entsprechend croppen.

Aber egal... so gehts auch. Da ich als Zeichenfläche eh den Bereich nutze, auf dem das Bild im Spiel später hingepappt wird, fällt es dem User auch gar nicht auf.

Wäre aber manchmal bestimmt doch nützlich wenn man ein Image "unsichtbar" in ein Sprite wandeln könnte.

Gruß Markus

PS: Den Hintergrund (also das Image) in jedem Frame per DrawImage darzustellen statt per Sprites ist leider viel zu langsam.

Verfasst: 05.06.2006 23:52
von Kaeru Gaman
> Wir hatten letztens ja die Erkenntnis, daß man dafür Sprites mit einer Kantenlänge von einem Vielfachen von 2 benötigt. Ansonsten kommt da Grafikmüll raus.

nur wenn sie als texture-sprites verwendet werden, aus denen du 3DSprites machen willst.

normale sprites können jedes beliebige seitenverhältnis haben.


wird das image denn irgendwie on-the-fly erstellt? wo kommt das denn her?

Verfasst: 06.06.2006 09:13
von Kurzer
>> nur wenn sie als texture-sprites verwendet werden, aus denen du 3DSprites machen willst.
>> normale sprites können jedes beliebige seitenverhältnis haben.

Hmm, gleich mal testen... :)

>>wird das image denn irgendwie on-the-fly erstellt? wo kommt das denn her?

Momentan wird das als normales BMP file von der Platte geladen.

Gruß Markus

Verfasst: 06.06.2006 09:22
von Kaeru Gaman
> Momentan wird das als normales BMP file von der Platte geladen.

genau das meine ich. lade es also gleich als sprite.

da kannst du auch clippen um teilbereiche anzuzeigen usw., was aber wahrscheinlich nicht nötig ist.
solange du es nicht als Sprite3D benutzen willst, kanst du es so wie es is aufn screen pinnen. ;)