Grabsprite/Gensprite Problem

Previous topic - Next topic

Corax

Wenn ich Grabsprite benutze, ?ndert sich die Grafik (GENSPRITE) des Mauspointers.
(linke Maustaste dr?cken um Grabsprite zu benutzen)

Code (glbasic) Select
// declare gImgTest as GENSPRITE
gImgTest = GENSPRITE()

// draw mouse-cursor GFX
DRAWRECT 0, 0, 16, 16, RGB(255,255,255)

// grab mouse-cursor GFX and store it in gImgTest
GRABSPRITE gImgTest, 0, 0, 16, 16

// mouse state variables
GLOBAL mx, my, mb1, mb2

WHILE TRUE

   // read mouse state
   MOUSESTATE mx, my, mb1, mb2
   
   // draw mouse cursor at mouse x/y coordinates
   DRAWSPRITE gImgTest, mx, my

   // when left mouse button is pressed, grab screen GFX
   IF mb1; GRABSPRITE 0, 0, 0, 640, 480; ENDIF
   
   SHOWSCREEN
   
WEND

Quentin

?hem, wenn du das so benutzt liefert GENSPRITE beim ersten Aufruf 0 als freies Grafikhandle, folglich ?berschreibst du die Grafik f?r den Mauszeiger mit deinem zweiten GRABSPRITE.

Wenn du beim Klick auf die linke Maustaste wiederum GENSPRITE nutzt, klappt es.

Code (glbasic) Select

// declare gImgTest as GENSPRITE
gImgTest = GENSPRITE()


// draw mouse-cursor GFX
DRAWRECT 0, 0, 16, 16, RGB(255,255,255)

// grab mouse-cursor GFX and store it in gImgTest
GRABSPRITE gImgTest, 0, 0, 16, 16

// mouse state variables
GLOBAL mx, my, mb1, mb2

WHILE TRUE

   // read mouse state
   MOUSESTATE mx, my, mb1, mb2
   
   // draw mouse cursor at mouse x/y coordinates
   DRAWSPRITE gImgTest, mx, my

   // when left mouse button is pressed, grab screen GFX
   IF mb1
     gImgTest2 = GENSPRITE()
    GRABSPRITE gImgTest2, 0, 0, 640, 480
   ENDIF
   
   SHOWSCREEN
   
WEND

Corax

Dann hab ich das Konzept v?llig missverstanden. Ich dachte Gensprite benutzt seperate Indizes.

Kitty Hello

N?, das liefert dir einen freien Slot in den zur Verf?gung stehenden.