Ejemplo n.º 1
0
 public cAngelIslandP2(IServiceProvider serviceProvider, GraphicsDeviceManager graphics, int NumPerso)
     : base(serviceProvider, graphics)
 {
     this.NumPerso = NumPerso;
     Hud           = new HUD(NumPerso);
     Joueur        = new PlayerSonic(false, true, NumPerso);
 }
Ejemplo n.º 2
0
 public Menu(PlayerSonic Joueur, Vector2 Position)
 {
     if (Joueur != null)
     {
         Joueur.Enabled = true;
     }
     this.Position = new Vector2(Position.X - 300, Position.Y - 100);
 }
Ejemplo n.º 3
0
    public void Update(PlayerSonic Joueur)
    {
        if (Joueur.flip == SpriteEffects.None)
        {
            RecJoueurMod = new Rectangle(Joueur.RecPerso.X, Joueur.RecPerso.Y, Joueur.RecPerso.Width / 2, Joueur.RecPerso.Height);
        }
        else
        {
            RecJoueurMod = new Rectangle(Joueur.RecPerso.X + 30, Joueur.RecPerso.Y, Joueur.RecPerso.Width / 2, Joueur.RecPerso.Height);
        }

        if (RecJoueurMod.Intersects(new Rectangle(RecTremplin.X, RecTremplin.Y + 50, RecTremplin.Width, RecTremplin.Height)))
        {
            OnTremplin = true;
            if (Joueur.Injure == true)
            {
                Joueur.Injure = false;
            }
            RessourceSonic3.Spring.Play();
            if (!TremplinHorizontal)
            {
                Joueur.HasJump = true;

                if (!TBasDroite)
                {
                    Joueur.Speed.Y = -10;
                }
                else
                {
                    Joueur.Speed.Y  = 10;
                    Joueur.Speed.X /= 3;
                }
            }
            else
            {
                if (TBasDroite)
                {
                    Joueur.Speed.X       = 15;
                    Joueur.VitesseDepart = 15;
                }
                else
                {
                    Joueur.Speed.X       = -15;
                    Joueur.VitesseDepart = -15;
                }
            }
        }

        if (OnTremplin)
        {
            Ap.PlayAnimation(TremplinAnim);
            if (Ap.FrameIndex == 3)
            {
                OnTremplin    = false;
                Ap.FrameIndex = 0;
            }
        }
    }
Ejemplo n.º 4
0
 public void Mort()
 {
     SaveCheckPoint.Life = Life;
     APDeadpos           = Joueur.Position;
     APDeadpos.Y        -= 500;
     APDeadpos.X        += 80;
     APDeadPosInit       = APDeadpos;
     Joueur = null;
 }
Ejemplo n.º 5
0
 static public void UpdatePics(List <Pic> Pics, Rectangle RecUpdate, PlayerSonic Joueur, ref int RingsPosses, ref List <Ring> Rings, ref int Life, ref Shield Shield)
 {
     foreach (Pic P in Pics)
     {
         if (RecUpdate.Intersects(new Rectangle((int)P.Position.X, (int)P.Position.Y, 80, 80)) && !Joueur.Injure)
         {
             P.Update(Joueur, ref RingsPosses, ref Rings, ref Life, ref Shield);
         }
     }
 }
Ejemplo n.º 6
0
 static public void UpdatePente(List <Pente> Pentes, Rectangle RecUpdate, ref PlayerSonic Joueur)
 {
     #region Pente
     foreach (Pente P in Pentes)
     {
         if (RecUpdate.Intersects(P.RecPente))
         {
             P.Update(Joueur);
         }
     }
     #endregion
 }
Ejemplo n.º 7
0
 static public void UpdateLoop(List <Loop> Loops, Rectangle RecUpdate, ref PlayerSonic Joueur)
 {
     #region loop
     foreach (Loop L in Loops)
     {
         if (RecUpdate.Intersects(L.RecLoop))
         {
             L.Update(ref Joueur);
         }
     }
     #endregion
 }
Ejemplo n.º 8
0
    public static void PerteRing(ref int RingsPosses, ref int Life, ref PlayerSonic Joueur, ref List <Ring> Rings, Random RringsY, Random RringsX, ref Shield Shield)
    {
        if (Shield.num == 0)
        {
            if (RingsPosses != 0)
            {
                RessourceSonic3.LostRing.Play();
            }
            else
            {
                Life--;
                RessourceSonic3.Hurt.Play();
            }

            if (RingsPosses > 10)
            {
                RingsPosses = 10;
            }

            for (int i = RingsPosses - 1; i >= 0; i--)
            {
                Rings.Add(new Ring(new Vector2(Joueur.Position.X, Joueur.Position.Y - 205)));
                Rings[Rings.Count - 1].Speed.Y = RringsY.Next(-6, -3);
                Rings[Rings.Count - 1].Speed.X = RringsX.Next(1, 5);
                Rings[Rings.Count - 1].popping = true;
            }

            RingsPosses = 0;
        }
        else
        {
            Shield.num = 0;
            RessourceSonic3.PerteBouclier.Play();
        }

        Joueur.Speed   = new Vector2();
        Joueur.HasJump = true;
        Joueur.Injure  = true;

        if (Joueur.flip == SpriteEffects.None)
        {
            Joueur.Speed.X = -5;
            Joueur.Speed.Y = -5;
        }
        else
        {
            Joueur.Speed.X = 5;
            Joueur.Speed.Y = -5;
        }
    }
Ejemplo n.º 9
0
    static public void Menu(List <Menu> Menus, PlayerSonic Joueur, Camera camera, GameScreen Screen)
    {
        if (KeyboardHelper.KeyPressed(Keys.P) && Menus.Count == 0)
        {
            Menus.Add(new Menu(Joueur, new Vector2(camera.X, camera.Y)));
        }

        for (int M = Menus.Count - 1; M >= 0; M--)
        {
            Menus[M].Update(Joueur);

            /*if (Menus[M].Delete) Menus.RemoveAt(M);
             * else
             *  if (Menus[M].Exit) GameScreen.RemoveScreen(Screen);*/
        }
    }
Ejemplo n.º 10
0
    public void Update(ref PlayerSonic Joueur)
    {
        if (Joueur.Position.X >= Milieu.X)
        {
            //if (Joueur.Position.X >= Milieu.X * 2.5)
            //    AllAnimationSonic.AnimationPlayer.Rotation = -13f;
            //else
            //APloop = AllAnimationSonic.AnimationPlayer;
            //APloop.Rotation = 10;
            //AllAnimationSonic.AnimationPlayer = APloop;

            //AllAnimationSonic.AnimationPlayer.Rotation -= 30f;
        }
        else
        {
            AllAnimationSonic.AnimationPlayer.Rotation = 0;
        }
    }
Ejemplo n.º 11
0
    // Use this for initialization
    void Start()
    {
        _bpm = GameObject.Find("Player").GetComponent<BasePlayerMovement>();
        _livesText = GameObject.Find("LivesText").GetComponent<TextMesh>();
        _ringsText = GameObject.Find("Rings").GetComponent<TextMesh>();
        _secondsText = GameObject.Find("TimeSeconds").GetComponent<TextMesh>();
        _minutesText = GameObject.Find("TimeMinutes").GetComponent<TextMesh>();
        _ringsTextShadow = GameObject.Find("RingsShadow").GetComponent<TextMesh>();
        _secondsTextShadow = GameObject.Find("TimeSecondsShadow").GetComponent<TextMesh>();
        _minutesTextShadow = GameObject.Find("TimeMinutesShadow").GetComponent<TextMesh>();

        // Check the caracter and load up the required Class
        switch(_bpm.PlayerCharacter)
        {
            case "SONIC":
                {
                    _pSonic = GameObject.Find("Player").GetComponent<PlayerSonic>();
                    break;
                }
        }
    }
Ejemplo n.º 12
0
    // Use this for initialization
    void Start()
    {
        _bpm               = GameObject.Find("Player").GetComponent <BasePlayerMovement>();
        _livesText         = GameObject.Find("LivesText").GetComponent <TextMesh>();
        _ringsText         = GameObject.Find("Rings").GetComponent <TextMesh>();
        _secondsText       = GameObject.Find("TimeSeconds").GetComponent <TextMesh>();
        _minutesText       = GameObject.Find("TimeMinutes").GetComponent <TextMesh>();
        _ringsTextShadow   = GameObject.Find("RingsShadow").GetComponent <TextMesh>();
        _secondsTextShadow = GameObject.Find("TimeSecondsShadow").GetComponent <TextMesh>();
        _minutesTextShadow = GameObject.Find("TimeMinutesShadow").GetComponent <TextMesh>();

        // Check the caracter and load up the required Class
        switch (_bpm.PlayerCharacter)
        {
        case "SONIC":
        {
            _pSonic = GameObject.Find("Player").GetComponent <PlayerSonic>();
            break;
        }
        }
    }
Ejemplo n.º 13
0
    public void Update(PlayerSonic Joueur)
    {
        if (RecPente.Intersects(Joueur.RecPerso))
        {
            if (Joueur.Speed.X == 0 && Joueur.EnBoule)
            {
                Joueur.EnBoule = false;
            }

            //Pour eviter le choc entre les grosseurs des obj
            //Les obj collisionable et le personnage
            if (Joueur.Speed.X == 0 && Joueur.Speed.Y > 0 && Joueur.Speed.Y < 2.5)
            {
                Joueur.Speed.Y = 0;
            }

            //pour mettre le joueur en boule dans la pente
            if (Joueur.Speed.X > 0 && (KeyboardHelper.KeyPressed(Keys.W) || KeyboardHelper.KeyPressed(Keys.Down)))
            {
                Joueur.EnBoule = true;
            }
        }
    }
Ejemplo n.º 14
0
 public void Update(PlayerSonic Joueur)
 {
     if (KeyboardHelper.KeyPressed(Keys.Enter))
     {
         Delete = true;
         if (Joueur != null)
         {
             Joueur.Enabled = false;
         }
     }
     else if (KeyboardHelper.KeyPressed(Keys.E))
     {
         Exit = true;
     }
     else if (KeyboardHelper.KeyPressed(Keys.M))
     {
         if (MediaPlayer.IsMuted)
         {
             MediaPlayer.IsMuted = false; TexteApparent = "Mute OFF";
         }
         else
         {
             MediaPlayer.IsMuted = true; TexteApparent = "Mute ON";
         }
     }
     else if (KeyboardHelper.KeyPressed(Keys.B))
     {
         if (SoundEffect.MasterVolume == 0)
         {
             SoundEffect.MasterVolume = 1.0f; TexteApparent = "Bruit ON";
         }
         else
         {
             SoundEffect.MasterVolume = 0; TexteApparent = "Bruit OFF";
         }
     }
 }
