Mousehit events

Previous topic - Next topic

Schranz0r

Code (glbasic) Select
FUNCTION InitMousehit: SYSTEM_POINTER = FALSE // Init Mousehits, please call before the While-Wend !
SYSTEMPOINTER SYSTEM_POINTER
GLOBAL __mx, __my, __b1, __b2
GLOBAL __Mhit[]
DIM __Mhit[2][1]
ENDFUNCTION

FUNCTION Mousehit_left: //returns status: 0 = unpressed, 1 = Hit, 2 = Down, -1 = release

IF __Mhit[0][0] = 0 AND MOUSEAXIS(3)
__Mhit[0][0] = 1
ENDIF

RETURN __Mhit[0][0]
ENDFUNCTION

FUNCTION Mousehit_right: //returns status: 0 = unpressed, 1 = Hit, 2 = Down, -1 = release

IF __Mhit[1][0] = 0 AND MOUSEAXIS(4)
__Mhit[1][0] = 1
ENDIF

RETURN __Mhit[1][0]
ENDFUNCTION


FUNCTION MouseX:
RETURN __mx
ENDFUNCTION

FUNCTION MouseY:
RETURN __my
ENDFUNCTION

FUNCTION UpdateMousehit: // Update Mousehits, call befor SHOWSCREEN


MOUSESTATE __mx, __my, __b1, __b2

FOR i = 0 TO 1
IF __Mhit[i][0] = 1 AND MOUSEAXIS(3+i)
__Mhit[i][0] = 2
ENDIF
IF __Mhit[i][0] = -1
__Mhit[i][0] = 0
ENDIF
IF __Mhit[i][0] = 2 AND MOUSEAXIS(3+i) = 0
__Mhit[i][0] = -1
ENDIF
NEXT

ENDFUNCTION
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Moru

Nice, the keyhit return codes are slightly different though, mabe make them a bit normalized? :-)
//  0 = not pressed
//  2 = just pressed (hit)
//  1 = pressed (down)
// -1 = release event

Schranz0r

Quote from: Moru on 2010-Feb-14
Nice, the keyhit return codes are slightly different though, mabe make them a bit normalized? :-)
//  0 = not pressed
//  2 = just pressed (hit)
//  1 = pressed (down)
// -1 = release event


you can change it however you want :)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard