Hidepointer auf Mousedown(2)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Hakkai

Betreff: Hidepointer auf Mousedown(2)

BeitragDo, Sep 03, 2009 2:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
habe das Problem das auf einem Mousedown kein Hidepointer klappt, erst nachdem ich wieder loslasse, aber das ist dann zu spät.
Code: [AUSKLAPPEN]

   If MouseDown(2)
      HidePointer
      ;MoveMouse resolution_x/2, resolution_y/2
      ;TurnEntity spieler_curr\piv,msys*0.5,0,0 ;y rotation
      TurnEntity spieler_curr\piv,0,-msxs*0.5,0 ;x rotation
   EndIf


Kann es sein das ein MoveMouse nach dem Hidepointer auch nicht mehr funktioniert?
Grüße.

ozzi789

BeitragDo, Sep 03, 2009 8:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke das liegt daran das du Hidepointer 1000 mal pro sekunde (oder wie schnell dein pc halt ist) aufrufst!
Mann müsste einfach ein flag setzen um zu prüfen ob der Pointer schon versteckt wurde

Movemouse funktioniert sehr wohl wenn Hidepointer angewandt wurde Wink

Code: [AUSKLAPPEN]
HidePointer

MoveMouse 600,600

ShowPointer

Very Happy
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

BladeRunner

Moderator

BeitragDo, Sep 03, 2009 8:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Funktioniert bei mir auch nicht. könnte man wohl als Bug interpretieren. Wäre vielleicht einen Eintrag im Forum auf bb.com wert.

EDIT: *grmbl*, der Bug ist auf bb.com seit mehr als 3(!) Jahren bekannt. Ich werde das Ganze nochmal posten, mache mir aber keine große Hoffnung auf eine Lösung.
Workaround wäre es einen eigenen Pointer als Image einzubinden.

EDIT2: kann keine WIN32-Beschränkung sein, unter BMax funktioniert es wie erwartet.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

EPS

BeitragDo, Sep 03, 2009 8:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht mal über WinAPI versuchen
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

Der Eisvogel

BeitragDo, Sep 03, 2009 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wäre es denn mit MouseHit()? Da geht es ja Prima.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Hakkai

BeitragDo, Sep 03, 2009 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Mousehit() hilft auch nicht, da ich bereits beim gedrückt halten den pointer verschwinden lassen will.

Das der den Befehl 1000 mal in der Sekunde ausführt ist zwar unschön aber auch ohne Showpointer versteckt er den Pointer beim runterdrücken der Maustaste leider nicht.

Ich versuchs mit dem vorschlagenen Workaround, Danke.


----------- Edit --------------
hat geklappt mit dem Workaround.
In C:\WINDOWS\Cursors einen genehmen Cursor rausgesucht als png gesaved, geladen und ein wenig von dem:

Code: [AUSKLAPPEN]
   If MouseDown(2)
      pointer_lock = 1
      MoveMouse resolution_x/2, resolution_y/2
      ;TurnEntity spieler_curr\piv,msys*0.5,0,0 ;y rotation
      TurnEntity spieler_curr\piv,0,-msxs*0.5,0 ;x rotation
   Else
      pointer_lock = 0
   EndIf



Code: [AUSKLAPPEN]
   If pointer_lock = 0
      DrawImage ipointer, MouseX(), MouseY()
   EndIf

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Sep 03, 2009 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Doof nur das der Pointer nun am Fensterrand hängen bleibt, wenn der User außerhalb deines Programmes mit der Maus sich befindet. Da könntest du hier im Forum nach einer Funktion namens ''MOW'' (MouseOverWindow) suchen. Diese gibt True zurück, wenn sich die Maus über deinem Programm befindet, und False wenn nicht. Aber nichtsdestotrotz würde ich dir die Möglichkeit mit MouseHit zu versuchen zu lösen. Denn MouseHit steht beim klick parallel zu MouseDown auf True.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group