Ejemplo n.º 15
0
    public void Update(PlayerSonic Joueur, ref int RingsPosses, ref List <Ring> Rings, ref int Life, ref Shield Shield)
    {
        this.RecPerso = Joueur.RecPerso;

        if (RecPerso.isOnLeftOf(RecPic))
        {
            Joueur.Speed.X = -0.5f;
        }
        else if (RecPerso.isOnRightOf(RecPic))
        {
            Joueur.Speed.X = 0.7f;
        }

        if (this.RecPerso.Intersects(RecPic) && !Joueur.Injure)
        {
            Touched              = true;
            Joueur.Injure        = true;
            Joueur.HasJump       = true;
            Joueur.Speed         = new Vector2();
            Joueur.VitesseDepart = 0;
            recCheck             = true;


            #region Regarde en fonction de si sonic a bouclier ou non
            if (Shield.num == 0)
            {
                if (RingsPosses != 0)
                {
                    RessourceSonic3.LostRing.Play();
                }
                else
                {
                    Life--; RessourceSonic3.Hurt.Play();
                }

                if (RingsPosses > 10)
                {
                    RingsPosses = 10;
                }
                CodeExclusifSonic.PerteRingPic(Position, RingsPosses, ref Rings);
                RingsPosses = 0;
            }

            else
            {
                Shield.num = 0;
                RessourceSonic3.PerteBouclier.Play();
            }
            #endregion
            #region Reaction Soni
            if (Joueur.flip == SpriteEffects.None)
            {
                Joueur.Speed.X       = -5.5f;
                Joueur.VitesseDepart = 0f;
                Joueur.Speed.Y       = -6.5f;
            }
            else
            {
                Joueur.Speed.X       = 5.5f;
                Joueur.VitesseDepart = 0f;
                Joueur.Speed.Y       = -6.5f;
            }
            #endregion
        }
        else if (!Joueur.Injure)
        {
            recCheck = false;
        }
    }
