Invaders 2016

Programmation avancée de jeux en PureBasic
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Invaders 2016

Message par Bernie »

Bonjour
voilà mon jeu ( qui est pas fini) mais j’arrête là pour le moment car j'arrive pas faire rejoué le jeu
il faut appuyer sur la touche CTRL gauche pour le tir chaque invaders à 5 de vies


https://www.dropbox.com/s/3fweygpljs80m ... s.zip?dl=0

j'attends vos conseils et remarques .

Bye bye
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Invaders 2016

Message par microdevweb »

C'est pas mal du tout Bernie :wink:
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Re: Invaders 2016

Message par Bernie »

merci mais il est pas fini il manque pour rejouer au jeu je crois que je crois que j'ai vu trop grand pour un premier jeu
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Invaders 2016

Message par microdevweb »

Voici un code avec reprise du jeu automatique après 3 secondes. A toi de voir pour améliorer
J'ai créer une procédure qui initialise ton jeux elle est rappelée après

Code : Tout sélectionner

;***************************************************************
;******************** INVADERS  ******************************
;Code par Jean-Bernard  2016 
;***************************************************************
;--- Initilisation :
EnableExplicit
UseJPEGImageDecoder()
UsePNGImageDecoder()
UseOGGSoundDecoder()

If InitSprite()=0 Or InitKeyboard()=0 Or InitSound()=0
  MessageRequester("Erreur", "Impossible d'initialiser le jeux ")
  End
EndIf
;--- Les Constantes :
Enumeration Windows
  #Main_Window
EndEnumeration

Enumeration Game
  #Etoile0
  #Etoile1
  #BackGround
  #Titre
  #Music
  #Text_PressBar
  #TexteSCore
  #ValScore
  #TexteMunitions
  #ValMunitions
  #Ship
  #Laser
  #SoundTir
  #SoundExplosion
  #Invader
  #TextGameOver
  #TextYouWin
EndEnumeration

;--- Déclaration des procedures:

;--- Procedure pour le dessin des 2 étoiles 
Declare CreationEtoiles()
;---;--- Initialisation des paramètres de départ des étoiles
Declare Initialisation()
;--- Deplacement des étoiles
Declare Deplacement()
;---Dessin pour les textes:  press bar , le  score , les munitions 
Declare Affiche_Text()
;---Dessin pour les sprites Score et Vies
Declare SpriteVariables(ValeurScore.i,ValeurMunitions.i)


;--Structure pour les infos des étoiles, du vaisseau , des invaders et des tirs lasers
Structure NewSprite
  Sprite.i
  PosX.i
  PosY.i
  Vitesse.i
  Id.b
  Life.i
  Total.i
EndStructure

