mausklick problem...
Übersicht

![]() |
e1d0rBetreff: mausklick problem... |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn ich mit meiner maus in einem menu auf einem button klicke, dann führt er die vorgesehen aufgabe aus
ok, das ist nicht das problem ![]() Aber wenn hinter dem vorigen button noch einer ist, drückt der den quasie mit, und ich bin im übernächsten menu ich dachte mit FlushMouse krieg ich das weg aber das will nicht funktionieren. Was kann ich tun? ![]() |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Standardproblem:
ql:Mousehit gibt die klicks seit dem letzten aufruf zurück..... Also ist beim zweiten Aufruf MouseHit 0.... Deshalb kannst am Anfang der Schleife MouseHit in einer Variable speichern und dann immer mit dieser überprüfen.... |
||
![]() |
e1d0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm das verstehe ich nicht
meinst du damit ist das problem gelöst? |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
ah, sorry, hab nicht richtig gelesen..... ![]() Ich denke das sollte schon mit FlushMouse gehen... Mach das FlushMouse direkt nach der if-Abfrage: Code: [AUSKLAPPEN] if MouseHit(1) then FlushMouse() .... end if Wenn das auch nicht geht, dann wäre ein bisschen code nicht schlecht....[/code] |
||
![]() |
e1d0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
ah das sieht schon verständlicher aus
ich melde mich wenn ich mehr weiss |
||
![]() |
e1d0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm also dieses imagecollide klicke ich an:
BlitzBasic: [AUSKLAPPEN]
und dann komm ich wieder zurück, da is ein anders image collide: Function spielbeginn () If MouseHit(1) Then FlushMouse() End If Color 0,0,0 Repeat Cls DrawImage hauptmenu1,0,0 DrawImage buttonspeichern,900,660 DrawImage buttonmonatende,900,700 DrawImage butt_getreide,900,620 DrawImage wappen,30,620 If ImagesCollide (zeiger,MouseX(),MouseY(),0,buttonmonatende,900,700,0) And MouseDown(1) Then monatende () If ImagesCollide (zeiger,MouseX(),MouseY(),0,buttonspeichern,900,660,0) And MouseDown(1) Then speichern () If ImagesCollide (zeiger,MouseX(),MouseY(),0,butt_getreide,900,620,0) And MouseDown(1) Then getreidekauf () da lande ich nicht, sondern im monatende will aber ins hauptmenu wieder.... geht aber nich.. |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke es sollte so sein:
Code: [AUSKLAPPEN] Function spielbeginn () FlushMouse() Color 0,0,0 Repeat ...... |
||
![]() |
e1d0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
funktioniert nicht ![]() |
||
Michi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich schätze mal, der Mauszeiger ist so groß, das er über beide Schaltflächen gleihczeitig geht. Du musst anstatt Imagescollide() einfach eine Positionsüberprüfung machen
BlitzBasic: [AUSKLAPPEN]
|
||
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968 Code: [AUSKLAPPEN] __ <_/__\_> <--- die Wayne-Zeichnung |
![]() |
e1d0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich werds probieren | ||
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
es muß mit flushmouse() in der spielbeginn funktion funktionieren...wenn nicht hast du irgendwoanders nen fehler... | ||
A Cray is the only computer that runs an endless loop in less than four hours. |
![]() |
DivineDominion |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich überseht alle, dass er MouseDown() nimmt...
Hier habe ich mal was geschrieben: https://www.blitzforum.de/viewtopic.php?t=8345 Wenn du diese Methode nimmst prüfst du auf lmb=MOUSE_HIT oder wie auch immer deine Variable heißen wird, und kannst dann darauf reagieren. MouseDown ist eben gedrückt und gehalten. Liefert 'true' solange du drückst. MouseHit macht das anders. Irgendwie komisch. hilft dir nämlich dann auch nicht viel, darum hab ich das da oben mal verfasst. Den Flushmouse-KRam brauchste dann nicht mehr. |
||
christian.tietze@gmail.com - https://christiantietze.de
macOS |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group