Ejemplo n.º 16
0
    public cAngelIsland(IServiceProvider serviceProvider, GraphicsDeviceManager graphics, int NumPerso)
        : base(serviceProvider, graphics)
    {
        this.NumPerso = NumPerso;
        Hud           = new HUD(NumPerso);
        camera        = new Camera(graphics.GraphicsDevice.Viewport);
        CheckPoints.Add(new Checkpoint(new Vector2(100, 360), 1));
        CheckPoints.Add(new Checkpoint(new Vector2(2200, 360), 2));
        CheckPoints.Add(new Checkpoint(new Vector2(4500, 650), 3));
        CheckPoints.Add(new Checkpoint(new Vector2(5500, 650), 4));


        Joueur          = new PlayerSonic(false, true, NumPerso);
        Joueur.Position = GestionExterne.LoadingPosition(CheckPoints, this);


        TexturesObject.Add(new ObjectMapping(1, new Vector2(-130, 230)));
        TexturesObject.Add(new ObjectMapping(2, new Vector2(120, 230)));
        TexturesObject.Add(new ObjectMapping(3, new Vector2(320, 220)));
        TexturesObject.Add(new ObjectMapping(3, new Vector2(780, 220)));
        TexturesObject.Add(new ObjectMapping(2, new Vector2(1260, 230)));
        TexturesObject.Add(new ObjectMapping(2, new Vector2(850, -130)));
        BackTextures.Add(new BackGroundTexture(1, new Vector2(-350, -540)));
        BackTextures.Add(new BackGroundTexture(2, new Vector2(150, -520)));
        BackTextures.Add(new BackGroundTexture(3, new Vector2(880, -520)));
        BackTextures.Add(new BackGroundTexture(2, new Vector2(1560, -520)));
        BackTextures.Add(new BackGroundTexture(1, new Vector2(2400, -900)));
        BackTextures.Add(new BackGroundTexture(1, new Vector2(2100, -700)));
        BackTextures.Add(new BackGroundTexture(4, new Vector2(2600, -1250)));
        BackTextures.Add(new BackGroundTexture(3, new Vector2(3700, -850)));
        BackTextures.Add(new BackGroundTexture(2, new Vector2(5000, -850)));
        BackTextures.Add(new BackGroundTexture(1, new Vector2(6000, -500)));
        BackTextures.Add(new BackGroundTexture(0, new Vector2(6600, -500)));
        BackTextures.Add(new BackGroundTexture(1, new Vector2(6900, -500)));

        Teles.Add(new Tele(1, new Vector2(920, -10), NumPerso));
        Rhinobots.Add(new Rhinobot(new Vector2(700, 350), 300));
        Tremplins.Add(new Tremplin(new Vector2(1300, 350), false, false));
        Tremplins.Add(new Tremplin(new Vector2(1300, 50), false, true));
        Tremplins.Add(new Tremplin(new Vector2(1650, 50), false, true));
        Rings.Add(new Ring(new Vector2(400, 350)));
        Rings.Add(new Ring(new Vector2(500, 350)));
        Rings.Add(new Ring(new Vector2(600, 350)));
        Rings.Add(new Ring(new Vector2(700, 350)));
        Rings.Add(new Ring(new Vector2(800, 350)));
        Rings.Add(new Ring(new Vector2(1450, 375)));
        Rings.Add(new Ring(new Vector2(1550, 320)));
        Rings.Add(new Ring(new Vector2(1850, 320)));
        Rings.Add(new Ring(new Vector2(1950, 375)));
        // -------------
        Rings.Add(new Ring(new Vector2(1680, 480)));
        Rings.Add(new Ring(new Vector2(1680, 600)));
        Rings.Add(new Ring(new Vector2(1680, 720)));
        Rings.Add(new Ring(new Vector2(1680, 840)));
        //----------------------------------------------------------
        TexturesObject.Add(new ObjectMapping(1, new Vector2(1800, 220)));
        TexturesObject.Add(new ObjectMapping(2, new Vector2(2000, 220)));
        TexturesObject.Add(new ObjectMapping(2, new Vector2(2200, 220)));
        TexturesObject.Add(new ObjectMapping(3, new Vector2(2400, 220)));
        Pics.Add(new Pic(new Vector2(2500, 360), false));
        Pics.Add(new Pic(new Vector2(2600, 360), false));
        Pics.Add(new Pic(new Vector2(2700, 360), false));
        Tremplins.Add(new Tremplin(new Vector2(2850, 340), false, false));
        Rings.Add(new Ring(new Vector2(2900, 300)));
        Rings.Add(new Ring(new Vector2(2900, 250)));
        Rings.Add(new Ring(new Vector2(2900, 200)));
        //-------------------------------------------------------------
        TexturesObject.Add(new ObjectMapping(3, new Vector2(3050, -200)));
        Tremplins.Add(new Tremplin(new Vector2(3000, 100), false, false));
        Rings.Add(new Ring(new Vector2(3050, 50)));
        Rings.Add(new Ring(new Vector2(3050, 0)));
        Rings.Add(new Ring(new Vector2(3050, -50)));
        Teles.Add(new Tele(2, new Vector2(3250, -70), NumPerso));
        Pentes.Add(new Pente(1, new Vector2(3555, -10), false));
        TexturesObject.Add(new ObjectMapping(3, new Vector2(4500, -10)));
        Teles.Add(new Tele(3, new Vector2(4650, 100), NumPerso));
        Tremplins.Add(new Tremplin(new Vector2(4800, 100), true, true));
        Tremplins.Add(new Tremplin(new Vector2(5300, 100), false, true));
        //-----------------------------------------------------------
        TexturesObject.Add(new ObjectMapping(2, new Vector2(1600, 620)));
        TexturesObject.Add(new ObjectMapping(3, new Vector2(1800, 620)));
        TexturesObject.Add(new ObjectMapping(2, new Vector2(2000, 620)));
        TexturesObject.Add(new ObjectMapping(1, new Vector2(2200, 620)));
        TexturesObject.Add(new ObjectMapping(2, new Vector2(2400, 620)));
        TexturesObject.Add(new ObjectMapping(3, new Vector2(2600, 620)));
        Tremplins.Add(new Tremplin(new Vector2(2000, 720), true, true));
        Rings.Add(new Ring(new Vector2(2550, 710)));
        Rings.Add(new Ring(new Vector2(2600, 710)));
        Rings.Add(new Ring(new Vector2(2650, 710)));
        Rings.Add(new Ring(new Vector2(2700, 710)));
        Pics.Add(new Pic(new Vector2(2500, 750), false));
        Pics.Add(new Pic(new Vector2(2600, 750), false));
        Pentes.Add(new Pente(1, new Vector2(3110, 590), true));
        Rings.Add(new Ring(new Vector2(3750, 650)));
        Rings.Add(new Ring(new Vector2(3800, 650)));
        Rings.Add(new Ring(new Vector2(3850, 650)));
        Rings.Add(new Ring(new Vector2(3900, 650)));
        //-------------------------------------------------------------------
        TexturesObject.Add(new ObjectMapping(2, new Vector2(4000, 510)));
        TexturesObject.Add(new ObjectMapping(1, new Vector2(4200, 510)));
        TexturesObject.Add(new ObjectMapping(3, new Vector2(4400, 510)));
        Teles.Add(new Tele(2, new Vector2(4400, 650), NumPerso));
        Rhinobots.Add(new Rhinobot(new Vector2(4600, 650), 100));
        Pics.Add(new Pic(new Vector2(4700, 650), false));
        Pics.Add(new Pic(new Vector2(4800, 650), false));
        //-------------------------------------------------------------------
        Pentes.Add(new Pente(1, new Vector2(5000, 700), true));
        TexturesObject.Add(new ObjectMapping(1, new Vector2(5520, 520)));
        TexturesObject.Add(new ObjectMapping(2, new Vector2(5720, 520)));
        TexturesObject.Add(new ObjectMapping(2, new Vector2(5920, 520)));
        Pics.Add(new Pic(new Vector2(5750, 680), false));
        Pics.Add(new Pic(new Vector2(5850, 680), false));
        Singes.Add(new SingeArticuler(new Vector2(5920, 340)));
        Pentes.Add(new Pente(1, new Vector2(6245, 465), true));
        //----------------------------------------------------------------------
        TexturesObject.Add(new ObjectMapping(2, new Vector2(6775, 290)));
        Teles.Add(new Tele(1, new Vector2(6800, 410), NumPerso));
        Pentes.Add(new Pente(1, new Vector2(7000, 470), false));
        //----------------------------------------------------------------------<
        TexturesObject.Add(new ObjectMapping(3, new Vector2(7510, 500)));
        TexturesObject.Add(new ObjectMapping(3, new Vector2(7610, 500)));
        TexturesObject.Add(new ObjectMapping(3, new Vector2(7900, 500)));
        TexturesObject.Add(new ObjectMapping(2, new Vector2(8000, 500)));
        TexturesObject.Add(new ObjectMapping(2, new Vector2(8100, 500)));
        TexturesObject.Add(new ObjectMapping(3, new Vector2(8200, 500)));
        MiniBoss.Add(new FireBreath(new Vector2(8300, 250)));
        //------------------------------------------------------------------
    }
