示例#1
0
        public Ennemi(Animate textureAnime, Vector2 position, Hero hero, Map map)
        {
            this.textureAnime = Ressources.GetPerso(Perso.Choisi).ennemiTextureAnime;
            this.texture = Ressources.GetPerso(Perso.Choisi).ennemiTexture;
            this.personnageAnime = Ressources.GetPerso(Perso.Choisi).ennemiAnime;
            this.positionGlobale = position;
            this.positionInitiale = position;
            this.vitesse = hero.vitesse;
            this.vitesseInitiale = hero.vitesse;
            this.container = new Rectangle((int)position.X, (int)position.Y, (int)(textureAnime.Texture.Width / textureAnime.Columns), textureAnime.Texture.Height);
            this.type = TypePerso.Ennemi;
            this.poids = new Vector2(0, hero.poids.Y);
            this.force = Vector2.Zero;
            this.reaction = Vector2.Zero;
            this.map = map;
            this.currentObjet = new Objet();
            this.hero = hero;

            ACDC = new Rectangle(0, 0, texture.Width, texture.Height);

            animate = true;
            dead = false;

            font = Ressources.GetPerso(Perso.Choisi).font;

            #region moteur à particules
            particleComponent = new ParticleComponent(Ressources.Game);
            Ressources.Game.Components.Add(particleComponent);
            Emitter fireEmitter = new Emitter();
            fireEmitter.Active = false;
            fireEmitter.TextureList.Add(Ressources.GetPerso(Perso.Choisi).obstacle);
            fireEmitter.RandomEmissionInterval = new RandomMinMax(50);
            fireEmitter.ParticleLifeTime = 9000;
            fireEmitter.ParticleDirection = new RandomMinMax(270, 300);
            fireEmitter.ParticleSpeed = new RandomMinMax(10, 20); // g modifié le moteur a particule;
            fireEmitter.ParticleRotation = new RandomMinMax(0, 180);
            fireEmitter.RotationSpeed = new RandomMinMax(0.04f);
            fireEmitter.ParticleFader = new ParticleFader(false, true, 30);
            fireEmitter.ParticleScaler = new ParticleScaler(0.2f, 0.18f, 0, 100);
            fireEmitter.Position = new Vector2(400, 650);
            //******piece*********
            Emitter desinté_piece = new Emitter();
            desinté_piece.Active = false;
            desinté_piece.TextureList.Add(Ressources.GetPerso(Perso.Choisi).piece);
            desinté_piece.RandomEmissionInterval = new RandomMinMax(50);
            desinté_piece.ParticleLifeTime = 9000;
            desinté_piece.ParticleDirection = new RandomMinMax(270, 300);
            desinté_piece.ParticleSpeed = new RandomMinMax(10, 20); // g modifié le moteur a particule;
            desinté_piece.ParticleRotation = new RandomMinMax(0, 180);
            desinté_piece.RotationSpeed = new RandomMinMax(0.04f);
            desinté_piece.ParticleFader = new ParticleFader(false, true, 30);
            desinté_piece.ParticleScaler = new ParticleScaler(1.2f, 0.18f, 0, 100);
            desinté_piece.Position = new Vector2(400, 650);
            particleComponent.particleEmitterList.Add(fireEmitter);
            particleComponent.particleEmitterList.Add(desinté_piece);
            #endregion
        }
