GLBasic forum

Main forum => Bug Reports => Topic started by: Corax on 2009-Aug-18

Title: Grabsprite/Gensprite Problem
Post by: Corax on 2009-Aug-18
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
Title: Re: Grabsprite/Gensprite Problem
Post by: Quentin on 2009-Aug-18
?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
Title: Re: Grabsprite/Gensprite Problem
Post by: Corax on 2009-Aug-24
Dann hab ich das Konzept v?llig missverstanden. Ich dachte Gensprite benutzt seperate Indizes.
Title: Re: Grabsprite/Gensprite Problem
Post by: Kitty Hello on 2009-Aug-25
N?, das liefert dir einen freien Slot in den zur Verf?gung stehenden.