;--- Gestion des étoiles
;---Nombre d'étoiles
#MaxEtoiles= 99
;---Création d'un tableau pour les étoiles du scrolling
Global Dim etoiles.NewSprite(#MaxEtoiles)

;---Gestion du vaisseau
Global Ship.NewSprite
;---Gestion des tirs du vaisseau
Global NewList Shoot.NewSprite(),gShootTime,gShootReady=#True

;--- Gestion des invaders
Global NewList Invader.NewSprite(),gDirection.i=1,gRow,gCol


;--- Variables globales diverses
Global Folder.s="Assets/"
Global gEvent,gWidth=800,gHeight=600,gI,gFont,gFont1,gTimeElapsed=ElapsedMilliseconds(),TextOn.b=#False,gScore=0,gMunitions=10

;---Variable pour lancer le jeux quand on appuie sur la touche Space Bar
Global DebutJeu.b = #False
;---Variable qui affiche Game over 
Global GameOver.b= #False
;---Variable qui affiche You Win 
Global YouWin.b= #False
;---Chargement de la police pour le texte PressSpaceBar
gFont = LoadFont(0, "Arial", 30, #PB_Font_Bold )
;---Chargement de la police pour le texte du score et le texte des muntions
gFont1 = LoadFont(1, "Arial", 20, #PB_Font_Bold )


;---Création de la surface du jeu
OpenWindow(#Main_Window,0,0,gWidth,gHeight,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Main_Window),0,0,gWidth,gHeight)
SetWindowTitle(#Main_Window,"INVADERS "+ "                 Touche CTRL Gauche pour le tir du vaisseau")

;--- Chargement des Assets du jeux
;---Chargement des images :
;--- Image du background 
LoadSprite(#BackGround,Folder + "BackG.jpg")
;--- image du logo du jeux
LoadSprite(#Titre,Folder + "Logo.png",#PB_Sprite_AlphaBlending)
;---Image du vaisseau
LoadSprite(#Ship,Folder + "Ship.png",#PB_Sprite_AlphaBlending)
;---Image du laser pour le tir du vaisseau
LoadSprite(#Laser,Folder + "laser.png",#PB_Sprite_AlphaBlending)
;---Image des Invaders
LoadSprite(#Invader,Folder + "Ufo.png",#PB_Sprite_AlphaBlending)
;---Image du texte gameover
LoadSprite(#TextGameOver,Folder + "Game.png",#PB_Sprite_AlphaBlending)
;---Image du texte You win 
LoadSprite(#TextYouWin,Folder + "You.png",#PB_Sprite_AlphaBlending)



;---Chargement des sons :
;---Chargement de la musique
LoadSound(#Music,Folder +"Music.ogg",#PB_Sound_Streaming)
;---Chargement du son du laser pour le tir du vaisseau
LoadSound(#SoundTir,Folder+"Tir.Wav")
;---Chargement du son de l'explosion quand on detruit un invaders
LoadSound(#SoundExplosion,Folder+"Boum.Wav")

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 
EndProcedure

InitGame()





;---Affichage  des procedures :
CreationEtoiles()
Initialisation()
Affiche_Text()
SpriteVariables(gScore,gMunitions)

  ;--- On joue la musique 
    PlaySound(#Music)




;---Boucle principale du jeux
Repeat
  Repeat
    gEvent=WindowEvent()
    Select gEvent
      Case #PB_Event_CloseWindow
        End
    EndSelect
  Until gEvent=0
  ;--- Partie 2D
  ClearScreen(RGB(0, 0, 0))
  
  ;--- On affichel le background
  DisplaySprite(#BackGround,0,0)
  ;--- Deplacement des étoiles pour le scrolling 
  Deplacement()
     
   
  ;---Si le jeux n'as pas commencé
  If DebutJeu = #False
  
   ;--- On affiche le titre du jeux
    DisplayTransparentSprite(#Titre,95,210)
    ;--On fait clignoter le texte "Press SpaceBar"
    If TextOn
      DisplayTransparentSprite(#Text_PressBar, 230, 480)
    EndIf
    If (ElapsedMilliseconds()-gTimeElapsed)>500
      If TextOn
        TextOn=#False
      Else
        TextOn=#True
      EndIf
      gTimeElapsed=ElapsedMilliseconds()
    EndIf
  EndIf
  ExamineKeyboard()
  ;--- Si on presse la touche Space bar on coupe la musique et on lance le jeu
  If KeyboardPushed(#PB_Key_Space)
    StopSound(#Music)
    DebutJeu = #True
  EndIf
  ;--- Début du jeu
  If DebutJeu = #True 
    ;--- Affichage des textes Score et munitions et leur variables
    DisplayTransparentSprite(#TexteScore, 20, 10)
    DisplayTransparentSprite(#ValScore, 140, 10)
    DisplayTransparentSprite(#TexteMunitions, 550, 10)
    DisplayTransparentSprite(#ValMunitions, 700, 10)
    ;--- Affichage du vaisseau
    DisplayTransparentSprite(#Ship,Ship\Posx,Ship\Posy)  
    ;---Affichage des invaders         
    ForEach Invader()
      If gDirection<>0
        Invader()\PosX+1 * gDirection
        If Invader()\PosX= 0 Or Invader()\PosX>ScreenWidth()-SpriteWidth(Invader()\Sprite)
          gDirection *-1
          Invader()\PosX+1*gDirection
          PushListPosition(Invader())
          ForEach Invader()
            Invader()\Posy+ 20
          Next
          PopListPosition(Invader())
        EndIf
      EndIf   
      DisplayTransparentSprite(Invader()\Sprite,Invader()\PosX,Invader()\PosY)
    Next 
    ;---Déplacement du vaisseau avec les touches fleches droite ou gauche
    ;---à Gauche
    If KeyboardPushed(#PB_Key_Left) And Ship\Posx>0
      ship\Posx-3
    EndIf
    If KeyboardPushed(#PB_Key_Right) And Ship\Posx <ScreenWidth() -SpriteWidth(#Ship)
      Ship\Posx + 3
    EndIf
    ;---Affichage des tirs du vaisseau
    ForEach Shoot()
      Shoot()\PosY-2
      If Shoot()\PosY<0
        FreeSprite(Shoot()\Sprite)
        DeleteElement(Shoot(),#True)
      Else
        DisplayTransparentSprite(Shoot()\Sprite,Shoot()\PosX,Shoot()\PosY)
      EndIf
    Next
    ;---Tir du laser avec la touche Control(Ctrl)
    If KeyboardReleased(#PB_Key_LeftControl) And gShootReady =#True
      PlaySound(#SoundTir)
      SoundVolume(#SoundTir,30)
      AddElement(Shoot())
      Shoot()\Sprite=CopySprite(#Laser,#PB_Any)
      Shoot()\PosX= Ship\PosX+SpriteWidth(#Ship)/2-SpriteWidth(Shoot()\Sprite)/2
      Shoot()\PosY=490
      gMunitions-1
      gShootTime = ElapsedMilliseconds()
    EndIf
    If ElapsedMilliseconds() - gShootTime > 300
      gShootReady=#True
    Else
      gShootReady=#False
    EndIf 
    ;---Il y a t'il collision entre un tir et un invader ?
    ForEach Shoot()
      ForEach Invader()
        If ListSize(Shoot()) <>0 And ListSize(Invader())<>0
          If SpriteCollision(Invader()\Sprite,Invader()\PosX,Invader()\PosY,Shoot()\Sprite,Shoot()\PosX,Shoot()\PosY)
            FreeSprite(Shoot()\Sprite)
            DeleteElement(Shoot(),#True)
            Invader()\Life-1
            Invader()\Total-1
            If Invader()\Life=0
              FreeSprite(Invader()\Sprite)
              DeleteElement(Invader(),#True)
              PlaySound(#SoundExplosion)
              SoundVolume(#SoundExplosion,30)
              gScore +10
            EndIf
          EndIf
        EndIf
      Next
    Next
    
    ;---Si on a plus de muntions on perd la partie
    If gMunitions =0
      gShootReady=#False
      GameOver=#True
    EndIf
    ;--- On affiche le message Game Over  
    If GameOver=#True
        DisplayTransparentSprite(#TextGameOver,95,210)
        Affiche_Text()
        DisplaySprite(#TexteMunitions,550, 10)
        FlipBuffers() ; pour afficher game over et les munitions
        Delay(3000)
        InitGame()
        GameOver=#False
    EndIf  
    EndIf 
    
        ;---Si il ya plus d'invaders on gagne la partie 
        If ListSize(Invader()) = 0
          gShootReady=#False
          YouWin=#True
      EndIf    
      If YouWin = #True 
         DisplayTransparentSprite(#TextYouWin,100,210)
      EndIf
      
     

    
      
    
    
     ;--- On affiche les variables Score et Munitions
    SpriteVariables(gScore,gMunitions) 
   
    
    
    
   
  FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape)
End


;--- les procédures :

;---Dessins des 2 étoiles
Procedure CreationEtoiles()
  CreateSprite(#Etoile0,2,2)
  CreateSprite(#Etoile1,2,2)
  ;---Dessin de l'étoile blanche
  StartDrawing(SpriteOutput(#Etoile0))
  Box(0, 0, 2, 2, $FFFFFF)
  StopDrawing()
  ;--Dessin de l'étoile grise
  StartDrawing(SpriteOutput(#Etoile1))
  Box(0, 0, 2, 2, $A9A9A9)
  StopDrawing()
EndProcedure
;--- Initialisation des paramètres de départ des étoiles
Procedure Initialisation()
  For gI = 0 To #MaxEtoiles
    With etoiles(gI)
      \PosY = Random(gHeight)
      \PosX = Random(gWidth,0)
      \Id = Random(1)
      \Vitesse = Random(8,2)
    EndWith
  Next
EndProcedure
;--- Deplacement des étoiles
Procedure Deplacement()
  For gI = 0 To #MaxEtoiles
    With etoiles(gI)
      DisplaySprite(\Id,\PosX,\PosY)
      \PosY + \Vitesse
      If \PosY >= gWidth
        \PosY - gWidth
      EndIf
    EndWith
  Next
EndProcedure

;---Dessin pour les textes:  press bar , le  score , les munitions , press c
Procedure Affiche_Text()
   ;---Pour le texte press bar 
  CreateSprite(#Text_PressBar,600,100,#PB_Sprite_AlphaBlending)
  StartDrawing(SpriteOutput(#Text_PressBar))
  DrawingMode(#PB_2DDrawing_AllChannels)
  Box(0,0,1090,80,RGBA(0,0,0,0))
  DrawingFont(gFont)
  DrawText(20,10,"Press SpaceBar",RGBA(255,255,255,255), RGBA(0,0,0,0));
  StopDrawing()
  ;---Pour le texte score
  CreateSprite(#TexteScore,180,50,#PB_Sprite_AlphaBlending)
  StartDrawing(SpriteOutput(#TexteScore))
  DrawingFont(gFont1)
  DrawText(0,10,"Score: ",RGBA(255,255,255,255),RGBA(0,0,0,0));
  StopDrawing()
  ;--Pour le texte munitions
  CreateSprite(#TexteMunitions,450,50,#PB_Sprite_AlphaBlending)
  StartDrawing(SpriteOutput(#TexteMunitions))
  DrawingFont(gFont1)
  DrawText(10,10,"Munitions : ",RGBA(255,255,255,255),RGBA(0,0,0,0));
  StopDrawing()
 
  
  
  
EndProcedure
;---Dessin pour les sprites Score et Vies
Procedure SpriteVariables(ValeurScore.i,ValeurMunitions.i)
  ;--- dessin du sprite pour le score
  CreateSprite(#ValScore,180,50,#PB_Sprite_AlphaBlending)
  StartDrawing(SpriteOutput(#ValScore))
  DrawingFont(gFont1)
  DrawText(0,10,Str(valeurScore),RGBA(255,255,255,255),RGBA(0,0,0,0));
  StopDrawing()
  ;---Dessin du sprite Munitions
  CreateSprite(#ValMunitions,450,50,#PB_Sprite_AlphaBlending)
  StartDrawing(SpriteOutput(#ValMunitions))
  DrawingFont(gFont1)
  DrawText(10,10,Str(ValeurMunitions),RGBA(255,255,255,255),RGBA(0,0,0,0));
  StopDrawing()
EndProcedure































Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Re: Invaders 2016

Message par Bernie »

Un grand merci pour ton aide
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Re: Invaders 2016

Message par Bernie »

Bonjour
comme faire pour revenir à l'intro quand on fait un gameover ?
si je rajoute DebutJeu=#true ça marche pas

Code : Tout sélectionner

;--- On affiche le message Game Over 
 If GameOver=#True
   DisplayTransparentSprite(#TextGameOver,95,210)
   Affiche_Text()
   DisplaySprite(#TexteMunitions,550, 10)
   
  FlipBuffers() ; pour afficher game over et les munitions
Delay(3000)
InitGame()
GameOver=#False
DebutJeu=#true
EndIf
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Re: Invaders 2016

Message par Bernie »

personne pour m'aider svp???
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Invaders 2016

Message par GallyHC »

Déjà je penser que tu arrêtais la programmation comme tu l'avais écrit dans le sujet "PureColor_Master_V1 Abandon. " de Shadow, avant de le supprimé.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: Invaders 2016

Message par Marc56 »

Bernie a écrit :personne pour m'aider svp???
Normalement tu devrais mettre toute la partie jeu dans une procédure.
Le programme devrait débuter avec un écran affichant "jouer" qui appelle cette procédure.
La boucle principale ne contiendra que l'attente du raccourci clavier "Espace" ou celui pour quitter.
D'une manière principale, la boucle principale d'un programme doit contenir le moins de choses possibles.
Une fois que la procédure de jeu principale est terminée, l'écran revient donc là au lieu de quitter quand on fait Echap.
Ce premier écran peut aussi servir à afficher les meilleurs scores.

:wink:
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 »

L'objectif de ce code est de détruire l'ennemi en rouge.
Utilise les touches du clavier pour te déplacer.

Les séquences du jeu se déroule à travers une variable Stage (Niveau ou étape en français)

- Stage 0 : Pour commencer le joueur presse la touche Espace
- Stage 1 : Le jeu est cours
- Stage 2 : Le jeu est terminé, retour Stage 0

Code : Tout sélectionner

EnableExplicit

Enumeration Window
  #MainForm
EndEnumeration

;Structure simplifier d'un sprite
Structure NewSprite
  Sprite.i    ;Identifiant du sprite représentant un tir
  x.i         ;Position x 
  y.i         ;Position y 
EndStructure

;Sprites
Define Player.NewSprite
Define Enemy.NewSprite

;Evenement
Define Event

;Niveau (0 Pour commencer le joueur presse la touche Espace, 1 jeu en cours, 2 Game Over retour niveau 0) 
Define Stage

;Initialisation de l'environnement 2D
InitSprite() : InitKeyboard()

;Creation de la surface de jeu
OpenWindow(#MainForm, 0, 0, 800, 600, "Game Over", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#MainForm), 0, 0, 800, 600)

;Chargement et/ou création des sprites
Player\Sprite = CreateSprite(#PB_Any, 32, 32)
StartDrawing(SpriteOutput(Player\Sprite))
Box(0, 0, 32, 32, RGB(154, 205, 50))
StopDrawing()

Enemy\Sprite  = CreateSprite(#PB_Any, 32, 32)
StartDrawing(SpriteOutput(Enemy\Sprite))
Box(0, 0, 32, 32, RGB(255, 0, 0))
StopDrawing()

;-Boucle evenementielle
Repeat  ;Evenement du jeu
  Repeat;Evenement window
    Event = WindowEvent()
    
    Select Event    
      Case #PB_Event_CloseWindow
        End
    EndSelect  
  Until Event=0
  
  ; 1 - Effacer l'ecran avec une couleur avant d'afficher les sprites
  ClearScreen(RGB(0, 0, 0)) 
  
  ; 2 - Affichage des sprites
  DisplayTransparentSprite(Player\Sprite, Player\x, Player\y)  
  DisplayTransparentSprite(Enemy\Sprite, Enemy\x, Enemy\y)
  
  ; 3 - Examinons les niveaux
  ExamineKeyboard()
  
  Select Stage
    Case 0 ;Début du jeu (Repositionnement des sprites)
      Player\x      = 100
      Player\y      = 100
      Enemy\x       = 500
      Enemy\y       = 500
      
      StartDrawing(ScreenOutput())
      DrawingMode(#PB_2DDrawing_Transparent)
      DrawText(10, 10, "New Game : Press Space Bar",RGB(255, 0, 0))
      StopDrawing()
      
      If KeyboardReleased(#PB_Key_Space)
        Stage = 1 ;Le jeu commence
      EndIf
      
      
    Case 1 ;le jeu est en cours
      StartDrawing(ScreenOutput())
      DrawingMode(#PB_2DDrawing_Transparent)
      DrawText(10, 10, "Your goal: Destroy the enemy. Good luck",RGB(255, 0, 0))
      StopDrawing()

      
      If KeyboardPushed(#PB_Key_Left) And Player\x > 0
        Player\x - 2 
      EndIf
      
      If KeyboardPushed(#PB_Key_Right) And Player\x < ScreenWidth() - SpriteWidth(Player\Sprite)
        Player\x + 2 
      EndIf
      
      If KeyboardPushed(#PB_Key_Up) And Player\y > 0
        Player\y - 2 
      EndIf
      
      If KeyboardPushed(#PB_Key_Down) And Player\y < ScreenHeight() - SpriteHeight(Player\Sprite)
        Player\y + 2 
      EndIf
      
      If SpriteCollision(Player\Sprite, Player\x, Player\y, Enemy\Sprite, Enemy\x, Enemy\y)
        Stage = 2 ;Game Over
      EndIf
      
      
    Case 2 ;Game over
      StartDrawing(ScreenOutput())
      DrawingMode(#PB_2DDrawing_Transparent)
      DrawText(10, 10, "YeahhHHHhhhh : Press Space Bar",RGB(255, 0, 0))
      StopDrawing()
      
      If KeyboardReleased(#PB_Key_Space)
        Stage = 0 ;Retour au début du jeu 
      EndIf
      
  EndSelect
  
  ; 4 - Inversion des buffers d'affichage  
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) ;La touche Escape permet de quitter le jeu
Si tu ne souhaites pas visualiser les sprites au Stage 0, place l'affichage du joueur et de l'ennemi après Case 1.
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 pour ton aide
j'ai crée ça mais impossible revenir dans le jeu si on fait game over .
https://www.dropbox.com/s/sjpyx6lyuhavf ... s.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 »

Dans cet exemple le jeu passe en phase case 3 Game Over quand il n'y a plus de munition.

Dans ce cas tu reviens à ton case 0 pour relancer le jeu mais ton compteur de munitions est toujours à zero. Donc tu repart dans ton case 3 Game Over.

Il faut donc remettre le compteur de munitions à 10 et vider la liste chainée des tirs au cas ou.

■ La portion de code modifié.

Code : Tout sélectionner

      ;Si on appuie sur Espace on lance le jeu 
      If KeyboardPushed(#PB_Key_Space)
        
        StopSound(#Music)
        gMunitions=10 ;Remettre des munitions 
        ClearList(Shoot()) ;Vider la liste chainée des tirs
        gScenes =1
      EndIf
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 ça marche mais petit problème si un invaders est détruit et que l'on recommence la partie ça affichera que 14 invaders au lieu de 15
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Invaders 2016

Message par Micoute »

C'est simple, tu les réinitialises à 15, falsam t'a montré un exemple, il te suffit de le compléter.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Re: Invaders 2016

Message par Bernie »

Micoute a écrit :C'est simple, tu les réinitialises à 15, falsam t'a montré un exemple, il te suffit de le compléter.
Merci j'ai essayer mais ça marche pas
Répondre