[0k] N00b a la mer !

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

Message par garzul »

Avec plaisir BuCkSh0t :D Tien voici le code ( A mes debut mon code etais pas clair ^^ ) :

Code : Tout sélectionner

;*****************
;*               *
;*    GARZUL     *
;*               *
;*   INVADERS    *
;*****************

;initialisation des composant
InitSprite() 
InitKeyboard()
InitMovie() 
InitSound() 

;constant
Enumeration
  #Vaisseau_ennemie
  #Vaisseau_joueur
  #Police
  #Fondecran
  #laser
  #musiquefond
  #explosion
EndEnumeration
;fin des constant

;random pour le derivement du sprite ennemis
alea = Random(2) 
;pour le placement du sprite ennemis
pla = Random(50) 


Declare moveplayer()
Declare moveennemie()
Declare lasergo() 

Global x
Global y
Global a
Global b
Global vita
Global vitB
Global nom$
Global g
Global h
Global tir
;Taper votre nom
nom$ = InputRequester("Garzul invaders","Bienvenue tapez votre nom pour jouer a garzul invaders" ,"Mettez ici votre nom")


;**************ouverture de l'ecran en windowscreen*****************
Resultat = InitSprite() 
FontID = LoadFont(#Police, "arial", 18, #PB_Font_Bold ) 
EcranX = GetSystemMetrics_(#SM_CXSCREEN):;=largeur de l'ecran 
EcranY = GetSystemMetrics_(#SM_CYSCREEN):;=hauteur de l'ecran 
WindowID = OpenWindow(1, 0, 0, 768, 500,  #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered , "Garzul invaders") 
WindowID = WindowID(1) 
Result = OpenWindowedScreen(WindowID,0,0, 768, 650, 1, 0,0)             

;-sprite joueur
CreateSprite(#Vaisseau_joueur,20,20,0)
;variable de score
jouscore = 0
vie = 3

StartDrawing(SpriteOutput(#Vaisseau_joueur)) : 
DrawingMode(0) 
Box(x, y,10 ,10,RGB($12,$F1,$ED)) :StopDrawing()

;placement du sprite laser
g = 370
h = 620
tir = 0
;placement du sprite joueur au coordonnee
x = 370
y = 620
;placement du sprite ennemie au coordonnee
a = 370
b = 50
c = 370
;vitesse du sprite ennemie
vita = 4
vitB = 4
;-load image pour les sprite
UseJPEGImageDecoder() 
;chargement du fond d'ecran
LoadSprite(#Fondecran,"etoile.jpg")
 ;chargement du vaisseau ennemis
LoadSprite(#Vaisseau_ennemie,"ennemy.bmp")
 ;chargement du sprite du laser
LoadSprite(#laser,"laser.bmp")
 
 ;chargement des sons du jeux
LoadMovie(#musiquefond, "laser.mp3")
  
  
LoadSound(#explosion, "explosion.wav") 

;***********ici c la boucle ***************
Repeat
  
  event =WindowEvent() :
  Delay(5)
  ;vitesse et deplacement du laser
  
  ;vitesse et deplacement de l'ennemie
  a + vita
  c + vita
  b + alea
  If c < 2 : vita=-vita : EndIf
  If a > 720 : vita=-vita : EndIf
  If b > 620 : b = pla : EndIf
  ;deplacement du joueur
  ExamineKeyboard() 
  If  KeyboardPushed(#PB_Key_Right): x + 2
  EndIf
  If  KeyboardPushed(#PB_Key_Left): x - 2
  EndIf
  
  ExamineKeyboard() 
  If  KeyboardPushed(#PB_Key_F1)
    MessageRequester("AIDE","Détruisez tous les ennemie a tant avant qu'il ne vous détruise en vous fonçant dessus il faut que vous arriviez a 500 point pour gagner et ne perdez pas vos 3 vie sinon vous perdez ,pour cela utiliser les flèche pour vous déplacer et la barre espace pour tirer", #PB_MessageRequester_Ok)
  EndIf
  
  ExamineKeyboard() 
  If  KeyboardPushed(#PB_Key_Escape)
    MessageRequester("A bientot sur garzul invader","Ce jeux a etais crée par garzul pour envoyer vos recomandation mailer moi a cette adresse garzul@tiscali.fr, A BIENTOT "+LCase(nom$), #PB_MessageRequester_Ok) 
    End
  EndIf
  
  ;-************************************la vie**********************************************
  If vie = 0
    Resultat = MessageRequester("Perdue","Vous n'avez pas atteint vos objectif votre score etaient de , "+ Str(jouscore)+ " Vous avez perdu toute vos vie shouaiter vous recommencez le jeu?", #PB_MessageRequester_YesNo)
    If Resultat = 6
      vie = 3
      jouscore = 0
    Else
      MessageRequester("A bientot sur garzul invader","Ce jeux a etais crée par garzul pour envoyer vos recomandation mailer moi a cette adresse garzul@tiscali.fr, A BIENTOT "+LCase(nom$), #PB_MessageRequester_Ok) 
      End
    EndIf
  EndIf
  ;-***************************LES COLLISION***********************************************
  If SpriteCollision(#laser, g, h, #Vaisseau_ennemie, a, b) 
    jouscore + 25
    tir = 0
    h = 620
    b = pla
    StopMovie() 
    PlaySound(#explosion , 0) 
  EndIf
  
  If SpriteCollision(#Vaisseau_ennemie,a,b, #Vaisseau_joueur , x , y)
    jouscore - 15
    b = pla
    vie - 1
  EndIf
  ;***********************************************SCORE***********************************
  StartDrawing(ScreenOutput())
  DrawingMode(1)  
  Locate(20,600) 
  BackColor(0,0,0) 
  FrontColor($0F,$12,$F0) 
  DrawText("Score de "+LCase(nom$)+ "= " +Str(jouscore)) 
  StopDrawing() 
  
  StartDrawing(ScreenOutput())
  DrawingMode(1)  
  Locate(680,600) 
  BackColor(0,0,0) 
  FrontColor($0F,$12,$F0) 
  DrawText("Vie de "+Str(vie)) 
  StopDrawing() 
  
  
  StartDrawing(ScreenOutput())
  DrawingMode(1)  
  Locate(20,25) 
  BackColor(0,0,0) 
  FrontColor($0F,$12,$F0)
  DrawText("Aide= F1") 
  StopDrawing() 
  
  StartDrawing(ScreenOutput())
  DrawingMode(1)  
  Locate(630,25) 
  BackColor(0,0,0) 
  FrontColor($0F,$12,$F0)
  DrawText("Quitter = ECHAP") 
  StopDrawing() 
  
  If jouscore = 500
    Result = MessageRequester("Bravo","Votre objectif et atteint vous avez gagnez le jeu avec 500 point bravo , voulez vous recommencez?",#PB_MessageRequester_YesNo)
    If Result = 6
      vie = 3
      jouscore = 0
    Else
      MessageRequester("A bientot sur garzul invader","Ce jeux a etais crée par garzul pour envoyer vos recomandation mailer moi a cette adresse garzul@tiscali.fr, A BIENTOT "+LCase(nom$), #PB_MessageRequester_Ok) 
      End
    EndIf
  EndIf
  
  ;****************************************fin score**************************************
  
  ;image de fond
  
  ;*****************commande d'affichage***************
  
  FlipBuffers() 
  ClearScreen(0, 0, 0);efface l'ecran
  moveplayer()
  moveennemie()
  lasergo()
  
  ;*****************fin commande d'affichage*****************
  
  ;placer le sprite
  DisplaySprite(#Fondecran,-58,-65) ; !!!!!!!!!!!!!   ICI     !!!!!!!!!!!   ICI     !!!!
  DisplaySprite(#Vaisseau_joueur,x,y)
  DisplayTransparentSprite(#Vaisseau_ennemie,a,b)
  TransparentSpriteColor(#Vaisseau_ennemie, $00,$00,$00) 
  If tir = 1
    DisplayTransparentSprite(#laser,g,h)
    TransparentSpriteColor(#laser, $00,$00,$00) 
    h - 5
    If h < 0
      tir = 0
      h = 620
    EndIf 
  EndIf
  ;***Les Procedure !!!************************
  ;procedure mo
  
  
Until event=#PB_Event_CloseWindow ; voila fini!  

;*************uvement joueur
Procedure moveplayer()
  If x < 10 : x = 10 : EndIf
  If x > 745 : x = 745 : EndIf
EndProcedure

;procedure mouvement ennemie
Procedure moveennemie()
  If a < 10 : a = 10 : EndIf
  If b > 745 : b = 745 : EndIf
EndProcedure

;procedure lancement du laser
Procedure lasergo()
  ExamineKeyboard() 
  If KeyboardPushed(#PB_Key_Space) And tir = 0
    PlayMovie(#musiquefond, FenetreID) 
    g = x
    tir = 1
  EndIf
EndProcedure




     
Voila et pour les image va sur mon site telecharge mon jeux Garzul invader puis met la source dans les medias pour que sa marche :D @++
BuCkSh0t
Messages : 29
Inscription : lun. 27/sept./2004 12:15

Message par BuCkSh0t »

Vraiment super merci :D
-_Purefication will gonna start_-
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

De rien VIVE L'OPEN SOURCE :) :D
BuCkSh0t
Messages : 29
Inscription : lun. 27/sept./2004 12:15

Message par BuCkSh0t »

Waiiiiiiiii




Dis sa te drange si je te rejoute a mes contact...... ?

8)
-_Purefication will gonna start_-
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

Pas du tout au contraire :D ( suis toujour conecter :d )
Répondre