Code
Enumeration
#point_w1
#point_w2
#point_r
#cursor
EndEnumeration
Structure vector
x.f
y.f
x2.f
y2.f
sp.w
sp2.w
EndStructure
Global NewList vector.vector()
Procedure addvector(x.f,y.f,x2.f,y2.f)
AddElement(vector())
vector()\x=x
vector()\y=y
vector()\x2=x2
vector()\y2=y2
vector()\sp=#point_w1
vector()\sp2=#point_w2
EndProcedure
Procedure MRB(ButtonNumber.b)
Static Appel.b, Appuyee.b, Relachee.b, Memoire.b
If Appel = #False
Relachee = #False
Memoire = #False
Appel = #True
EndIf
Appuyee = MouseButton(ButtonNumber)
If Appuyee = #True
Relachee = #False
Memoire = #True
EndIf
If Appuyee = #False And Relachee = #False And Memoire = #True
Relachee = #True
Appel = #False
EndIf
ProcedureReturn Relachee
EndProcedure
InitSprite()
InitMouse()
InitKeyboard()
OpenScreen(1024,768,32,"Vector")
CreateSprite(#point_w1,6,6)
CreateSprite(#point_w2,6,6)
CreateSprite(#point_r,6,6)
CreateSprite(#cursor,4,4)
StartDrawing(SpriteOutput(#point_w1))
Circle(3,3,3,RGB(255,255,255))
StopDrawing()
StartDrawing(SpriteOutput(#point_w2))
Circle(3,3,3,RGB(255,255,255))
StopDrawing()
StartDrawing(SpriteOutput(#cursor))
Circle(2,2,2,RGB(0,255,0))
StopDrawing()
StartDrawing(SpriteOutput(#point_r))
Circle(3,3,3,RGB(255,0,0))
StopDrawing()
mode.s="cons"
Global xxx.f
Global xxx2.f
Global yyy.f
Global yyy2.f
Repeat
FlipBuffers()
ClearScreen(0)
ExamineKeyboard()
ExamineMouse()
If KeyboardReleased(#PB_Key_1)
mode="cons"
EndIf
If KeyboardReleased(#PB_Key_2)
mode="anim"
EndIf
If KeyboardReleased(#PB_Key_3)
mode="select"
EndIf
If mode="cons"
If modeclick=0
If mrb(1)
x=MouseX()
y=MouseY()
modeclick=1
EndIf
Else
If mrb(1)
x2=MouseX()
y2=MouseY()
modeclick=0
addvector(x,y,x2,y2)
EndIf
EndIf
EndIf
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(0,0,mode,RGB(0,200,0))
StopDrawing()
ResetList(vector())
While NextElement(vector())
StartDrawing(ScreenOutput())
LineXY(vector()\x,vector()\y,vector()\x2,vector()\y2,RGB(255,255,255))
StopDrawing()
If mo_p=0
DisplayTransparentSprite(vector()\sp,vector()\x-3,vector()\y-3)
DisplayTransparentSprite(vector()\sp2,vector()\x2-3,vector()\y2-3)
EndIf
If KeyboardReleased(#PB_Key_P)
mo_p+1
If mo_p>1
mo_p=0
EndIf
EndIf
If mode="select"
If SpritePixelCollision(#cursor,MouseX(),MouseY(),vector()\sp,vector()\x-2,vector()\y-2) And MouseButton(1)
DisplayTransparentSprite(#point_r,vector()\x-3,vector()\y-3)
select_1=1
EndIf
If SpritePixelCollision(#cursor,MouseX(),MouseY(),vector()\sp2,vector()\x2-2,vector()\y2-2) And MouseButton(1)
DisplayTransparentSprite(#point_r,vector()\x2-3,vector()\y2-3)
select_1=2
EndIf
If MouseButton(1) And select_1=1
vector()\x=MouseX()
vector()\y=MouseY()
select_1=0
EndIf
If MouseButton(1) And select_1=2
vector()\x2=MouseX()
vector()\y2=MouseY()
select_1=0
EndIf
EndIf
Wend
DisplayTransparentSprite(#cursor,MouseX(),MouseY())
Until KeyboardReleased(#PB_Key_Escape)
End