Ejemplo n.º 17
0
    public void Update(GameTime gametime, PlayerSonic Joueur)
    {
        #region Animation/Dessin Image flag
        if (DrawFixImage)
        {
            APFlag.PlayAnimation(null);

            if (!ArretAnim)
            {
                TimerCheckFixImage += (float)gametime.ElapsedGameTime.TotalSeconds;
                if (TimerCheckFixImage >= TimerFixImage)
                {
                    TimerCheckFixImage = 0;
                    DrawFixImage       = false;

                    if (NumPerso == 1)
                    {
                        if (ImageFix == RessourceSonic3.SonicFlag)
                        {
                            ImageFix = RessourceSonic3.BossGoalSign;
                        }
                        else
                        {
                            ImageFix = RessourceSonic3.SonicFlag;
                        }
                    }
                    else
                    {
                        if (ImageFix == RessourceSonic3.TailFlag)
                        {
                            ImageFix = RessourceSonic3.BossGoalSign;
                        }
                        else
                        {
                            ImageFix = RessourceSonic3.TailFlag;
                        }
                    }
                }
            }
        }

        else
        {
            APFlag.PlayAnimation(FlagAnim);
            if (APFlag.FrameIndex == 3)
            {
                DrawFixImage = true;
            }
        }
        #endregion
        #region Deplacement
        if (Position.Y < PosYMinimum)
        {
            RecFlag.Location = new Point((int)Position.X - ImageFix.Width / 2 + 20, (int)Position.Y - ImageFix.Height - 10);
            RecPerso         = Joueur.RecPerso;
            Position        += Speed;
            Speed.Y         += 0.12f;

            #region interation Perso
            if (RecPerso.Intersects(RecFlag) && (Joueur.HasJump || Joueur.EnBoule))
            {
                if (Math.Abs(Joueur.Speed.X) > 0)
                {
                    Speed.X = Joueur.Speed.X * 0.5f;
                }

                Speed.Y = -5;
            }

            #endregion
        }
        else //si touche le sol
        {
            ArretAnim = true;
            if (!Stop)
            {
                Texte = true;
            }
            Stop = true;
        }
        #endregion
    }
