Le principe est simple je charge un bitmap avec une couleur transparente de (255,0,255) ou comme vous voulez, je l'affiche, ensuite si j'en ai envie, je creer un disque (qui me servira de trou) de couleur (255,0,255) sur le bitmap qui me sert de terrain, grace à "StartDrawing(SpriteOutput(ImageSprite))"
C'est bête, mais voila quand même un exemple, il vous faut une image avec un fond en 255,0,255 comme couleur transparente.
J'aurais bien fait un .rar pour que vous puissiez le dowloader, mais je sors d'un formatage, donc, j'ai pas encore tout réinstallé ^^
si j'ai le temps demain soir, je ferais une fonction de bombardement ^^
++

Code : Tout sélectionner
InitSprite() : InitKeyboard() : InitMouse() ; Je sais, j'initialise sans faire de test d'erreur
OpenScreen(800,600,32,"") ; j'avais la flème ^^
TransparentSpriteColor(-1,255,0,255) ; Tous les sprite seront charger avec la couleur transparente (255,0,255)
LoadSprite(0,"Map.bmp") ; Loadsprite ^^
;-Declaration des Procédures
Declare Make_Hole(HoleX.l,HoleY.l,RadiusHole.l,ImageSprite.l)
Declare DisplayMap()
Global Radius.l ; Variable pour le choix du diamètre
Global Clique_flag.l ; Variable pour savoir si on clique sur le 1°Boutton de la souris
;-Boucle Principale
Repeat
ExamineKeyboard() : ExamineMouse()
ClearScreen(0,100,255)
DisplayMap()
FlipBuffers()
Until KeyboardPushed(#Pb_Key_Escape)<>0
Procedure DisplayMap()
DisplayTransparentSprite(0,0,0)
;Affichage de la "Cible"
StartDrawing(ScreenOutput())
DrawingMode(4)
Circle(MouseX(),MouseY(),Radius,RGB(255,0,0))
StopDrawing()
; Si on clique sur le premier bouton alors on fait un trou
; grace à la procedure Make_hole()
If MouseButton(1)<>0 And Clique_flag = 0
Clique_flag = 1
Make_Hole(MouseX(),MouseY(),Radius,0)
EndIf
; Pour changer le radius
If MouseWheel()>0 : Radius + 2 : EndIf
If MouseWheel()<0 : Radius - 2 : EndIf
If Radius>200 : Radius=200 : EndIf
If Radius<5 : Radius=5 : EndIf
If MouseButton(1)=0 : Clique_flag = 0 : EndIf
EndProcedure
Procedure Make_Hole(HoleX,HoleY,RadiusHole,ImageSprite)
StartDrawing(SpriteOutput(ImageSprite))
DrawingMode(0)
Circle(HoleX,HoleY,RadiusHole,RGB(255,0,255))
StopDrawing()
EndProcedure