Salut,
Voici les images qu'a besoin le prg.
Elements.png
66901.png
Code : Tout sélectionner
Enumeration elements
#Vanne_Auto
#Vanne_Electro
#Vanne_Micrometrique
#Pompe_Anneau_liquide
#Pompe_a_palette
#Pompe_de_circulation
EndEnumeration
Structure Obj
Identifiant.i
Position_x.i
Position_y.i
largeur.i
hauteur.i
Centre_Voyant_x.i
Centre_Voyant_y.i
Angle.i
Alpha.i
EndStructure
InitSprite()
InitKeyboard()
InitMouse()
OpenScreen(640,480,32,"Synoptique Images",#PB_Screen_WaitSynchronization)
UsePNGImageDecoder()
KeyboardMode(#PB_Keyboard_International)
Global NewList Objet.Obj()
Global Planche.l
Planche=CatchSprite(#PB_Any,?Planche_des_elements)
DataSection
Planche_des_elements:
IncludeBinary "Elements.png"
Syno:
IncludeBinary "66901.png"
Elements:
Data.i 0,0,27,17 ;Vanne automatique
Data.i 6,9 ;Centre du voyant
Data.i 29,1,57,15 ;Vanne Micrométrique
Data.i 14,7 ; centre de la vanne
Data.i 60,0,81,22
Data.i 10,16
Data.i 83,0,110,17
Data.i 6,8
EndDataSection
Declare Charge_Objets()
Declare Affiche_Objets(Id.l)
;SpriteQuality(#PB_Sprite_NoFiltering)
Charge_Objets()
Id=0
a=0
Global Synoptique.l=CatchImage(#PB_Any,?Syno)
Global x,y
Repeat
ExamineMouse()
ExamineKeyboard()
x=MouseX()
y=MouseY()
a+MouseWheel()
Debug a
If KeyboardReleased(#PB_Key_Add)
Id+1
If Id>ListSize(Objet())-1
Id=ListSize(Objet())-1
EndIf
Delay(20)
ElseIf KeyboardReleased(#PB_Key_Subtract)
Id-1
If Id<-1
Id=-1
EndIf
Delay(20)
ElseIf KeyboardPushed(#PB_Key_LeftShift)
a-1
If a<0
a=359
EndIf
ElseIf KeyboardPushed(#PB_Key_RightShift)
a+1
If a>359
a=0
EndIf
EndIf
If id>-1
SelectElement(Objet(),Id)
With Objet()
\Position_x=x
\Position_y=y
\Angle=a
\Alpha=255
EndWith
EndIf
ClearScreen(0)
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Default )
DrawImage(ImageID(Synoptique),0,0)
DrawText(0,370,"changer l'angle avec LShift ou RShift",RGB(255,255,255))
DrawText(0,390,"ID ="+Str(Id),RGB(255,0,0))
StopDrawing()
Affiche_Objets(Id)
FlipBuffers()
If MouseButton(#PB_MouseButton_Left) Or KeyboardPushed(#PB_Key_Return)
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Default )
GrabDrawingImage(Synoptique,0,0,640,350)
StopDrawing()
FlipBuffers()
ElseIf MouseButton(#PB_MouseButton_Right) Or KeyboardPushed(#PB_Key_Delete)
If ListIndex(Objet())>=0
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Default )
Box(x,y,Objet()\largeur,Objet()\hauteur,0)
GrabDrawingImage(Synoptique,0,0,640,350)
StopDrawing()
FlipBuffers()
EndIf
EndIf
Until KeyboardPushed(#PB_Key_Escape)
End
Procedure Charge_Objets()
ClearList(Objet())
Restore Elements
For i=0 To 3
AddElement(Objet())
Read.i x
Read.i y
Read.i l
Read.i h
With Objet()
DisplaySprite(Planche,0,0)
\largeur=l-x
\hauteur=h-y
\Identifiant=GrabSprite(#PB_Any,x,y,\largeur,\hauteur)
Read.i \Centre_Voyant_x
Read.i \Centre_Voyant_y
\Angle=0
EndWith
Next i
ProcedureReturn
EndProcedure
Procedure Affiche_Objets(Id.l)
If ListSize(Objet())>0
If Id>-1
;SelectElement(Objet(),Id)
With Objet()
RotateSprite(\Identifiant,\Angle,#PB_Absolute)
DisplayTransparentSprite(\Identifiant,\Position_x,\Position_y,\Alpha)
EndWith
Else
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Outlined )
Box(x,y,Objet()\largeur,Objet()\hauteur,RGB(255,255,255))
StopDrawing()
EndIf
EndIf
ProcedureReturn
EndProcedure
Et voila ce qui se passe lors d'un clic de souris.
avant de toucher quoique se soit
après plusieurs clic
je ne comprends pas, c'est comme si j'aurais appliqué un filtre motion blur.