Ejemplo n.º 18
0
    public void Update(GameTime gametime, PlayerSonic Joueur, ref int RingsPosses, ref int Life, ref List <Ring> Rings, Random RringsY, Random RringsX, ref Shield Shield)
    {
        #region Transfo recPerso
        RecPersoModif = new Rectangle(Joueur.RecPerso.X + 20, Joueur.RecPerso.Y, Joueur.RecPerso.Width / 4, Joueur.RecPerso.Height);
        //si se baisse evite le missile
        if (Joueur.bCrouch || Joueur.EnBoule)
        {
            RecPersoModif.Y += 40;
        }
        #endregion
        #region deplacement
        if (!Destroy)
        {
            if (!Stabiliser)//Si n'est pas statique
            {
                BulletAnimationPlayer.PlayAnimation(null);
                BulletTouchSonic   = false;
                SoundCheck         = false;
                RecBullet.Location = new Point(-300, 0);

                if (flip == SpriteEffects.None)
                {
                    BulletPos = new Vector2(Position.X, Position.Y + 180);
                }
                else
                {
                    BulletPos = new Vector2(Position.X + 170, Position.Y + 180);
                }

                if (!GDDeplacement)//Si ne va pas de droite a gauche
                {
                    if (Descente)
                    {
                        Position.Y += Vitesse;
                    }
                    else
                    {
                        Position.Y -= Vitesse;
                    }
                }
                else
                {
                    if (!DeplaceDroite)
                    {
                        Position.X -= Vitesse;
                    }
                    else
                    {
                        Position.X += Vitesse;
                    }

                    Oscillation();
                }
            }
            else
            {
                if (!Descente)
                {
                    if (!BulletTouchSonic)
                    {
                        BulletAnimationPlayer.PlayAnimation(FireBullet);
                    }

                    if (!SoundCheck)
                    {
                        RessourceSonic3.FireBullet.Play();
                        SoundCheck = true;
                    }

                    if (flip == SpriteEffects.None)
                    {
                        if (!BulletTouchSonic)
                        {
                            BulletPos.X -= 5;
                            RecBullet    = new Rectangle((int)BulletPos.X - 70, (int)BulletPos.Y - 100,
                                                         RessourceSonic3.MB1FireBullet.Width / 6,
                                                         RessourceSonic3.MB1FireBullet.Height / 3);
                        }
                    }
                    else
                    {
                        if (!BulletTouchSonic)
                        {
                            BulletPos.X += 5;
                            RecBullet    = new Rectangle((int)BulletPos.X, (int)BulletPos.Y - 100,
                                                         RessourceSonic3.MB1FireBullet.Width / 6,
                                                         RessourceSonic3.MB1FireBullet.Height / 3);
                        }
                    }
                }
                Oscillation();
            }
        }
        #region Limite
        if (!GDDeplacement) // si ne vas pas de droite a gauche
        {
            if (Position.Y > PositionInit.Y + 250)
            {
                Descente   = false;
                Stabiliser = true;

                if (!OscillCheck)
                {
                    PositionOscillation = Position;
                    OscillCheck         = true;
                }
            }
            else if (Position.Y <= PositionInit.Y)
            {
                Descente   = true;
                Stabiliser = true;

                if (!OscillCheck)
                {
                    PositionOscillation = Position;
                    OscillCheck         = true;
                }
            }
        }
        else
        {
            if (!Stabiliser)//si n'est pas stable
            {
                if (Position.X < PositionInit.X - 550)
                {
                    GDDeplacement = false; Stabiliser = true; DeplaceDroite = true;
                    NbFoisStabiliser--; flipCheck = false;
                }

                else if (Position.X > PositionInit.X)
                {
                    GDDeplacement = false; Stabiliser = true; DeplaceDroite = false;
                    NbFoisStabiliser--; flipCheck = false;
                }

                else if ((Position.X < PositionInit.X - 260 && Position.X > PositionInit.X - 280) && !flipCheck)
                {
                    if (flip == SpriteEffects.None)
                    {
                        flip = SpriteEffects.FlipHorizontally;
                    }
                    else
                    {
                        flip = SpriteEffects.None;
                    }
                    flipCheck = true;
                }
            }
        }
        #endregion
        if (Stabiliser)//Arret de 5 secondes environs
        {
            CompteurStabilisateur += (float)gametime.ElapsedGameTime.TotalSeconds;

            if (CompteurStabilisateur >= VitesseStabiliser)
            {
                CompteurStabilisateur = 0;
                if (OscillCheck)
                {
                    Position = PositionOscillation;
                }
                OscillCheck = false;
                Stabiliser  = false;
                NbFoisStabiliser++;
            }

            //Deplacement gaucheDroite
            if (NbFoisStabiliser == 2)
            {
                NbFoisStabiliser = 0;
                if (Position.Y <= PositionInit.Y)
                {
                    GDDeplacement = true;
                }
            }
        }
        #endregion

        if (NbFoisTouche == 7 && TouchAnimationPlayer.FrameIndex == 6)
        {
            Finish = true;
        }

        if (NbFoisTouche == 6)
        {
            AttenteDeDestruction += (float)gametime.ElapsedGameTime.TotalSeconds;
            Destroy = true;
            if (AttenteDeDestruction > 3)
            {
                TouchAnimationPlayer.PlayAnimation(MiniBossDes);
                RessourceSonic3.MiniBossKill.Play();
                NbFoisTouche++;
            }
        }

        if (!Destroy)
        {
            if (!Joueur.Injure)
            {
                #region intersection RecMiniBoss/RecPerso
                //Si touche Au miniBoss
                if (RecMiniBoss.Intersects(RecPersoModif))
                {
                    //Si miniboss Toucher
                    if (!TouchCheck)
                    {
                        //si la vitesse joueur x est plus petite que 6 (sinon
                        // sonic rebondit trop loin
                        if (Math.Abs(Joueur.Speed.X) < 5)
                        {
                            Joueur.Speed.X = -Joueur.Speed.X * 1.3f;
                        }
                        else
                        {
                            Joueur.Speed.X = -Joueur.Speed.X * 0.60f;
                        }

                        Joueur.Speed.Y = -5;
                        TouchCheck     = true;
                        RessourceSonic3.TouchBoss.Play();
                        NbFoisTouche++;
                    }
                }

                if (TouchCheck)
                {
                    TouchAnimationPlayer.PlayAnimation(TouchAnimation);
                    CompteurTouch += (float)gametime.ElapsedGameTime.TotalSeconds;

                    if (CompteurTouch >= VitesseStabiliser / 2)
                    {
                        TouchCheck = false; TouchAnimationPlayer.PlayAnimation(null); CompteurTouch = 0;
                    }
                }
                #endregion
                #region Intersection RecFusee/RecPerso
                else if (RecFusee.Intersects(RecPersoModif))
                {
                    if (!TouchFuseeCheck)
                    {
                        CodeExclusifSonic.PerteRing(ref RingsPosses, ref Life, ref Joueur, ref Rings, RringsY, RringsX, ref Shield);
                        TouchFuseeCheck = true;
                    }
                }
                #endregion
                TouchFuseeCheck = false;
                #region Intersection RecBullet/RecPerso
                if (RecBullet.Intersects(RecPersoModif))
                {
                    BulletTouchSonic = true;
                    if (BulletTouchSonic)
                    {
                        BulletAnimationPlayer.PlayAnimation(null);
                        RecBullet.Location = new Point(-300, 0);
                        CodeExclusifSonic.PerteRing(ref RingsPosses, ref Life, ref Joueur, ref Rings, RringsY, RringsX, ref Shield);
                    }
                }
                #endregion
            }
        }
        RecMiniBoss = new Rectangle((int)Position.X, (int)Position.Y, Texture.Width, Texture.Height / 4 * 3);
        RecFusee    = new Rectangle((int)Position.X, (int)Position.Y + 120, Texture.Width, Texture.Height / 4);

        FireAnimationPlayer.PlayAnimation(FireAnimation);
    }
Ejemplo n.º 19
0
    static public void UpdateRhino(ref List <Rhinobot> Rhinobots, Rectangle RecUpdate, GameTime gameTime, PlayerSonic Joueur,
                                   ref int RingsPosses, ref int Life, ref Shield Shield, ref Vector2 PosAnimationPlayer,
                                   ref bool AnimalActif, ref AnimationPlayer AnimationPlayer, ref List <Ring> Rings, Random RringsX,
                                   Random RringsY)
    {
        for (int rh = Rhinobots.Count - 1; rh >= 0; rh--)
        {
            if (RecUpdate.Intersects(Rhinobots[rh].RecRhino))
            {
                Rhinobots[rh].Update(gameTime, Joueur, ref RingsPosses, ref Life, ref Shield);
            }
            #region Si rh toucher
            if (Rhinobots[rh].Touched)
            {
                //si saute sur rhino
                if (Rhinobots[rh].Destroy)
                {
                    CodeExclusifSonic.ActivationAnimal(ref PosAnimationPlayer, Rhinobots[rh].Position,
                                                       ref AnimalActif, ref AnimationPlayer);
                    Rhinobots.RemoveAt(rh);
                    continue;
                }

                //si n'a pas checker pour les perte de rings
                #region Perte des rings
                if (!Rhinobots[rh].PerteRingOneCheck)
                {
                    Rhinobots[rh].PerteRingOneCheck = true;
                    CodeExclusifSonic.PerteRing(ref RingsPosses, ref Life, ref Joueur, ref Rings, RringsY, RringsX, ref Shield);
                }

                Rhinobots[rh].Touched = false;
                #endregion
            }


            #endregion
        }
    }
