Eigene Gui
Übersicht
BlitzBasic
Allgemein|
|
LINKedBetreff: Eigene Gui |
Antworten mit Zitat |
|---|---|---|
|
Ich bin gerade dabei eine eigene Gui zu erstellen.
Ich habe allerdings ein Problem mit den Fenstern. Code: [AUSKLAPPEN] For win.Window = Each Window
mx = MouseX() my = MouseY() mxs=MouseXSpeed() mys=MouseYSpeed() If RectsOverlap(win\X,win\Y,win\W,24,mx,my,1,1) Then If MouseDown(1) Then win\X=win\X+mxs win\Y=win\Y+mys EndIf EndIf Wenn ich die Maus beim bewegen des Fensters zu schnell bewege bleibt das Fenster stehen. Wie bewegt man das Fenster solange bis man die Maus loslässt Vielen Dank schonmal. mfG LINKed |
||
|
|
Tankbuster |
Antworten mit Zitat |
|---|---|---|
|
Erstmal würde ich den Code so umstellen, denn du musst nicht für jedes Fenster eine neue Maus-Position berechnen lassen, da sie sich während dem Vorgang sowieso nicht verändert.
Code: [AUSKLAPPEN] mx = MouseX()
my = MouseY() mxs=MouseXSpeed() mys=MouseYSpeed() For win.Window = Each Window If RectsOverlap(win\X,win\Y,win\W,24,mx,my,1,1) Then If MouseDown(1) Then win\X=win\X+mxs win\Y=win\Y+mys EndIf EndIf Zu deinem Problem hab ich aber nicht viel konstruktives beizutragen, da für mich alles ganz logisch aussieht ^^ |
||
|
Twitter
Download Jewel Snake! Windows|Android |
||
|
|
the FR3AK |
Antworten mit Zitat |
|---|---|---|
|
Wie es geht weiss ich net aber warum das Fenster stehen bleibt kann ich dir sagen;)
Wenn du die Maus zu schnell bewegst liegt irgendwann mal die Maus ausserhalb des Fensterbereiches also wird das Fenster dadurch nicht mehr mitpositioniert und es bleibt stehen [EDIT] Habe eine Lösung gefunden ^_^ Hier mal n kleiner Code wie ichs gemacht habe: Code: [AUSKLAPPEN] ;KLICKE MIT DER MAUS AUF DAS WEISSE VIERECK UND VERSCHIEBE ES! Graphics 800,600,32,2 SetBuffer BackBuffer() x=100 y=100 movewindow=0 While Not KeyHit(1) Cls If MouseDown(1) Then If MouseX()>x And MouseX()<x+100 Then If MouseY()>y And MouseY()<y+100 Then movewindow=1 Else Rect x,y,100,100,1 End If Else Rect x,y,100,100,1 End If Else movewindow=0 Rect x,y,100,100,1 End If If movewindow=1 Then x=MouseX()-50 y=MouseY()-50 Rect x,y,100,100,1 End If Flip Wend So, in dem Code habe ich einfach eine Variable erstellt, die wenn die Maustaste gedrückt ist und die Maus im Fenster ist, auf 1 gesetzt wird solange bis die Maustaste wieder losgelassen wird. Während die Variable (Movewindow) auf 1 gesetzt ist, wird das Fenster an der Position der Maus positioniert, wenn die Variable auf 0 ist, dann wird das Fenster einfach an der stelle stehen gelassen, wo es ist ^_^ Ich hoffe das hilft. mfg |
||
|
|
ThunderBetreff: Re: Eigene Gui |
Antworten mit Zitat |
|---|---|---|
|
Code: [AUSKLAPPEN] For win.Window = Each Window
mx = MouseX() my = MouseY() mxs=MouseXSpeed() mys=MouseYSpeed() If RectsOverlap(win\X,win\Y,win\W,24,mx,my,1,1) Then If MouseDown(1) Then win\X=win\X+mxs win\Y=win\Y+mys EndIf EndIf Ich hab mir auch eine GUI geschrieben, kann sie jetzt leider nicht finden, aber ich glaube ich habe das so gemacht: Code: [AUSKLAPPEN] For win.Window = Each Window
mx = MouseX() my = MouseY() mxs=MouseXSpeed() mys=MouseYSpeed() If RectsOverlap(win\X,win\Y,win\W,24,mx,my,1,1) Then While MouseDown(1) win\X=win\X+mxs win\Y=win\Y+mys Wend EndIf |
||
| Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit | ||
|
|
ValnarBetreff: Re: Eigene Gui |
Antworten mit Zitat |
|---|---|---|
|
Thunder hat Folgendes geschrieben: Code: [AUSKLAPPEN]
For win.Window = Each Window
mx = MouseX() my = MouseY() mxs=MouseXSpeed() mys=MouseYSpeed() If RectsOverlap(win\X,win\Y,win\W,24,mx,my,1,1) Then If MouseDown(1) Then win\X=win\X+mxs win\Y=win\Y+mys EndIf EndIf Ich hab mir auch eine GUI geschrieben, kann sie jetzt leider nicht finden, aber ich glaube ich habe das so gemacht: Code: [AUSKLAPPEN] For win.Window = Each Window
mx = MouseX() my = MouseY() mxs=MouseXSpeed() mys=MouseYSpeed() If RectsOverlap(win\X,win\Y,win\W,24,mx,my,1,1) Then While MouseDown(1) win\X=win\X+mxs win\Y=win\Y+mys Wend EndIf Mit while geht das nicht, da er ja dann in der Whileschleife hängt solange mousedown ist. Dann wird nichts anderes gemacht. |
||
Übersicht
BlitzBasic
Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group
