GraphicsWindow.DrawBoundText(10,10,1000,"Sleep een blok met de rechter muisknop")
GraphicsWindow.DrawBoundText(10,25,1000,"Draai een blok met de linker muisknop")
Sub Maakblokken
'we bewaren van drie blokken de positie en de draairichting
For teller=1 To 3
blok[teller]["x"]=Math.GetRandomNumber(200)+50
blok[teller]["y"]=Math.GetRandomNumber(200)+50
blok[teller]["hoek"]=Math.GetRandomNumber(360)
' we kiezen nog een willekeurige breedte en hoogte
w=Math.GetRandomNumber(50)+10
h=Math.GetRandomNumber(50)+10
' maak een shape (onthoud hem in "s" van shape
blok[teller]["s"]=Shapes.AddRectangle(w,h)
' plaats het blok op de juiste plek
Shapes.Move(blok[teller]["s"],blok[teller]["x"],blok[teller]["y"])
'en in de juiste richting
shapes.Rotate(blok[teller]["s"],blok[teller]["hoek"])
endfor
EndSub
Sub OnMouseUp
' down=0
endsub
Sub OnMouseMove
'bewaar de huidige positie van de muis
x=GraphicsWindow.MouseX
y=GraphicsWindow.MouseY
If mouse.IsRightButtonDown then
' slepen
dx=x-startx
dy=y-starty
ElseIf Mouse.IsLeftButtonDown then
' roteren
' bepaal de hoek die bij startx,starty hoort (tov de huidige positie)
' bepaal de hoek die bij x,y hoort (tov de huidige positie)
'dit zijn x en y-coordinaten van de muis
startx=GraphicsWindow.MouseX
starty=GraphicsWindow.MouseY
'welke blok is het dichtstbij?
geselecteerdblok=0
rmin=99999999999999 'heel groot
For teller=1 To 3
dx=startx-blok[teller]["x"]
dy=starty-blok[teller]["y"]
r=math.SquareRoot(dx*dx+dy*dy)
If r
rmin=r
geselecteerdblok=teller
endif
endfor