Author Topic: MouseHit()  (Read 3144 times)

Offline D2O

  • Prof. Inline
  • *****
  • Posts: 1063
    • View Profile
    • http://www.deuteriumoxid.com
MouseHit()
« on: 2008-Jun-21 »
Tach,
mir ist das noch garnicht aufgefallen, aber benutzt Ihr garkein MouseHit()  ??
Ich brauch das immer wieder ;)

Hier gibts ne Tolle Function und Beispiel dazu.
Hierzu habe ich nur die KeyHit() Function von Gernot etwas abgewandelt, bzw. auch die Rückgabe werte sind bei mir anders.
1  =  Geklickt
2  = Gedrückt
-1 = losgelassen
0 = nichts ;)
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

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
 


I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Offline BumbleBee

  • Global Moderator
  • Prof. Inline
  • *******
  • Posts: 891
    • View Profile
Re: MouseHit()
« Reply #1 on: 2008-Jun-21 »
Hi
Doch, ich brauch schon MouseHit(). :) Hab mir so was ähnliches schon geschrieben. Gut, wenn die Antwort jetzt schon da ist. Denn die Frage nach MouseHit() kommt bestimmt noch. =D Danke für's umwandeln. :)

Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5022
  • O Rly?
    • View Profile
Re: MouseHit()
« Reply #2 on: 2008-Jun-22 »
Lustig, hatte ich für WPShadow auch schon mal umgeschrieben :D
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard