


Code : Tout sélectionner
;/*********************************************
;/* \\ Petit jeux marrant // *
;/* \\ Crée par Garzul | 2004 // *
;/* \\JaPBe > 2.4.7.17 || Purebasic > 3.91 // *
;/*********************************************
#Ecran_Largeur = 500 ;Definie la largeur de l'écran
#Ecran_Hauteur = 248 ;Definie la hauteur de l'écran
;Enumeration des constant
Enumeration
#Fond
#Souris
#Cible
#Recharge
#Balle
EndEnumeration
;- On crée la fenêtre.
If OpenWindow(0, 0, 0, #Ecran_Largeur, #Ecran_Hauteur, #PB_Window_BorderLess | #PB_Window_ScreenCentered, "Stand de tir") = 0
End
EndIf
;- On ouvre l'openscreen.
If InitSprite() = 0
MessageRequester("Erreur", "Impossible d'initialiser la souris ,le clavier ou l'écran. Vérifiez la présence de DirectX 7 ou supérieur.", 0 | #MB_IconError)
End
EndIf
If InitKeyboard() = 0
MessageRequester("Erreur", "Impossible d'initialiser le clavier veuillez verifier si il est bien connecter à votre ordinateur.", 0 | #MB_IconError)
End
EndIf
If InitMouse() = 0
MessageRequester("Erreur", "Impossible d'initialiser la souris veuillez verifier si elle est bien connecter à votre ordinateur.", 0 | #MB_IconError)
End
EndIf
If OpenWindowedScreen(WindowID(), 0, 0, #Ecran_Largeur, #Ecran_Hauteur, 1, 0, 0) = 0
MessageRequester("Erreur", "Impossible d'ouvrir l'écran.", 0 | #MB_IconError )
End
EndIf
;-Liste chainer cible et bullet
Recharger = 1
Structure Cible
x.l
y.l
VitesseX.l
VitesseY.l
EndStructure
NewList Sprite.Cible()
For i = 0 To 25
AddElement(Sprite())
Sprite()\x = Random(#Ecran_Largeur)
Sprite()\y = Random(#Ecran_Hauteur)
Sprite()\VitesseX = 7
Sprite()\VitesseY = 7
Next i
Structure Bullet
x.l
y.l
EndStructure
NewList Balle.Bullet()
For i = 10 To 100 Step 10
AddElement(Balle())
Balle()\x = i
Balle()\y = 225
DisplaySprite(#Balle,i,Sprite()\y)
Next i
;-Sprite
;Création des sprite du jeux
CreateSprite(#Souris,40,40,0)
StartDrawing(SpriteOutput(#Souris)) : DrawingMode(4)
LineXY(5,20,35,20,RGB($FF,250,$80))
LineXY(20,0,20,40,RGB($FF,250,$80))
Circle(20,20,10,RGB($EC,$6,$C))
Circle(20,20,20,RGB($EC,$6,$C))
StopDrawing()
CreateSprite(#Cible,30,30,0)
StartDrawing(SpriteOutput(#Cible)) : DrawingMode(4)
Circle(10,10,3,RGB($D9,$DC,$6D))
Circle(10,10,5,RGB($39,$C9,$29))
Circle(10,10,7,RGB($26,$12,$E0))
Circle(10,10,9,RGB($EF,$3,$A))
Circle(10,10,11,RGB($33,$B8,$BF))
StopDrawing()
CreateSprite(#Recharge,30,30,0)
StartDrawing(SpriteOutput(#Recharge)) : DrawingMode(1)
Circle(10,10,10,RGB($D9,$DC,$6D))
StopDrawing()
CreateSprite(#Balle,30,30,0)
StartDrawing(SpriteOutput(#Balle)) : DrawingMode(1)
Box(0,0,5,15,RGB($FF,$4A,$4F))
StopDrawing()
;Chargement des sprite
UseJPEGImageDecoder()
LoadSprite(#Fond,"Fond.jpg")
;-Affichage des cible et bullet
Procedure Affichage()
ForEach Sprite()
If Sprite()\x > #Ecran_Largeur Or Sprite()\x < 0
Sprite()\VitesseX =- Sprite()\VitesseX
EndIf
If Sprite()\y > #Ecran_Hauteur Or Sprite()\y < 0
Sprite()\VitesseY =- Sprite()\VitesseY
EndIf
DisplayTransparentSprite(#Cible,Sprite()\x,Sprite()\y)
Sprite()\x + Sprite()\VitesseX
Sprite()\y + Sprite()\VitesseY
Next
;Bullet
ForEach Balle()
DisplayTransparentSprite(#Balle,Balle()\x ,Balle()\y)
Next
EndProcedure
;*______________________________________*__**__*__**__*__**__*___________________________________________*
;/**************************************** //\\ BOUCLE //\\ *********************************************
;/**************************************** \\//*||**||*\\// *********************************************
;*______________________________________*__**__*__**__*__**__*___________________________________________*
Repeat
Event = WindowEvent()
Delay(5)
ExamineMouse()
x1 = MouseX()-10
y1 = MouseY()-10
DisplaySprite(#Fond,0,0)
Affichage()
DisplayTransparentSprite(#Recharge,x,y)
DisplayTransparentSprite(#Souris,x1,y1)
ForEach Balle()
If MouseButton(1)
DeleteElement(Balle())
EndIf
If CountList(Balle()) = 0
Recharger = 0
EndIf
Next
If Recharger = 0
StartDrawing(ScreenOutput())
FrontColor(250,250,0)
DrawingMode(1)
Locate(210,110)
DrawText("RECHARGER")
StopDrawing()
ForEach Balle()
If SpriteCollision(#Souris , x1 , y1 , #Recharge , x , y) And MouseButton(1)
EndIf
Next
EndIf
If Recharger = 1
ForEach Sprite()
If SpriteCollision(#Souris , x1 , y1 , #Cible , Sprite()\x , Sprite()\y) And MouseButton(1)
DeleteElement(Sprite())
EndIf
Next
EndIf
FlipBuffers() ;Inversion des deux buffer
ClearScreen( 0 , 0 , 0 )
If IsScreenActive() = 0
End
EndIf
;Fin du programme si appuyer sur echap .
ExamineKeyboard()
Until Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)