示例#2
0
        private void testCollision(Objet objet)
        {
            if (!dead && container.Intersects(hero.container))
            {
                dead = true;
                GameOver.Die();
            }
            //création nouvelle particule
            Emitter t3 = particleComponent.particleEmitterList[0];
            Emitter t4 = particleComponent.particleEmitterList[1];

            if (container.Intersects(objet.container))
            {
                //collision bas ennemi
                if (container.X + container.Width >= objet.container.X &&
                    lastPos.Y + container.Height <= objet.container.Y &&
                    container.Y + container.Height >= objet.container.Y)
                {
                    vitesse.Y = 0;
                    positionGlobale.Y = objet.container.Y - container.Height;
                    animate = true;
                }

                //collision côté droit ennemi
                if (map.Objets[(int)(objet.container.X / 45), (int)(objet.container.Y / 45)].type == TypeCase.Terre)
                {
                    if (container.X + container.Width >= objet.container.X &&
                        lastPos.Y + container.Height > objet.container.Y && GameState.State == "inGame")
                    {
                        t3.Active = true;
                        t3.ParticleSpeed = new RandomMinMax(0.6f);
                        float Y = t3.Position.X;
                        Y = Y + 1.5f;
                        t3.Position = new Vector2(positionGlobale.X - camera.Position.X, positionGlobale.Y);

                        map.Objets[(int)(objet.container.X / 45), (int)(objet.container.Y / 45)].texture = Ressources.GetPerso(Perso.Choisi).nulle;

                        //t3.Active = false;
                    }
                    else
                    {
                        t3.Active = false;
                        // activpart = false;
                    }
                }
                else
                {
                    t3.Active = false;
                    // activpart = false;
                }
                if (map.Objets[(int)(objet.container.X / 45), (int)(objet.container.Y / 45)].type == TypeCase.Piece)
                {
                    if (container.X + container.Width >= objet.container.X &&
                        lastPos.Y + container.Height > objet.container.Y && GameState.State == "inGame")
                    {

                        t4.Active = true;
                        t4.ParticleSpeed = new RandomMinMax(0.6f);
                        float Y = t3.Position.X;
                        Y = Y + 1.5f;
                        t4.Position = new Vector2(positionGlobale.X - camera.Position.X, positionGlobale.Y);

                        map.Objets[(int)(objet.container.X / 45), (int)(objet.container.Y / 45)].texture = Ressources.GetPerso(Perso.Choisi).nulle;

                        //t3.Active = false;
                    }
                    else
                    {
                        t4.Active = false;
                        // activpart = false;
                    }
                }
                else
                {
                    t4.Active = false;
                    // activpart = false;
                }
            }
            if ((map.Objets[(int)(objet.container.X / 45 + 1), (int)(objet.container.Y / 45)].type == TypeCase.Eau) && (vitesse.Y == 0) && (map.Objets[(int)(objet.container.X / 45 + 4), (int)(objet.container.Y / 45)].type == TypeCase.Eau))
            {
                animate = false;
                force.Y -= 49000;
            }
            else if ((map.Objets[(int)(objet.container.X / 45 + 1), (int)(objet.container.Y / 45)].type == TypeCase.Eau) && (vitesse.Y == 0))
            {
                animate = false;
                force.Y -= 40000;
            }
        }
示例#3
0
        public void Update(GameTime gameTime, float speed)
        {
            float dt = (float)gameTime.ElapsedGameTime.TotalSeconds;

            personnageAnime.Update(speed); //Animation

            container = new Rectangle((int)positionGlobale.X, (int)positionGlobale.Y, texture.Width, texture.Height);

            force.Y = 600;

            if (hero.acdc)
            {
                if (container.Intersects(hero.containerACDC))
                {
                    positionGlobale.X = hero.containerACDC.X - texture.Width - 120;
                    hero.acdc = false;
                }
            }
            #region Test cases adjacentes
            currentObjet = new Objet();
            currentObjet.container.Width = 45;
            currentObjet.container.Height = 45;

            int posY = (int)(container.Y / 45);
            int posX = (int)(container.X / 45);

            for (int i = 0; i <= 2; i++)
            {
                for (int j = 0; j <= 4; j++)
                {
                    int currentX = posX + i;
                    int currentY = posY + j;

                    if (map.Valid(currentX, currentY) && map.Objets[currentX, currentY].type == TypeCase.Terre)
                    {
                        currentObjet.container.X = currentX * 45;
                        currentObjet.container.Y = currentY * 45;
                        testCollision(currentObjet);
                    }
                }
            }
            #endregion

            Vector2 acceleration = poids + force; //somme des forces = masse * acceleration

            vitesse += acceleration * dt;
            positionGlobale += vitesse * dt;

            lastPos.X = container.X;
            lastPos.Y = container.Y;
        }
示例#4
0
        public void Load()
        {
            objets = Ressources.GetPerso(Perso.Choisi).objets;

            string line;

            int i = 0, j = 0;

            while ((line = stream.ReadLine()) != null)
            {
                foreach (char chara in line)
                {
                    Objet objet = new Objet();
                    objet.position = new Vector2(i * 45, j * 45);
                    objet.container = new Rectangle((int)objet.position.X, (int)objet.position.Y, 45, 45);

                    switch (chara)
                    {
                        case '1':
                            {
                                objet.texture = Ressources.GetPerso(Perso.Choisi).obstacle;
                                objet.type = TypeCase.Terre;
                                break;
                            }
                        case '0':
                            {
                                objet.texture = Ressources.GetPerso(Perso.Choisi).terre;
                                objet.type = TypeCase.Terre;
                                break;
                            }
                        case '7':
                            {
                                objet.texture = Ressources.GetPerso(Perso.Choisi).terre2;
                                objet.type = TypeCase.Terre;
                                break;
                            }
                        case '9':
                            {
                                objet.texture = Ressources.GetPerso(Perso.Choisi).terre1;
                                objet.type = TypeCase.Terre;
                                break;
                            }
                        case '8':
                            {
                                objet.texture = Ressources.GetPerso(Perso.Choisi).sousterre;
                                objet.type = TypeCase.Terre;
                                break;
                            }
                        case '3':
                            {
                                objet.texture = Ressources.GetPerso(Perso.Choisi).nulle;
                                objet.type = TypeCase.Eau;
                                break;
                            }
                        case '2':
                            {
                                ListPiece.Add(new Rectangle((int)objet.position.X, (int)objet.position.Y, (int)objet.container.Width, (int)objet.container.Height));
                                objet.texture = Ressources.GetPerso(Perso.Choisi).piece;
                                objet.type = TypeCase.Piece;
                                break;
                            }
                        case 'c':
                            {
                                ListBombe.Add(new Rectangle((int)objet.position.X, (int)objet.position.Y, (int)objet.container.Width, (int)objet.container.Height));
                                objet.texture = Ressources.GetPerso(Perso.Choisi).bombe;
                                objet.type = TypeCase.Bombe;
                                break;
                            }
                        case 'B':
                            {
                                ListBonus.Add(new Rectangle((int)objet.position.X, (int)objet.position.Y, (int)objet.container.Width, (int)objet.container.Height));
                                objet.texture = Ressources.GetPerso(Perso.Choisi).bonus;
                                objet.type = TypeCase.Bonus;
                                break;
                            }
                        case 'A':
                            {
                                ListACDC.Add(new Rectangle((int)objet.position.X, (int)objet.position.Y, (int)objet.container.Width, (int)objet.container.Height));
                                objet.texture = Ressources.Content.Load<Texture2D>("ACDCmap");
                                objet.type = TypeCase.ACDC;
                                break;
                            }
                        default:
                            {
                                objet.texture = Ressources.GetPerso(Perso.Choisi).nulle;
                                objet.type = TypeCase.Null;
                                break;
                            }
                    }
                    objets[i, j] = objet;
                    i++;
                }
                i = 0;
                j++;
            }
        }