Ejemplo n.º 20
0
    static public void UpdateSinge(ref List <SingeArticuler> Singes, Rectangle RecUpdate, GameTime gameTime, PlayerSonic Joueur,
                                   ref int RingsPosses, ref int Life, ref Shield Shield, ref Vector2 PosAnimationPlayer,
                                   ref bool AnimalActif, ref AnimationPlayer AnimationPlayer, ref List <Ring> Rings, Random RringsX,
                                   Random RringsY, ref List <ObjectMapping> TexturesObject)
    {
        for (int s = Singes.Count - 1; s >= 0; s--)
        {
            if (RecUpdate.Intersects((new Rectangle(Singes[s].RecTete.X - 100, Singes[s].RecTete.Y, Singes[s].RecTete.Width + 200, Singes[s].RecTete.Height))))
            {
                Singes[s].Update(gameTime, Joueur.RecPerso);
            }

            if (Singes[s].RecTete.Intersects(Joueur.RecPerso))
            {
                //Si saute sur singe
                if ((Joueur.HasJump || Joueur.EnBoule) && !Joueur.Injure)
                {
                    CodeExclusifSonic.ActivationAnimal(ref PosAnimationPlayer, Singes[s].PositionTete, ref AnimalActif, ref AnimationPlayer);
                    RessourceSonic3.EnnemiItem.Play();
                    TexturesObject.Add(new ObjectMapping(4, Singes[s].PositionArbre));
                    Singes.RemoveAt(s);
                    continue;
                }
            }
            //si a encore une noix
            if (Singes[s].BrasArticuler.Noix.Count != 0)
            {
                //Si noix Intersect joueur
                if (Singes[s].BrasArticuler.Noix[0].RecNoix.Intersects(Joueur.RecPerso))
                {
                    CodeExclusifSonic.PerteRing(ref RingsPosses, ref Life, ref Joueur, ref Rings, RringsY, RringsX, ref Shield);
                    Singes[s].BrasArticuler.Noix.Remove(Singes[s].BrasArticuler.Noix[0]);
                }
            }
        }
    }
Ejemplo n.º 21
0
    static public void UpdateCheckPoint(List <Checkpoint> CheckPoints, Rectangle RecUpdate, PlayerSonic Joueur)
    {
        #region CheckPoint
        for (int c = 0; c <= CheckPoints.Count - 1; c++)
        {
            if (RecUpdate.Intersects(CheckPoints[c].RecCheck))
            {
                CheckPoints[c].Update(Joueur.RecPerso);
            }

            if (c == 0 && CheckPoints[0].Passer)
            {
                CheckPoints[0].Dernier = true;
                SaveCheckPoint.Update(CheckPoints[0].CheckPointID);
            }
            if (c != 0)
            {
                if (CheckPoints[c].Passer)
                {
                    for (int d = 1; c - d >= 0; d++)
                    {
                        CheckPoints[c - d].Dernier = false;
                    }

                    CheckPoints[c].Dernier = true;
                    SaveCheckPoint.Update(CheckPoints[c].CheckPointID);
                }
            }
        }
        #endregion
    }
Ejemplo n.º 22
0
 static public void UpdateTremplin(List <Tremplin> Tremplins, Rectangle RecUpdate, PlayerSonic Joueur)
 {
     #region Tremplin
     foreach (Tremplin t in Tremplins)
     {
         if (RecUpdate.Intersects(t.RecTremplin))
         {
             t.Update(Joueur);
         }
     }
     #endregion
 }
