* * *    
Главная » Статьи » Код PB

Просмотров: 1247 | Дата: 25.04.2024 | Коментарии (0)

Вектор



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










Сайт посвящён языку программирования PureBasic — коммерческий компилятор языка программирования, использующего синтаксис BASIC. Предназначен для создания кроссплатформенных приложений для AmigaOS, Linux, Microsoft Windows, Windows NT и Mac OS X. Разработан компанией Fantaisie Software.