Invaders 2016
Invaders 2016
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
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
- microdevweb
- Messages : 1798
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Invaders 2016
C'est pas mal du tout Bernie
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
Re: Invaders 2016
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
- microdevweb
- Messages : 1798
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Invaders 2016
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
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
Work at Centre Spatial de Liège
Re: Invaders 2016
Un grand merci pour ton aide
Re: Invaders 2016
Bonjour
comme faire pour revenir à l'intro quand on fait un gameover ?
si je rajoute DebutJeu=#true ça marche pas
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
Re: Invaders 2016
personne pour m'aider svp???
Re: Invaders 2016
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
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Invaders 2016
Normalement tu devrais mettre toute la partie jeu dans une procédure.Bernie a écrit :personne pour m'aider svp???
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.
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Invaders 2016
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
Si tu ne souhaites pas visualiser les sprites au Stage 0, place l'affichage du joueur et de l'ennemi après Case 1.
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
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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Invaders 2016
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
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
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Invaders 2016
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é.
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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Invaders 2016
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
Re: Invaders 2016
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 !
Un homme doit être poli, mais il doit aussi être libre !
Re: Invaders 2016
Merci j'ai essayer mais ça marche pasMicoute a écrit :C'est simple, tu les réinitialises à 15, falsam t'a montré un exemple, il te suffit de le compléter.