ich versuche gerade ein kleines Malprogramm mit dem Canvas Gadget zu schreiben. Das Meiste funktioniert auch schon ganz gut. Womit ich gerade Probleme habe ist, eine Linie (oder ein anderes 2D Objekt) zu verschieben. Ich hoffe ihr könnt mir da weiterhelfen.
Hier der entsprechende Codeteil dazu.
Code: Alles auswählen
#MainWindow = 0
#ScrollGadget = 0
#CanvasGadget = 1
MainWindow = OpenWindow( #MainWindow, 0, 0, 800, 600, "Test mit CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
If MainWindow
If ScrollAreaGadget( #ScrollGadget, 0, 0, WindowWidth( 0 ), WindowHeight( 0 ), 2000, 1000, 10, 0 )
If CanvasGadget( #CanvasGadget, 0, 0, 2000, 1000, #PB_Canvas_Border )
SetGadgetAttribute( #CanvasGadget, #PB_Canvas_Cursor, #PB_Cursor_Cross )
StartDrawing( CanvasOutput( #CanvasGadget ) )
Box( 0, 0, 2000, 1000, $E0E0E0 )
For x = 10 To 1990 Step 10
For y = 10 To 990 Step 10
Plot( x, y, 0 )
Next
Next
StopDrawing()
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow : ende = #True
Case #PB_Event_Gadget
Select EventType()
Case #PB_EventType_LeftClick
x = GetGadgetAttribute( #CanvasGadget, #PB_Canvas_MouseX ) : y = GetGadgetAttribute( #CanvasGadget, #PB_Canvas_MouseY )
Debug "Click.. X: " + Str( x ) + ", Y: " + Str( y )
Case #PB_EventType_MouseMove
x = GetGadgetAttribute( #CanvasGadget, #PB_Canvas_MouseX ) : y = GetGadgetAttribute( #CanvasGadget, #PB_Canvas_MouseY )
Debug "Move... X: " + Str( x ) + ", Y: " + Str( y )
StartDrawing( CanvasOutput( #CanvasGadget ) )
DrawingMode( #PB_2DDrawing_Transparent | #PB_2DDrawing_XOr )
LineXY( x, y, x + 500, y, $0000FF )
StopDrawing()
EndSelect
EndSelect
Until ende
EndIf
EndIf
EndIf
Hugo