Jeux de shoot :D

Programmation avancée de jeux en PureBasic
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Jeux de shoot :D

Message par garzul »

Bonjour donc voila je pars ce soir pendant une semaine en vacance et donc avant de partir je me suis amuser à crée un petit jeux de shoot ( Dis donc le Garzul il chôme pas ) , il est simple et utilise les linkedlist ( pratique ces petite machine ^^ peux plus m'en passer Dobro tu devrait en faire autant :D :lol: ) donc voila il n'est pas finie car je n'ai pas eu le temps mais il faudrait penser à recharger les cartouche quand on clic sur la recharge du haut puis de mettre un test de fin donc voila je vous refile le code vous en faîte ce que vous voulez quand à moi VIVE LES VACANCE :D , donc vous pouvez le terminer si vous vous voulez ou l'ameliorer à votre guise , allez @++ tout le forum ( Sniff ) Le code est moche car manque de temps j'ai fait sa à l'arrache en 2 heure ) =====> CODE <=====

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)
PS : Le jeux utilise cette image d'arriere plan , faîte clic droit puis enregistrez sous pour l'avoir =====> IMAGE <===== Image
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

tu n'as pas des petites fleurs pour l'image d'arrière plan ? ça changerait :P
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

Me revoila ( revenue d'espaqne ) non comtois pas de petite fleur pour un jeux de shoot :D , et les autre qu'en pensez vous ?? @++
Répondre