示例#5
0
        public Hero(Animate textureAnime, Vector2 position, Vector2 vitesse, float poids, Map map)
        {
            this.texture = Ressources.GetPerso(Perso.Choisi).heroTexture;
            this.textureAnime = Ressources.GetPerso(Perso.Choisi).heroTextureAnime;
            this.textureDown = Ressources.GetPerso(Perso.Choisi).heroTextureDown;
            this.personnageAnime = Ressources.GetPerso(Perso.Choisi).heroAnime;
            this.positionGlobale = position;
            this.positionInitiale = position;
            this.vitesse = vitesse;
            this.vitesseInitiale = vitesse;
            this.type = TypePerso.Hero;
            this.poids = new Vector2(0, poids);
            this.force = Vector2.Zero;
            this.reaction = Vector2.Zero;
            this.map = map;
            containerDown = new Rectangle((int)positionGlobale.X, (int)positionGlobale.Y + texture.Height - textureDown.Height, textureDown.Width, textureDown.Height);
            containerUp = new Rectangle((int)positionGlobale.X, (int)positionGlobale.Y, texture.Width, texture.Height);
            this.container = containerUp;
            down = false;
            acdcTexture = Ressources.Content.Load<Texture2D>("ACDC");
            containerACDC = new Rectangle((int)positionGlobale.X - acdcTexture.Width, (int)positionGlobale.Y, acdcTexture.Width, acdcTexture.Height);
            acdc = false;
            currentObjet = new Objet();
            animate = true;
            random = new Random();
            bonusVitesse = false;
            dead = false;
            win = false;
            superman = Ressources.Content.Load<Texture2D>("superman");
            font = Ressources.GetPerso(Perso.Choisi).font;
            //moteur à particule pour la bombe
            #region Moteur a particules
            Emitter.statut = true;
            particleComponent = new ParticleComponent(Ressources.Game);
            Ressources.Game.Components.Add(particleComponent);
            bombe.Active = false;
            bombe.TextureList.Add(Ressources.Content.Load<Texture2D>("fire"));
            bombe.RandomEmissionInterval = new RandomMinMax(2.0d);
            bombe.ParticleLifeTime = 2000;
            bombe.ParticleDirection = new RandomMinMax(0, 359);
            bombe.ParticleSpeed = new RandomMinMax(0.1f, 1.0f);
            bombe.ParticleRotation = new RandomMinMax(0, 100);
            bombe.RotationSpeed = new RandomMinMax(0.015f);
            bombe.ParticleFader = new ParticleFader(false, true, 1350);
            bombe.ParticleScaler = new ParticleScaler(false, 0.3f);
            bombe.Position = new Vector2(400, 400);
            particleComponent.particleEmitterList.Add(bombe);
            //***************fumée**************************
            smokeEmitter.Active = false;
            smokeEmitter.TextureList.Add(Ressources.Content.Load<Texture2D>("smoke"));
            smokeEmitter.RandomEmissionInterval = new RandomMinMax(100);
            smokeEmitter.ParticleLifeTime = 9000;
            smokeEmitter.ParticleDirection = new RandomMinMax(-5, 5);
            smokeEmitter.ParticleSpeed = new RandomMinMax(0.6f);
            smokeEmitter.ParticleRotation = new RandomMinMax(0);
            smokeEmitter.RotationSpeed = new RandomMinMax(-0.008f, 0.008f);
            smokeEmitter.ParticleFader = new ParticleFader(true, true);
            smokeEmitter.ParticleScaler = new ParticleScaler(0.15f, 0.7f, 400, smokeEmitter.ParticleLifeTime);
            smokeEmitter.Position = new Vector2(0, 0);
            particleComponent.particleEmitterList.Add(smokeEmitter);
            //*********************************************
            //*******************************************

            // **** neige*****************
            testEmitter2.Active = false;
            testEmitter2.TextureList.Add(Ressources.Content.Load<Texture2D>("raindrop"));
            testEmitter2.RandomEmissionInterval = new RandomMinMax(9.0d);
            testEmitter2.ParticleLifeTime = 1000;
            testEmitter2.ParticleDirection = new RandomMinMax(170);
            testEmitter2.ParticleSpeed = new RandomMinMax(5.0f);
            testEmitter2.ParticleRotation = new RandomMinMax(0);
            testEmitter2.RotationSpeed = new RandomMinMax(0f);
            testEmitter2.ParticleFader = new ParticleFader(false, true, 800);
            testEmitter2.ParticleScaler = new ParticleScaler(false, 1.0f);
            testEmitter2.Opacity = 255;
            particleComponent.particleEmitterList.Add(testEmitter2);
            //**************************
            #endregion
        }
示例#6
0
        private void testCollision(Objet objet)
        {
            if (container.Intersects(objet.container))
            {
                //collision haut hero
                if (lastPos.Y > objet.container.Y + objet.container.Height &&
                (container.X >= objet.container.X ||
                container.X <= objet.container.X + objet.container.Width) &&
                container.Y <= objet.container.Y + objet.container.Height)
                {
                    vitesse.Y = 150;
                    positionGlobale.Y = objet.container.Y + objet.container.Height;//à revoir.
                }
                else if (lastPos.Y + container.Height > objet.container.Y &&
                container.X + container.Width >= objet.container.X &&
                lastPos.X + container.Width > objet.container.X)
                {
                    bonusVitesse = false;
                    positionGlobale.X = objet.container.X - container.Width;
                }

                //collision bas hero
                if (lastPos.Y + container.Height <= objet.container.Y &&
                (container.X >= objet.container.X ||
                container.X <= objet.container.X + objet.container.Width) &&
                container.Y + container.Height >= objet.container.Y)
                {
                    vitesse.Y = 0;
                    positionGlobale.Y = objet.container.Y - containerUp.Height;
                    animate = true;
                }
            }
        }
