public cAngelIslandP2(IServiceProvider serviceProvider, GraphicsDeviceManager graphics, int NumPerso) : base(serviceProvider, graphics) { this.NumPerso = NumPerso; Hud = new HUD(NumPerso); Joueur = new PlayerSonic(false, true, NumPerso); }
public Menu(PlayerSonic Joueur, Vector2 Position) { if (Joueur != null) { Joueur.Enabled = true; } this.Position = new Vector2(Position.X - 300, Position.Y - 100); }
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; } } }
public void Mort() { SaveCheckPoint.Life = Life; APDeadpos = Joueur.Position; APDeadpos.Y -= 500; APDeadpos.X += 80; APDeadPosInit = APDeadpos; Joueur = null; }
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); } } }
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 }
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 }
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; } }
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);*/ } }
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; } }
// 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; } } }
// 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; } } }
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; } } }
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"; } } }
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; } }
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))); //------------------------------------------------------------------ }
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 }
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); }
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 } }
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]); } } } }
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 }
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 }
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 }
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 }
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; } } } }
//----------------------------------------------------------------------------------------------------------------------------------- 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); } } }