Seite 1 von 1

Teilsprites einer Levelmap ausgeben-->clipsprite

Verfasst: 28.10.2013 11:52
von N_Gnom
Ich möchte einen Level erstellen welcher aus einem Spritesheet besteht.
Mit clipsprite kann ich ja einen teilbereich eines sprites zeichnen lassen.
Müsste ich somit eine prozedur schreiben welche jeweils dem inhalt des arrayfeldes entspricht?
Also was ich meine wenn feld 1, dann zeichnet es bereich 32x32 von einem größeren sprite.
usw. usw. oder sollte ich zuerst das geladene spritesheet aufteilen und zwischenspeichern?
was wäre die performantere und bessere variante?
codes sind gern gesehen....

Re: Teilsprites einer Levelmap ausgeben-->clipsprite

Verfasst: 28.10.2013 14:13
von STARGÅTE
Also:

Code: Alles auswählen

DisplaySprite(TileType, X, Y)
ist natürlich schneller als

Code: Alles auswählen

ClipSprite(TileSet, ...)
DisplaySprite(TileSet, X, Y)
zumal ich nicht weiß, wie genau du den Clip-Bereich bestimmst, da gibt es sicher auch schnelle und langsamme Varianten.

Allerdings ist ein zusätzliches ClipSprite() trotzdem noch schnell genug, um überhaupt nicht aufzufallen.
(Es werden ja nur die Texture-U-V-Koordinaten verändern, nicht wirklich "geclippt")
Du kannnst es dir also aussuchen.

Re: Teilsprites einer Levelmap ausgeben-->clipsprite

Verfasst: 28.10.2013 19:32
von KeyKon
Also ich kann dir die zweite Variante empfehlen:

Code: Alles auswählen

ClipSprite(TileSet, ...)
DisplaySprite(TileSet, X, Y)
Es ist unkompliziert, verbraucht vermutlich ein bisschen weniger Speicher,
und ich konnte selbst bei massivem Einsatz davon bisher keinen Geschwindigkeitsunterschied zu einzelnen Sprites feststellen.

LG KeyKon

Re: Teilsprites einer Levelmap ausgeben-->clipsprite

Verfasst: 31.10.2013 23:40
von N_Gnom
das ist schonmal gut zu lesen.
muss ich das sprite dann wieder nach jedem clip zurücksetzen?
schön wäre ja eine native funktion wie loadanimsprite und displayanimsprite mit dem jeweiligen frame gewesen.

Re: Teilsprites einer Levelmap ausgeben-->clipsprite

Verfasst: 01.11.2013 00:01
von STARGÅTE
Nur wenn du das ganze Sprite wieder anzeigen lassen willst.
Ansonsten ändert jeder ClipSprite-Aufruf den Clip ausgehend vom Original.

Re: Teilsprites einer Levelmap ausgeben-->clipsprite

Verfasst: 01.11.2013 13:29
von N_Gnom
Stimmt...war wohl nicht ganz bei der Sache...hihi.
Dann muss ich mir ja nur nen drawsprite-clipsprite befehl für meine spritesheets selber basteln und gut ist.
Eine Levelmap wird ja kaum komplett gezeichnet.


probleme wirds lediglich bei einem animierten sprite geben?
würd gern meinen player beim laufen etc. animieren.
dazu müsste ich mir dann wohl doch eine extra prozedur schreiben.