Invaders 2016

Programmation avancée de jeux en PureBasic
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Invaders 2016

Message 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
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Re: Invaders 2016

Message 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 ?
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Invaders 2016

Message par falsam »

ça sent un gMunitions = 10 quelques part dans ton code.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Re: Invaders 2016

Message 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
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Invaders 2016

Message 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
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Re: Invaders 2016

Message 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
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Re: Invaders 2016

Message par Bernie »

Bonjour

quel type je pourrais bien faire en purebasic ?
Répondre