"Dragging" einer Box -> Bewegung nur in +Richtu
Verfasst: 22.02.2009 17:41
Heyho...
Ich will versuchen eine Box zu "draggen", zu bewegen und dann nachdem die Maus losgelassen wurde wieder zu droppen.
Komischerweise will das bewegen der Box nur in positive Richtung passieren...
Ich weiß nicht wo mein Fehler liegt... vllt habt ihr ne Idee - danke schon jetzt
gruß!
Ich will versuchen eine Box zu "draggen", zu bewegen und dann nachdem die Maus losgelassen wurde wieder zu droppen.
Komischerweise will das bewegen der Box nur in positive Richtung passieren...
Ich weiß nicht wo mein Fehler liegt... vllt habt ihr ne Idee - danke schon jetzt
Code: Alles auswählen
If InitSprite() = 0
MessageRequester("Error", "Can't open screen & sprite enviroment!", 0)
End
EndIf
If InitMouse() = 0
MessageRequester("Error", "Can't open screen & sprite enviroment!", 0)
End
EndIf
If OpenWindow(0, 0, 0, 400, 400, "A screen in a window...", #PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0), 0, 0, 400, 400, 0, 0, 0)
CreateSprite(0, 20, 20)
If StartDrawing(SpriteOutput(0))
Box(0, 0, 20, 20, RGB(255, 0, 155))
Box(5, 5, 10, 10, RGB(155, 0, 255))
StopDrawing()
EndIf
Else
MessageRequester("Error", "Can't open windowed screen!", 0)
End
EndIf
EndIf
Repeat
; Es ist sehr wichtig, alle im Queue befindlichen Ereignisse während jedes Frames abzuarbeiten
;
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_Gadget
If EventGadget() = 0
End
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
If GetAsyncKeyState_(#VK_ESCAPE)
End
EndIf
Until Event = 0
FlipBuffers()
ClearScreen(RGB(255, 255, 255))
ExamineMouse()
mousey = MouseY()
mousex = MouseX()
StartDrawing(ScreenOutput())
Box(mousex, mousey , 10, 10, 0)
DrawText(0, 0, "Mouse pos: "+Str(mousex)+" | "+ Str(mousey) , RGB(0, 0, 0) , RGB(255, 255, 255))
StopDrawing()
; If MouseButton(#PB_MouseButton_Left) And mousey = y+20 Or mousex = x+20
; If MouseButton(#PB_MouseButton_Left)
If mousey >= y + 5 And mousey <= y + 20 And mousex >= x+5 And mousex <= x + 20 And drag = 0
ExamineMouse()
Debug "inside"
in = 1
If MouseButton(#PB_MouseButton_Left)
y = mousey
x = mousex
EndIf
Else
Debug "outside"
in = 0
EndIf
; If in And MouseButton(#PB_MouseButton_Left)
; drag = 1
; y = mousey
; x = mousex
; Else
; drag = 0
; EndIf
; Else
; pressed = 0
; EndIf
DisplaySprite(0, x, y)
Delay(1)
ForEver