Page 2 sur 2

Re: Invaders 2016

Publié : dim. 12/juin/2016 10:19
par falsam
Tous comme les munitions que tu n'avais pas réinitialisées quand tu reviens dans ton case 0, tu ne réinitialises pas le nombre de vies des ennemis.

Tu as une procédure qui se nomme InitGame() dans laquelle tu initialises tes ennemis. Je te propose d'ajouter la modification que je t'ai donné précédemment c'est à dire un ClearList(shoot())

Dans ton case 0 on supprime ClearList(shoot()) et on ajoute InitGame().

■ la portion de code de ton case 0

Code : Tout sélectionner

    Case 0 ; Intro du jeu 
           ;--- On joue la musique 
      If JoueMusique=#False 
        PlaySound(#Music, #PB_Sound_Loop)
        SoundVolume(#Music,30)
        JoueMusique = #True
      EndIf
      Intro_Game()
      
      ;Si on appuie sur Espace on lance le jeu 
      If KeyboardPushed(#PB_Key_Space)
        
        StopSound(#Music)
        InitGame()
        
        gScenes =1
      EndIf
■ Le code de ta procédure InitGame()

Code : Tout sélectionner

Procedure InitGame()
  ;--- Création du vaisseau
  Ship\PosX=350
  Ship\PosY=500
  gMunitions=10
   
  ;--- Création des invaders sur 3 rangées et 5 colonnes soit au total 15 invaders
  ClearList(Invader())
  For gRow = 1 To 3
    For gCol =1 To 5
      AddElement(Invader())
      With Invader()
        \Sprite = CopySprite(#Invader,#PB_Any)
        \PosX=gCol *120
        \PosY= gRow*60
        \Life=5
        \Total = 15
      EndWith
    Next
  Next
  
  ;--- Reset des tirs résiduel (Meme si il y a en a pas lors de la premiere partie)
  ClearList(shoot())
EndProcedure

Re: Invaders 2016

Publié : dim. 12/juin/2016 19:03
par Bernie
Merci Falsam
je rencontre un autre probleme si je mets global gMunitions = 100 au début du code

quand je lance le jeu la premiere fois il mets que 10 ensuite si j'ai plus de munitions je relance la partie et là j'ai 100 muntions

Pourquoi il affiche 10 au lancement du jeu alors que j'ai changer la valeur de la variable gMunitions ?

Re: Invaders 2016

Publié : dim. 12/juin/2016 21:34
par falsam
ça sent un gMunitions = 10 quelques part dans ton code.

Re: Invaders 2016

Publié : dim. 12/juin/2016 21:39
par Bernie
falsam a écrit :ça sent un gMunitions = 10 quelques part dans ton code.
j'ai que 2 gMunitions dans mon code

Lien :
https://www.dropbox.com/s/bdvmnsgpyyjca ... 1.zip?dl=0

Re: Invaders 2016

Publié : dim. 12/juin/2016 21:44
par falsam
C'est bien ce que je disais ...

Code : Tout sélectionner

Procedure InitGame()
  ;--- Création du vaisseau
  Ship\PosX=350
  Ship\PosY=500
  gMunitions=10 ;C'est quoi ça ?
   
- Dans ta déclaration de variable en global, Remplace gMunitions=100 par gMunitions
- Remplace gMunitions=10 par gMunitions=100 dans ta procédure InitGame
- Supprime gMunitions=100 ;Remettre des munitions de ton Case 3

Re: Invaders 2016

Publié : lun. 13/juin/2016 16:53
par Bernie
Merci falsam ton aide

j'ai fini le jeu :

https://www.dropbox.com/s/jpgio3hewiofm ... 5.zip?dl=0

j'attends vos conseils et remarques

merci

Re: Invaders 2016

Publié : mer. 15/juin/2016 16:23
par Bernie
Bonjour

quel type je pourrais bien faire en purebasic ?