Muas "Hiden" ?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Muas "Hiden" ?

Beitrag von nicolaus »

Hi Screen und Sprite Freaks

habe mal ne frage zu nem prob mit der maus.
wie kann ich es anstellen das die maus nach ner bestimmten zeit (z.b. 5 sec) ohne benutzung (also ohne bewegen oder drücken eines buttons der maus) der mauszeiger verschwindet (nich mehr gezeigt wird) und wenn die maus bewegt wird oder irgendein event durch die maus verursacht wurde der mauszeiger wieder erscheint?

Danke euch schon mal.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

dass ist eher eine logik- und algorythmusfrage.
(ich gehe mal vom Screen-Mode aus, da du ja nicht nach Win-Api gefragt hast :wink: )

- du richtest eine überwachungsvariable ein, die bei jeder mausbewegung auf nen maximalwert gesetzt wird.

- diese überwachungsvariable zählst du in jedem frame um 1 runter, wenn sie >0 ist.
- solange sie >0 ist, zeigst du den mousepointer an.

Code: Alles auswählen

Repeat    ;Hauptschleife
    ExamineMouse()    ; Hast du ja sowieso drin...
    ...
    If MouseDeltaX()<>0 Or MouseDeltaY()<>0
        Mouse_Hide = 250    ; als bsp: 5sec bei 50fps
    EndIf

    If Mouse_Hide > 0
        Mouse_Hide - 1
        DisplayTransparentSprite(MousePointer, X, Y)
    EndIf
    ...
Until ...Hauptschleifenende...
nur mal als snippet zur verdeutlichung.

soll auch durch clicken der Mousebuttons reaktiviert werden, musst du
1) alle buttons auch abfragen und dort die Variable auf MAX setzen,
2) sicherstellen, dass der click, der der reaktivierung dient, nicht ausgeführt wird,
damit der User nicht aus versehen ne funktion auslöst, wenn er nur reaktivieren will.
aber wer tut das schon, IMHO reicht die abfrage der bewegung völlig :wink:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

ich danke dir erst mal für das beispiel und doch ich brauch das mit den maustasten auch denn ich brauch das nich für ein game sondern wenn ein video im fullscreen abgespielt wird und die maus nich bewegt wird soll sie nach z.b. 5 sec verschwinden und wenn dann z.b. der rechte mausbutton gedrückt wird soll ein popupmenu aufgehen und da brauche ich ja die maus wieder :wink:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

das ist vergleichsweise einfach:

die rechte maustaste frags du ja sowieso ab, also musst du nur nach dem

If MouseButton(2)

ebenfalls ein

Mouse_Hide = 250

einfügen.

aber:
... fullscreen ... popupmenu ...
also doch kein Screen-Modus ????
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

doch doch is schon Screen-Mode
Beispiel:

Code: Alles auswählen

OpenWindow(#MovieWindow, 0, 0, GetSystemMetrics_(#SM_CXSCREEN),GetSystemMetrics_(#SM_CYSCREEN), #PB_Window_BorderLess, "WindowTitel")
OpenWindowedScreen(WindowID(#MovieWindow), 0, 0, GetSystemMetrics_(#SM_CXSCREEN),Int((MovieHeight() / MovieWidth()) * GetSystemMetrics_(#SM_CXSCREEN)), 1, 0, 0)
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

gibt es denn eigentlich auch ne möglichkeit die maus per API zu hiden?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

mit OpenWindowedScreen ist es kein Screen-Mode.
hier musst du über API arbeiten, ich weiss nicht, ob die Mouse-Befehle,
die für Screen ausgelegt sind, überhaupt hier arbeiten.

sorry, mit API kenn ich mich nicht aus.
musst die frage nochmal im API-forum stellen, oder bitte nen Moderator, diesen Thread zu verschieben...

das hiden funktioniert dann anders, die zeitabfrage würde ich dann auch über API machen, etc.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag von traumatic »

nicolaus hat geschrieben:gibt es denn eigentlich auch ne möglichkeit die maus per API zu hiden?
Meinst Du so?
ShowCursor_(#FALSE)
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

ich denke, er meint es so, aber bei mir funktioniert das nicht.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

funktioniert bei mir, aber nur wenn der cursor über einem gui fenster ist...
Antworten