mousehit() und mousedown()

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Freeman

Betreff: mousehit() und mousedown()

BeitragSa, Apr 23, 2005 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
hi

hab ein Problem. hab ein menü erstellt und möchte auf einen Button klicken.Dieser erhöht dann eine Varible um genau eins
Code: [AUSKLAPPEN]

test=test+1

Das problem dabei ist wenn ich dabei mit mousedown(1) arbeite wird die varible nicht um 1 sondern um mindestens 4 erhöht. Das Problem bei mousehit(1) ist ,das wenn ich in der umgebung rumklicke und dann ohne zu klicken auf meinen button bzw. Menüpunkt gehe,dieser dann ohne klick aktiviert wird. bitte um hilfe.thx

FrEeMaN
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28

BladeRunner

Moderator

BeitragSa, Apr 23, 2005 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn Du Mousedown nutzt, puffer die Eingabe mit einem Timer ab. d.h. "sperr" den Mousebutton für zB. 500ms.

Bei Mousehit() verwundert5 mich das Verhalten etwas. Versuchs mal mit einem Flushmouse() vorher.
Oder zeig mal den Code, vielleicht hängts auch da irgendwo Wink
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

dimaster

BeitragSa, Apr 23, 2005 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
schau dir Flushmouse an!

Ofenrohr

BeitragSa, Apr 23, 2005 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
du solltest mousedown(1) benutzen und in deinen button eine klickverzögerung einbauen. also du speicherst den letzten klick mit millisecs(). wenn jetzt die klickroutine ausgeführt wird, dann guckst du ob die aktuelle zeit z.B. um min. 150 ms größer ist als der letzte klick...
so hat man genug zeit wieder loszulassen, oder auch mit gedrückter maustaste zu erhöhen.

ich hoffe ich habe dich nicht missverstanden, weilich das hier nicht verstehe:
Zitat:
Das Problem bei mousehit(1) ist ,das wenn ich in der umgebung rumklicke und dann ohne zu klicken auf meinen button bzw. Menüpunkt gehe,dieser dann ohne klick aktiviert wird.


mfg ofenrohr
Ofenrohr.net

diGGa

GruppenKaspar

BeitragSa, Apr 23, 2005 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
man klickt irgendwohin und bewegt dann den mauszeiger über den button welcher aktiviert wird. is ganz normal bei mousehit... musst sone art mousehit mit mousedown basteln d.h. eben mit timer.
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram
 

Apocalyptic

BeitragSa, Apr 23, 2005 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du nicht willst, dass der Button bei gedrückter Maustaste nach dem Ablauf des Timers wieder geklickt werden kann, probier mal das hier:BlitzBasic: [AUSKLAPPEN]
mdownold=mdownnew
mdownnew=MouseDown(1)
If mdownnew=1 And mdownold=0 Then klick()


Aber das von dir beschriebene Problem hatte ich noch nie. Ist dein Code evt. so aufgebaut?BlitzBasic: [AUSKLAPPEN]
If mx>dx.... Then
If MouseHit(1) Then
...
EndIf
EndIf
Dann probier es mal so:BlitzBasic: [AUSKLAPPEN]
If MouseHit(1) Then
If mx>dx.... Then
...
EndIf
EndIf
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

Hubsi

BeitragSa, Apr 23, 2005 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Einfach mal ins blaue geraten sieht Dein Code so aus:BlitzBasic: [AUSKLAPPEN]
If MouseHit(1) Then mh=1
Wenn das der Fall ist, lass Mousehit direkt den Rückgabewert in der Variable speichern:BlitzBasic: [AUSKLAPPEN]
mh=MouseHit(1)
So ist mh in jedem Schleifendurchlauf aktuell und Du kannst klicken bis die Taste bricht Mr. Green
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

BladeRunner

Moderator

BeitragSa, Apr 23, 2005 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
hubsi, ich tippe auf Volltreffer Wink
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

Lunatix

BeitragSa, Apr 23, 2005 17:07
Antworten mit Zitat
Benutzer-Profile anzeigen
@ ofenrohr :

Riesiger Blödsinn :Code: [AUSKLAPPEN]

du solltest mousedown(1) benutzen und in deinen button eine klickverzögerung einbauen. also du speicherst den letzten klick mit millisecs(). wenn jetzt die klickroutine ausgeführt wird, dann guckst du ob die aktuelle zeit z.B. um min. 150 ms größer ist als der letzte klick...
so hat man genug zeit wieder loszulassen, oder auch mit gedrückter maustaste zu erhöhen.


er will n' button klicken, nit schussverzögerung machen!
mach
BlitzBasic: [AUSKLAPPEN]

klick=MouseHit(1)
If (ImageRectCollide(button,start X,start Y,frame(meist 0),MouseX(),MouseY(),1,1) And klick=1
a=a+1
EndIf
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Freeman

BeitragSa, Apr 23, 2005 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
der code von hubsi ist super! danke klappt wunderbar, den rest habe ich nicht ausprobiert. Trotzdem danke

FrEeMaN
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group