31
GLBasic - de / Re: Maus abfangen
« on: 2018-Feb-11 »
Hallo @Worebu,
ich glaube das was Du suchst, wäre eine MouseHit() funktion.
Da hab ich noch was, ist aber fast 10 Jahre her, man oh man, so Alt bin ich schon
Schranz0r hatte damal auch mal was geschrieben.
Hier mal der Code von mir und der Link zu dem thread.
http://www.glbasic.com/forum/index.php?topic=2572.msg19177#msg19177
oder gib in der SuFu mal "MouseHit" ein.
Schönen Sonntag noch
ich glaube das was Du suchst, wäre eine MouseHit() funktion.
Da hab ich noch was, ist aber fast 10 Jahre her, man oh man, so Alt bin ich schon

Schranz0r hatte damal auch mal was geschrieben.
Hier mal der Code von mir und der Link zu dem thread.
http://www.glbasic.com/forum/index.php?topic=2572.msg19177#msg19177
oder gib in der SuFu mal "MouseHit" ein.
Schönen Sonntag noch

Code: (glbasic) [Select]
// --------------------------------- //
// Project: Mousehit
// Start: Saturday, June 21, 2008
// IDE Version: 5.300
GLOBAL f1 = 200
GLOBAL f2 = 0
GLOBAL f3 = 50
GLOBAL f4 = 50
GLOBAL f5 = 50
GLOBAL f6 = 3
LOCAL mx,my,b1,b2
WHILE TRUE
MOUSESTATE mx,my,b1,b2 ///Mouse Initialisieren
MouseHitUpdate(b1,b2) // Abfrage welche Mousetasten überprüft werden sollen
// Mousbutton 1
IF MouseHit(1) = 1 // (1) = b1 | (2) = b2
// Returns >> 1 = MouseHit | 2 = MouseDown | -1 = release event | 0 = Nothing
f1 = RND(255)
f2 = RND(255)
f3 = RND(255)
ENDIF
// Mousbutton 2
IF MouseHit(2) = 1
f4 = RND(255)
f5 = RND(255)
f6 = RND(255)
ENDIF
DRAWRECT 10,10,100,100,RGB(f1,f2,f3)
DRAWRECT 115,10,100,100,RGB(f4,f5,f6)
SHOWSCREEN
WEND
END
//////////////////////////////////////////////////////////////////////////////////////////////////////
FUNCTION MouseHitUpdate : l_1 = 0, l_2 = 0
GLOBAL gMouseDown[], gMouseState[]
GLOBAL K[]
DIM K[3]
LOCAL i
// First Time call/ zum ersten Mal hier
IF BOUNDS(gMouseDown[],0)=0
DIM gMouseDown[7]
DIM gMouseState[7]
ENDIF
// For each key / für jede Taste
FOR i=0 TO 2
// k = KEY(i) ////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
K[0] = 0 //Dummy, für das bessere verständnis ;) Button 1 - 2
K[1] = l_1
K[2] = l_2
// Key is pressed / Taste ist gedrückt
IF K[i]
IF gMouseDown[i]
gMouseState[i]=2 // war 1
ELSE
gMouseDown[i]=2 // war 1
gMouseState[i]=1 // war 2
ENDIF
ELSE
// Key is not pressed / Taste nicht gedrückt
// Has key been pressed before?
// War die Taste gedrückt?
IF gMouseDown[i]
gMouseDown[i] = 0
gMouseState[i] = -1
ELSE
gMouseState[i]=0
ENDIF
ENDIF
NEXT
ENDFUNCTION
// 0 = not pressed / nicht gedrückt
// 1 = just pressed / gerade runtergedrückt
// 2 = pressed / gedrückt (gehalten)
// -1 = release event / wieder losgelassen
// Liefert den aktuellen zustand zurück, Max 6 Mousbuttons 1-6
FUNCTION MouseHit : mKEY
// SIcherheits abfrage
IF mKEY > 2 THEN mKEY = 0
IF mKEY < 0 THEN mKEY = 0
RETURN gMouseState[mKEY]
ENDFUNCTION