Sehr einfache kurze Frage Fensterbewegung
Übersicht

![]() |
WEBLinkBetreff: Sehr einfache kurze Frage Fensterbewegung |
![]() Antworten mit Zitat ![]() |
---|---|---|
HI, hier erstmal der code
Code: [AUSKLAPPEN] If ImageRectCollide(mouse, mauskorx, mauskory,0,fensterposx,fensterposy,296,22) Then maushand = 1 : If mausdown Then fensterposx = mauskorx : fensterposy = mauskory
Das Bild des Fensters wird jetzt so verschoben das der Mauszeiger auf die linke obere Ecke liegt. Welche Formel brauch ich das, dass fesnetr an seiner Position bleibt an man es verschieben kann. |
||
![]() |
Hagbard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 640, 480, 0, 2 ;Mausgrafik erstellen und malen Maus = CreateImage( 16, 16 ) SetBuffer ImageBuffer( Maus ) Color 160, 160, 160 Rect 0, 0, 16, 2 Rect 0, 0, 2, 16 Rect 2, 2, 12, 2 Rect 2, 2, 2, 12 ;Bild erstellen & malen Bild = CreateImage( 100, 100 ) SetBuffer ImageBuffer( Bild ) Color 60, 23, 160 Rect 0, 0, 21, 34, 1 Rect 56, 12, 44, 23, 1 Color 255, 255, 255 Rect 0, 0, 100, 100, 0 ;Bildkoordinaten BildX = 100 BildY = 100 ;Bildmaße BildBreite = ImageWidth( Bild ) BildHoehe = ImageHeight( Bild ) ;Mausstadien Const NORMAL = 0 ;Nicht gedrückt Const HIT = 1 ;wie MouseHit(), also grade gedrückt Const DOWN = 2 ;wie MouseDown(), also gedrückt gehalten Const UP = 3 ;Soeben losgelassen HidePointer SetBuffer BackBuffer( ) While Not KeyHit( 1 ) Cls ;Aktuellen Mauskoordinaten MausX = MouseX( ) MausY = MouseY( ) ;Mausstadien wechseln If MausStatus = NORMAL ;Von NORMAL zu HIT wechseln, wenn ma anfängt zu drücken If MouseDown( 1 ) Then MausStatus = HIT ElseIf MausStatus = HIT ;Von HIT zu DOWN wechseln, wenn man gedrückt hält. ;Von HIZ zu UP wechseln, wenn man loslässt/gelassen hat. If MouseDown( 1 ) Then MausStatus = DOWN Else MausStatus = UP ElseIf MausStatus = DOWN ;Von DOWN zu UP wechseln, wenn man loslässt. Sonst belassen. If Not MouseDown( 1 ) Then MausStatus = UP ElseIf MausStatus = UP ;Von UP zu NORMAL wechseln, dauerhaft losgelassen MausStatus = NORMAL EndIf ;Mausaktionen abfragen If MausStatus = HIT ;Angefangen zu drücken. ;Nur hier muss man auf "Kollision" prüfen. ;Wenn man hier das Bild berührt, wird man es auch weiterhin tun, ;weil es ja mitkommen soll. If MausX >= BildX And MausX <= BildX + BildBreite If MausY >= BildY And MausY <= BildY + BildHoehe ;=> Bild wird geschoben BildSchieben = True EndIf EndIf ElseIf MausStatus = UP ;Aufhören zu drücken ;Jetzt kann man das Bild wieder freilassen BildSchieben = False EndIf ;"Schiebung" prüfen If BildSchieben = True ;Differenz von der akt. Position zur letzten Position addieren BildX = BildX + ( MausX - MausXAlt ) BildY = BildY + ( MausY - MausYAlt ) EndIf ;Bild malen DrawImage Bild, BildX, BildY ;Maus malen DrawImage Maus, MausX, MausY Flip ;Position zum errechnen der Differenz speichern MausXAlt = MausX MausYAlt = MausY Wend End versuch es zu verstehen. Es ist nicht von mir! |
||
![]() |
WEBLink |
![]() Antworten mit Zitat ![]() |
---|---|---|
k, funzt danke | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group