Tach alle,
ich habe mir gedacht, da man ja, z.B. das mit Filerect gezeichnete mit Grabsprite als Sprite speichern
und anzeigen kann, das auch mit geladenen Bildern gehen sollte.
Die Idee ist, da es viele Bilder/Animationen gibt die als Tile in einem grossen Bild gespeichert sind, zu Laden,
als Sprite zu zeichnen (in den Backbuffer) und mit Grabsprite in einzelne Sprite zu wandeln.
Naja, blieb nur beim versuch :(
Irgendwie schein ich hier keinen zugriff auf den Buffer den ich dafür brauch, zu haben.
Hier mal mein kleiner Code:
// --------------------------------- //
// Project: Tileloader
// By Fabio "D²O" Soddu
// Start: Sunday, January 28, 2007
// IDE Version: 4.051
DIM joe[24] // feld für 24 einträge erstellen
GLOBAL joe_ani = 0 //ein counter für die Animation
LOADSPRITE "gfx/joe64.png",200 // Sprite laden, das Bild ist 64 hoch und 24*64 lang
SPRITE 200,0,0 // Sprite wird in den Backbuffer gezeichnet
FOR i = 0 TO 23
joe[i] = i // Spritenummern vergeben
GRABSPRITE joe[i],64*i,64,64,64 // Sprite kopieren und um 1 Tile(64pix) versetzen
NEXT
/////////////////////////// MAIN START ///////////////////////////////////////////////
WHILE TRUE
MOUSESTATE my,my,b1,b2
IF b1 THEN joe_ani = joe_ani + 1 //Kontoll abfrage für joe_ani
IF joe_ani > 23 THEN joe_ani = 1
SPRITE joe[joe_ani],0,0 // hier sollte das "gegrabte" Sprite gezeichnet werden
SHOWSCREEN
WEND
/////////////////////////// MAIN ENDE ///////////////////////////////////////////////
24*64=1536 -> So breit ist Dein Screen nicht ;)
Ausserdem schneidest Du den Bereich 64,64 -> 128,128 aus (für i=0), und Dein Sprite liegt auf 0,0->1536,64
Du solltest also:
FOR i=0 TO 23
SPRITE 200, -i*64,0
GRABSPRITE joe[i], 0,0, 64,64
NEXT
PS: Grabsprite ist be Transparentem Hintergrund ein Problem, wenn man 16 Bit Farbiefe hat (das kann bei nicht-Vollbild Programmen passieren).
Ah, Danke.
Also Grabsprite geht nur im Bildschirmbereich,
nicht Grabsprite versetzen, besser das Sprite versetzen.
Ja. Der "Backbuffer" ist genau gleich groß mit dem Screen.
Unter PocketPC / GP2X ist's übrigens gar kein Problem. Da geht's wie's soll