Linie verschieben auf Canvas Gadget
Verfasst: 09.01.2012 12:24
				
				Hallo,
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.
Danke und Gruß,
Hugo
			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