Muas "Hiden" ?
Muas "Hiden" ?
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.
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
dass ist eher eine logik- und algorythmusfrage.
(ich gehe mal vom Screen-Mode aus, da du ja nicht nach Win-Api gefragt hast
)
- 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.
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
(ich gehe mal vom Screen-Mode aus, da du ja nicht nach Win-Api gefragt hast
- 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...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
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
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 
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
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:
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:
also doch kein Screen-Modus ????... fullscreen ... popupmenu ...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
doch doch is schon Screen-Mode
Beispiel:
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)
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
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.
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.
Der Weise weiß, dass er ein Narr ist.