Ejemplo n.º 23
0
    public void Update(GameTime gametime, PlayerSonic Joueur, ref int RingsPosses, ref int Life, ref Shield Shield)
    {
        this.RecPerso = new Rectangle((int)Joueur.RecPerso.X, (int)Joueur.RecPerso.Y, (int)(Joueur.RecPerso.Width / 2.5), Joueur.RecPerso.Height);

        Position    = new Vector2();
        Position    = PositionInit;
        Position.X += DisParcouruX;

        RecRhino.Location = new Point((int)Position.X + 10, (int)Position.Y + 25);

        #region Si rhino fonce dans sonic
        if (RecRhino.Intersects(Joueur.RecPerso))
        {
            Touched = true;
            #region Si sonic saute sur rhino
            if ((Joueur.HasJump || Joueur.EnBoule) && !Joueur.Injure)
            {
                if (!OnlyOnce)
                {
                    Destroy = true;
                    RessourceSonic3.EnnemiItem.Play();
                    OnlyOnce = true;
                    if (Joueur.Speed.Y > -6)
                    {
                        Joueur.Speed.Y = -6f;
                    }
                }
            }
            #endregion
        }
        else
        {
            PerteRingOneCheck = false;
        }
        #endregion

        #region Si sonic est dans le champ de vision
        if (RecPerso.X > RecRhino.X - 240 && RecPerso.X < RecRhino.X + 250 && flip == SpriteEffects.None)
        {
            DisParcouruX -= 5;
            Texture       = RessourceSonic3.RhinobotMove;

            if (DisParcouruX + 500 < DisParcours)
            {
                flip = SpriteEffects.FlipHorizontally;
            }
        }

        else if (RecPerso.X < RecRhino.X + 240 && RecPerso.X > RecRhino.X - 250 && flip == SpriteEffects.FlipHorizontally)
        {
            DisParcouruX += 5;
            Texture       = RessourceSonic3.RhinobotMove;

            if (DisParcouruX - 500 > DisParcours)
            {
                flip = SpriteEffects.None;
            }
        }
        #endregion
        #region Sinon si il ne l'est pas
        else
        {
            if (DisParcouruX >= DisParcours * 0.08 || DisParcouruX <= DisParcours * 0.92)
            {
                if (DisParcouruX >= DisParcours * 0 || DisParcouruX <= DisParcours * 1.20)
                {
                    Texture = RessourceSonic3.RhinobotMove;
                }

                else
                {
                    Texture = RessourceSonic3.RhinoReturn1;
                }
            }
            else
            {
                Texture = RessourceSonic3.RhinobotMove;
            }

            if (flip == SpriteEffects.None && DisParcouruX >= DisParcours)
            {
                DisParcouruX -= 1.5f;
            }
            else
            {
                flip          = SpriteEffects.FlipHorizontally;
                DisParcouruX += 1.5f;
                if (DisParcouruX >= 0)
                {
                    flip = SpriteEffects.None;
                }
            }
        }
        #endregion
    }
Ejemplo n.º 24
0
    static public void UpdateTele(ref List <Tele> Teles, Rectangle RecUpdate, GameTime gameTime, PlayerSonic Joueur,
                                  ref int Life, ref int RingsPosses, ref Shield Shield)
    {
        #region ItemTele
        for (int t = 0; t < Teles.Count; t++)
        {
            if (RecUpdate.Intersects(Teles[t].RecTele))
            {
                Teles[t].Update(gameTime, Joueur, ref Life, ref RingsPosses, ref Shield);
            }

            if (Teles[t].remove)
            {
                if (Joueur.EnBoule)
                {
                    Joueur.EnBoule = false;
                }
                Teles.RemoveAt(t);
            }
        }
        #endregion
    }
Ejemplo n.º 25
0
    public void Update(GameTime gametime, PlayerSonic Joueur, ref int Life, ref int Rings, ref Shield Shield)
    {
        RecJoueur = Joueur.RecPerso;

        if (RecTele.Intersects(RecJoueur) && (Joueur.HasJump || Joueur.EnBoule))
        {
            if (!OnlyOnce)
            {
                RessourceSonic3.EnnemiItem.Play();
                OnlyOnce = true;
                switch (Choix)
                {
                case 1: Life++;
                    RessourceSonic3.LifeUp.Play();
                    break;

                case 2: Rings += 10;
                    RessourceSonic3.CatchRing.Play();
                    if (Rings >= 100)
                    {
                        Life++;
                        RessourceSonic3.LifeUp.Play();
                        Rings -= 100;
                    }
                    break;

                case 3: Shield.num = 1;
                    break;
                }

                if (Joueur.Speed.Y > -3 && !Joueur.EnBoule)
                {
                    Joueur.Speed.Y = -3f;
                }
            }
        }

        if (!OnlyOnce)
        {
            Timer += (float)gametime.ElapsedGameTime.TotalSeconds;
            if (Timer > 2)
            {
                Activate = true;
                if (Timer > 4.5)
                {
                    Activate = false;
                    Timer    = 0;
                }
            }
            else
            {
                Activate = false;
            }

            if (Activate)
            {
                AP.PlayAnimation(AllAnimationSonic.ItemTele);
            }

            else
            {
                AP.PlayAnimation(null);
            }
        }

        else
        {
            if (AP.FrameIndex == 4)
            {
                AP.PlayAnimation(null);
                Texture = RessourceSonic3.ItemDestroy;
                Destroy = true;
            }

            if (!Destroy)
            {
                AP.PlayAnimation(AllAnimationSonic.KillEnnemiExplosion);
                Timer = 0;
            }
            else
            {
                Timer += (float)gametime.ElapsedGameTime.TotalSeconds;

                if (Timer > 4)
                {
                    remove = true;
                }
                else
                //Clignotement
                if (Timer > 2)
                {
                    colorTele.A -= 10;
                    colorTele.B -= 10;
                    colorTele.G -= 10;
                    colorTele.R -= 10;
                }
            }
        }
    }
Ejemplo n.º 26
0
    //-----------------------------------------------------------------------------------------------------------------------------------

    static public void UpdateRing(ref int RingsPosses, ref int Life, Rectangle RecUpdate, ref List <Ring> Rings, PlayerSonic Joueur, GameTime gameTime)
    {
        if (RingsPosses >= 100)
        {
            Life++;
            RessourceSonic3.LifeUp.Play();
            RingsPosses -= 100;
        }

        for (int i = Rings.Count - 1; i >= 0; i--)
        {
            if (RecUpdate.Intersects(Rings[i].RecRing))
            {
                Rings[i].Update(Joueur.RecPerso, Joueur.flip, gameTime);
            }
            if (Rings[i].catched)
            {
                Rings.RemoveAt(i); RingsPosses++;
            }
            else if (Rings[i].delete)
            {
                Rings.RemoveAt(i);
            }
        }
    }