示例#7
0
        public void Update(GameTime gameTime, float speed)
        {
            if (Perso.Choisi == "roumain")//&& particleComponent.particleEmitterList.Count != 0)
               particleComponent.particleEmitterList[2].Active = true;

            float dt = (float)gameTime.ElapsedGameTime.TotalSeconds;

            personnageAnime.Update(speed); //Animation
            //container pour le personnage a l'horisontale
            containerDown = new Rectangle((int)positionGlobale.X, (int)positionGlobale.Y + texture.Height - textureDown.Height, textureDown.Width, textureDown.Height);
            //container pour le personnage debout
            containerUp = new Rectangle((int)positionGlobale.X, (int)positionGlobale.Y, texture.Width - 10, texture.Height);

            if (down)
                container = containerDown;
            else
                container = containerUp;
            //force pour equilibre
            force.Y = 500;

            containerACDC = new Rectangle((int)positionGlobale.X - acdcTexture.Width + 20, (int)positionGlobale.Y - 10, acdcTexture.Width, acdcTexture.Height);

            #region Test collision ACDC
            for (int i = 0; i < Map.ListACDC.Count; i++)
            {
                if (container.Intersects(Map.ListACDC[i]))
                {
                    map.Objets[Map.ListACDC[i].X / 45, Map.ListACDC[i].Y / 45] = map.Objets[1, 1];
                    Map.ListACDC[i] = new Rectangle(0, 0, 45, 45);
                    acdc = true;
                }
            }
            #endregion

            #region Test collision Bonus
            for (int i = 0; i < Map.ListBonus.Count; i++)
            {
                if (container.Intersects(Map.ListBonus[i]))
                {
                    map.Objets[Map.ListBonus[i].X / 45, Map.ListBonus[i].Y / 45] = map.Objets[1, 1];
                    Map.ListBonus[i] = new Rectangle(0, 0, 45, 45);
                    AudioRessources.wingold.Play(AudioRessources.volume, 0f, 0f);
                    Bonus.Execute(random.Next(0, 4), ref bonusVitesse);
                    random = new Random();
                    t0 = Convert.ToInt32(gameTime.TotalGameTime.TotalSeconds);
                }
            }
            #endregion

            #region Bonus Vitesse
            if (bonusVitesse)
            {
                t1 = Convert.ToInt32(gameTime.TotalGameTime.TotalSeconds);
                AudioRessources.wingold.Play(AudioRessources.volume, 0f, 0f);
                positionGlobale.X += 10;
                if (ennemi != null)
                ennemi.positionGlobale.X += 9;

                if (t1 - t0 > 10)
                    bonusVitesse = false;
            }
            #endregion

            #region Test collision pièce
            for (int i = 0; i < Map.ListPiece.Count; i++)
            {
                if (container.Intersects(Map.ListPiece[i]))
                {
                    map.Objets[Map.ListPiece[i].X / 45, Map.ListPiece[i].Y / 45] = map.Objets[1, 1];
                    Map.ListPiece[i] = new Rectangle(0, 0, 45, 45);
                    AudioRessources.wingold.Play(AudioRessources.volume, 0f, 0f);
                    //score mis à jour
                    Statistiques.Score++;
                    //MOTEUR A PARTICULES A METTRE ICI
                }
            }
            #endregion

            currentObjet = new Objet();
            currentObjet.container.Width = 45;
            currentObjet.container.Height = 45;
            int posY = (int)(container.Y / 45);
            int posX = (int)(container.X / 45);

            if (down)
            {
                #region Test cases adjacentes Down
                for (int i = 0; i <= 4; i++)
                {
                    for (int j = 0; j <= 2; j++)
                    {
                        int currentX = posX + i;
                        int currentY = posY + j;
                        if (map.Valid(currentX, currentY) && map.Objets[currentX, currentY].type == TypeCase.Terre)
                        {
                            currentObjet.container.X = currentX * 45;
                            currentObjet.container.Y = currentY * 45;
                            testCollision(currentObjet);
                            //map.Objets[currentX, currentY].texture = Ressources.GetPerso(Perso.Choisi).barregreencenter;
                        }
                    }
                }
                #endregion
            }
            else
            {
                #region Test cases adjacentes Up
                for (int i = 0; i <= 2; i++)
                {
                    for (int j = 0; j <= 4; j++)
                    {
                        int currentX = posX + i;
                        int currentY = posY + j;
                        if (map.Valid(currentX, currentY) && map.Objets[currentX, currentY].type == TypeCase.Terre)
                        {
                            currentObjet.container.X = currentX * 45;
                            currentObjet.container.Y = currentY * 45;
                            testCollision(currentObjet);
                            //map.Objets[currentX, currentY].texture = Ressources.GetPerso(Perso.Choisi).barregreencenter;
                        }
                    }
                }
                #endregion
            }

            #region Test Bombe + Moteur à particules
            Emitter bomb = particleComponent.particleEmitterList[0];
            Emitter fum = particleComponent.particleEmitterList[1];
            if (!explosion)
            {
                for (int i = 0; i < Map.ListBombe.Count; i++)
                {
                    if (container.Intersects(Map.ListBombe[i]))
                    {
                        AudioRessources.getbomb.Play(AudioRessources.volume, 0f, 0f);
                        tfloat1 = gameTime.TotalGameTime.TotalMilliseconds;
                        Emitter.bombe = true;
                        bomb.Active = true;
                        bomb.ParticleSpeed = new RandomMinMax(0.6f);
                        float Y = bomb.Position.X;
                        Y = Y + 1.5f;
                        bomb.Position = new Vector2(positionGlobale.X - ennemi.camera.Position.X + 50, positionGlobale.Y + 20);
                        vitesse.X = 0;
                        ennemi.vitesse.X = 0;
                        explosion = true;
                        //t3.Active = false;
                    }
                    else
                    {
                        Emitter.bombe = false;
                        bomb.Active = false;
                        // activpart = false;
                    }
                }
            }
            else
            {
                tfloat2 = gameTime.TotalGameTime.TotalMilliseconds;
                if (tfloat2 - tfloat1 > 0.8f)
                {
                    bomb.Active = false;

                    if (!dead)
                    {
                        dead = true;
                        GameOver.Die();
                    }
                        fum.Active = true;
                    fum.Position = new Vector2(positionGlobale.X - ennemi.camera.Position.X + 50, positionGlobale.Y + 20);
                    if (fum.EmittedNewParticle)
                    {
                        float f = MathHelper.ToRadians(fum.LastEmittedParticle.Direction + 180);
                        fum.LastEmittedParticle.Rotation = f;
                    }
                }
                else if ((tfloat2 - tfloat1 > 0.5f))
                {
                    fum.Active = true;
                    fum.Position = new Vector2(positionGlobale.X - ennemi.camera.Position.X + 50, positionGlobale.Y + 20);
                    if (fum.EmittedNewParticle)
                    {
                        float f = MathHelper.ToRadians(fum.LastEmittedParticle.Direction + 180);
                        fum.LastEmittedParticle.Rotation = f;
                    }
                }
            }
            #endregion

            #region moteur à particules Neige
            if (Perso.Choisi == "roumain")
            {
                particleComponent.particleEmitterList[2].Active = true;
                Emitter t2 = particleComponent.particleEmitterList[2];
                t2.Position = new Vector2((float)random.NextDouble() * (1280), 0);
                if (t2.EmittedNewParticle)
                {
                    float f = MathHelper.ToRadians(t2.LastEmittedParticle.Direction + 180);
                    t2.LastEmittedParticle.Rotation = f;
                }
            }
            #endregion

            #region Keyboard Input
            /*
            if (KB.New.IsKeyDown(Keys.Left))
                positionGlobale.X -= 5;
            if (KB.New.IsKeyDown(Keys.Right))
                positionGlobale.X += 5;
            if (KB.New.IsKeyDown(Keys.Up))
                positionGlobale.Y -= 1;
            if (KB.New.IsKeyDown(Keys.Down))
                positionGlobale.Y += 1;
             */

            if (KB.New.IsKeyDown(Keys.Up) && vitesse.Y == 0)
            {
                force.Y -= 26000;
                animate = false;
            }
            if (KB.New.IsKeyDown(Keys.Down) && vitesse.Y == 0)
            {
                down = true;
            }
            if (KB.New.IsKeyUp(Keys.Down))
            {
                down = false;
            }
            #endregion

            Vector2 acceleration = poids + force; //somme des forces = masse * acceleration
            vitesse += acceleration * dt;
            positionGlobale += vitesse * dt;
            //mise à jour de la position d'avant
            lastPos.X = container.X;
            lastPos.Y = container.Y;

            if (positionGlobale.X >= 42345)
            {
                if (!dead && GameState.State == "inGame")
                {
                    dead = true;
                    win = true;
                    GameOver.Die();
                }
                else if (GameState.State == "multiInGame")
                {
                    GameState.State = "multiGameOver";
                }
            }

            if (positionGlobale.Y >= 800)
            {
                particleComponent.particleEmitterList[2].Active = false;

                if (!dead && GameState.State == "inGame")
                {
                    dead = true;
                    GameOver.Die();
                }
                else if (GameState.State == "multiInGame")
                {
                    GameState.State = "multiGameOver";
                }
            }
        }