Probleme mit GetMouse/MouseHit
Übersicht

![]() |
maximilianBetreff: Probleme mit GetMouse/MouseHit |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moin,
ich bin gerade am verzeifeln weil ich GetMouse/MouseHit nicht verstehe. Ich programmiere grade an einer GUI und dies ist meine Checkbox-Funktion: Function DrawCheckbox (Checkbox.Checkbox, Window.Window) Code: [AUSKLAPPEN] ;--------Checkbox de- und aktivieren MouseClick = MouseHit(1) If MouseClick = True Then If MouseX() > Window\x + Checkbox\x And MouseX() < Window\x + Checkbox\x + 10 Then If MouseY() > Window\y + Checkbox\y And MouseY() < Window\y + Checkbox\y + 16 Then If Checkbox\Status = True Then Checkbox\Status = False Else Checkbox\Status = True End If End If End If End If ;--------Checkbox zeichnen If Checkbox\Status = True Then DrawImage CheckboxActiveGFX, Window\x + Checkbox\x, Window\y + Checkbox\y Else DrawImage CheckboxGFX, Window\x + Checkbox\x, Window\y + Checkbox\y End If End Function Es reagiert immer nur die erste Checkbox, und ich weiß nicht warum. Wenn ich MouseHit(1) durch MouseDown(1) ersetzte, reagieren sie beide, aber "aktivierte Checkbox" und "deaktivierte Checkbox" werden andauernd hintereinander gezeichnet, logischerweise. Kann mir da jemand helfen? Grüße, LordChaos |
||
Ensign Joe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm... Probiers mal so:
Code: [AUSKLAPPEN] ;--------Checkbox de- und aktivieren
MouseClick = MouseHit(1) If MouseClick = True Then If MouseX() > Window\x + Checkbox\x And MouseX() < Window\x + Checkbox\x + 10 and MouseY() > Window\y + Checkbox\y And MouseY() < Window\y + Checkbox\y + 16 Then If Checkbox\Status = True Then Checkbox\Status = False Else Checkbox\Status = True End If End If End If ;--------Checkbox zeichnen If Checkbox\Status = True Then DrawImage CheckboxActiveGFX, Window\x + Checkbox\x, Window\y + Checkbox\y Else DrawImage CheckboxGFX, Window\x + Checkbox\x, Window\y + Checkbox\y End If End Function Habs jetzt net getestet, müsste aber funzen |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Funzt leider net. ![]() Eigentlich liegt das Problem ja bei MouseHit(1). Grüße, LordChaos |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Dann ersetz mal das MouseHit( 1 ) durch MouseDown( 1 ). Bei mir klappte es einwandfrei. grüße |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem ist, das dann ja andauernd hintereinander beide Bilder (aktiviert und nicht aktiviert) gezeichnet werden. Das lässt sich sicher irgendwie auch uinterdürcken, aber es gab ja auch andere die MouseHit(1) für ihre GUIs benutzt haben. ![]() Grüße, LordChaos |
||
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du musst einmal jedes Frame eine globale Variable auf MouseHit(1) setzen. Wenn du das nämlich einmal aufgerufen hast, wird MouseHit auf jeden Fall auf False gesetzt. Mehrmal aufrufen bringt also nichts. | ||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Super! Danke. Ich musste zwar erst etwas grübeln, was du genau meintest, aber jetzt funktioniert es einwandfrei. ![]() Grüße, LordChaos |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group