//Interaction joueur->Object Collisionnable public void Update(ZLPlayer Joueur) { RecPerso = new Rectangle(Joueur.recPerso.X, Joueur.recPerso.Y, Joueur.recPerso.Width, Joueur.recPerso.Height); if (RecPerso.isOnBottomOf(RecObj)) { Joueur.position = new Vector2(Joueur.position.X, Joueur.position.Y + 2); } else if (RecPerso.isOnTopOf(RecObj)) { Joueur.position = new Vector2(Joueur.position.X, Joueur.position.Y - 2); } else if (RecPerso.isOnRightOf(RecObj)) { Joueur.position = new Vector2(Joueur.position.X + 2, Joueur.position.Y); } else if (RecPerso.isOnLeftOf(RecObj)) { Joueur.position = new Vector2(Joueur.position.X - 2, Joueur.position.Y); } else if (RecPerso.Intersects(RecObj)) { if (Joueur.position.X > RecObj.X) { Joueur.position = new Vector2(Joueur.position.X + 2, Joueur.position.Y); } else { Joueur.position = new Vector2(Joueur.position.X - 2, Joueur.position.Y); } } }
public cMainMenu(IServiceProvider serviceProvider, GraphicsDeviceManager graphics) : base(serviceProvider, graphics) { Player = new ZLPlayer(new Vector2(158, 300), true, false); FirePlayer = new AnimationPlayer(); Fire = new Animation(Ressources.Fire, 75, 0.5f, 1, true); ZombieWalking = new Animation(Ressources.Zombie1, 80, 1.5f, 1, true); PositionFeu = new Vector2(440, 125); RecTuto = new Rectangle(90, 160, 270, 250); Zombies = new List <Zombie>(); FireBalls = new List <FireBall>(); FireBalls.Add(new FireBall(new Vector2(-100, 280), SpriteEffects.None)); Zombies.Add(new Zombie(new Vector2(255, 300))); Zombies.Add(new Zombie(new Vector2(235, 360))); Zombies.Add(new Zombie(new Vector2(265, 240))); Magasin = new GestionMagasin(); MediaPlayer.Volume = 0.1f; MediaPlayer.IsRepeating = true; if (MediaPlayer.Queue.ActiveSong != Ressources.CHSong) { MediaPlayer.Play(Ressources.CHSong); } }
public cNiveau2(IServiceProvider serviceProvider, GraphicsDeviceManager graphics) : base(serviceProvider, graphics) { Joueur = new ZLPlayer(new Vector2(970, 670), false, true); Joueur2 = new Ninja(new Vector2(970, 670)); Joueur3 = new Kirby(new Vector2(100, 200)); camera = new Camera(graphics.GraphicsDevice.Viewport); rApparition = new Random(); camera = new Camera(graphics.GraphicsDevice.Viewport); Hud = new HUD(); EV = new EnnemiVague(); Hud.balle = GestionExterne.nbBalleGun; Hud.argent = GestionExterne.argent; Hud.fleche = GestionExterne.nbFleche; Hud.balleShotgun = GestionExterne.nbBalleShotgun; Hud.laser = GestionExterne.nbLaser; MP = new MusicPlayer(new Song[] { Ressources.PSong, Ressources.FSong , Ressources.BPSong, Ressources.MGSong, Ressources.RESong }); MP.Load(GestionExterne.numSong); Obj = new List <ObjCollisionable>(); Obj2 = new List <OBJCollisionable>(); Zombies = new List <Zombie>(); ZombiesCR = new List <ZombieCR>(); ZombiesF = new List <ZombieF>(); BossZombies = new List <BossZombie>(); BossZombiesCR = new List <BossZombieCR>(); BossZombiesF = new List <BossZombieF>(); ZombiesAppartition = new Vector2[14] { new Vector2(200, 215), new Vector2(715, -50), new Vector2(1060, -50), new Vector2(1670, 230), new Vector2(1700, 500), new Vector2(1700, 900), new Vector2(1700, 1100), new Vector2(1300, 1100), new Vector2(800, 1100), new Vector2(200, 1100), new Vector2(1500, 1300), new Vector2(1200, 1300), new Vector2(600, 1300), new Vector2(400, 1300) }; #region Obj Collisionable Obj.Add(new ObjCollisionable(new Rectangle(250, 785, 25, 5))); Obj.Add(new ObjCollisionable(new Rectangle(75, 55, 210, 10))); Obj.Add(new ObjCollisionable(new Rectangle(75, 5, 220, 50))); Obj.Add(new ObjCollisionable(new Rectangle(340, 395, 13, 10))); Obj.Add(new ObjCollisionable(new Rectangle(1430, 165, 10, 5))); Obj.Add(new ObjCollisionable(new Rectangle(1520, 880, 10, 5))); Obj.Add(new ObjCollisionable(new Rectangle(460, 570, 20, 100))); Obj.Add(new ObjCollisionable(new Rectangle(480, 590, 10, 80))); Obj.Add(new ObjCollisionable(new Rectangle(1470, 570, 20, 100))); Obj.Add(new ObjCollisionable(new Rectangle(1450, 590, 10, 80))); #endregion foreach (ObjCollisionable O in Obj) { Obj2.Add(new OBJCollisionable(O.recObj)); } }
public cNiveau1(IServiceProvider serviceProvider, GraphicsDeviceManager graphics) : base(serviceProvider, graphics) { Joueur = new ZLPlayer(new Vector2(100, 200), false, true); Joueur2 = new Ninja(new Vector2(100, 200)); Joueur3 = new Kirby(new Vector2(100, 200)); rApparition = new Random(); camera = new Camera(graphics.GraphicsDevice.Viewport); Hud = new HUD(); EV = new EnnemiVague(); Hud.balle = GestionExterne.nbBalleGun; Hud.argent = GestionExterne.argent; Hud.fleche = GestionExterne.nbFleche; Hud.balleShotgun = GestionExterne.nbBalleShotgun; Hud.laser = GestionExterne.nbLaser; MP = new MusicPlayer(new Song[] { Ressources.PSong, Ressources.FSong , Ressources.BPSong, Ressources.MGSong, Ressources.RESong }); MP.Load(GestionExterne.numSong); Obj = new List <ObjCollisionable>(); Obj2 = new List <OBJCollisionable>(); Zombies = new List <Zombie>(); ZombiesCR = new List <ZombieCR>(); ZombiesF = new List <ZombieF>(); BossZombies = new List <BossZombie>(); BossZombiesCR = new List <BossZombieCR>(); BossZombiesF = new List <BossZombieF>(); ZombiesAppartition = new Vector2[10] { new Vector2(100, 50), new Vector2(100, 500), new Vector2(800, 50), new Vector2(800, 500), new Vector2(400, 500), new Vector2(400, 50), new Vector2(1200, 50), new Vector2(1200, 500), new Vector2(1800, 50), new Vector2(1800, 500) }; #region Objects Collisionables Obj.Add(new ObjCollisionable(new Rectangle(190, 20, 20, 20))); Obj.Add(new ObjCollisionable(new Rectangle(360, 245, 13, 10))); Obj.Add(new ObjCollisionable(new Rectangle(360, 330, 1, 20))); Obj.Add(new ObjCollisionable(new Rectangle(500, 0, 1, 130))); Obj.Add(new ObjCollisionable(new Rectangle(500, 300, 1, 10))); Obj.Add(new ObjCollisionable(new Rectangle(500, 430, 1, 10))); Obj.Add(new ObjCollisionable(new Rectangle(610, 210, 5, 10))); Obj.Add(new ObjCollisionable(new Rectangle(1090, 70, 1, 1))); Obj.Add(new ObjCollisionable(new Rectangle(1090, 330, 1, 1))); Obj.Add(new ObjCollisionable(new Rectangle(1330, 235, 70, 10))); Obj.Add(new ObjCollisionable(new Rectangle(1560, 210, 1, 1))); Obj.Add(new ObjCollisionable(new Rectangle(1540, 250, 1, 20))); #endregion foreach (ObjCollisionable O in Obj) { Obj2.Add(new OBJCollisionable(O.recObj)); } }
public void Update(ZLPlayer Joueur) { ///Pour que la vie descendre beaucoup moins vite et pour donner un peu plus de facilité VieReele est gérée if (Joueur.hurt) { if (Joueur.hurtLevel == 1) { VieReele -= 0.10f; } else if (Joueur.hurtLevel == 2) { VieReele -= 0.15f; } else if (Joueur.hurtLevel == 3) { VieReele -= 0.20f; } CompteurNoTouch = 0; Invisible = false; } //Compteur pour faire disparaitre Barre de vie si non touché (ne fait pas le traitement si deja invisible) else { if (!Invisible) { CompteurNoTouch++; if (CompteurNoTouch == 120) { Invisible = true; } } } //Position Position = new Vector2(Joueur.position.X - RecVisible.Width / 2, Joueur.position.Y - 8 * (RecVisible.Height)); //Changement de grosseur du rectangle RecVisible.Width = (int)VieReele; //Si grosseur=0 C'EST LA MORT if (RecVisible.Width == 0) { Tuer = true; } //Position TexteBackspace if (Position.X < 800) { PosBackSpace = new Vector2(350, 450); } else if (Position.X < 1600) { PosBackSpace = new Vector2(1200, 20); } }
public cIntro(IServiceProvider serviceProvider, GraphicsDeviceManager graphics) : base(serviceProvider, graphics) { Player = new ZLPlayer(new Vector2(-100, 300), true, false); GMPlayer = new AnimationPlayer(); GrandMere = new Animation(Ressources.GrandMa, 150, 0.2f, 1, true); Explosion = new Animation(Ressources.Explosion, 100, 0.2f, 1.5f, false); PositionGMLF = new Vector2(700, 300); FireBalls = new List <FireBall>(); FireBalls.Add(new FireBall(new Vector2(-100, 280), SpriteEffects.None)); MediaPlayer.Volume = 0.1f; MediaPlayer.IsRepeating = true; MediaPlayer.Play(Ressources.CHSong); }
public void Update(ZLPlayer Joueur) { RecL = new Rectangle((int)Position.X - 100, (int)Position.Y, 435, 50); //Deplacement par rapport au perso flip = Joueur.Flip; Position = Joueur.position; Position.Y += 3; if (flip == SpriteEffects.None) { this.Position.X += 172; } else { this.Position.X -= 172; } }
public void Update(ZLPlayer Joueur, List <ObjCollisionable> ObjCollisionnable) { recPerso = new Rectangle(Joueur.recPerso.X + 40, Joueur.recPerso.Y + 80, Joueur.recPerso.Width, 20); if (!Disable && !Killed) { RecZombie.X = (int)Position.X; RecZombie.Y = (int)Position.Y; #region deplacement //gere les Y a une certaine distance du personnage if (Math.Abs(Position.X - Joueur.position.X) < 200) { if (Joueur.position.X > Position.X) { Position.X += 0.25f; } else if (Joueur.position.X < Position.X) { Position.X -= 0.25f; } if (Joueur.position.Y > Position.Y) { Position.Y += 0.25f; } else if (Joueur.position.Y < Position.Y) { Position.Y -= 0.25f; } } else { if (Joueur.position.X > Position.X) { Position.X += 0.25f; } else { Position.X -= 0.25f; } } #endregion } //Decalement du Rectangle de collsion en conséquence du sens de l'ennemi if (recPerso.X > RecZombie.X) { flip = SpriteEffects.FlipHorizontally; RecZombie.X -= 50; } else { flip = SpriteEffects.None; RecZombie.X += 50; } #region Gestion Des Objects Collisionnable if (ObjCollisionnable != null) { foreach (ObjCollisionable O in ObjCollisionnable) { O.Update(this, Joueur.position); } } #endregion #region Animation Selon l'environnement if (Killed) { APZ.PlayAnimation(Dead); } else if (recPerso.Intersects(RecZombie)) { //Si touche a scie if (Joueur.apJoueur.Animation == Joueur.scieArming && Joueur.Flip == flip) { if (flip == SpriteEffects.None) { Position.X++; } else { Position.X--; } nbTouche++; if (nbTouche == 20) { Killed = true; } } else { APZ.PlayAnimation(null); Attack = true; Joueur.disable = true; if (flip == SpriteEffects.FlipHorizontally) { Position.X += 25; } else { Position.X -= 25; } } } else if (!Attack) { APZ.PlayAnimation(Walking); } #endregion #region Si touche à FireBall if (Joueur.fireBalls != null) { for (int F = 0; F < Joueur.fireBalls.Count; F++) { if (Joueur.fireBalls[F].recFB.Intersects(RecZombie)) { nbTouche++; } if (nbTouche == 40) { Killed = true; } } } #endregion #region Si Touche à Ball if (Joueur.balles != null) { for (int B = 0; B < Joueur.balles.Count; B++) { if (Joueur.balles[B].recB.Intersects(RecZombie)) { nbTouche++; Joueur.balles.RemoveAt(B); } if (nbTouche >= 5) { Killed = true; } } } #endregion #region Si Touche à Cartouche if (Joueur.cartouches != null) { for (int C = 0; C < Joueur.cartouches.Count; C++) { for (int c = 0; c < Joueur.cartouches[C].eclats.Count(); c++) { if (Joueur.cartouches[C].eclats[c].recC.Intersects(RecZombie)) { nbTouche++; Joueur.cartouches[C].eclats.RemoveAt(c); } } if (nbTouche >= 10) { RecZombie = new Rectangle(-100, -100, 10, 10);; Killed = true; } } } #endregion #region Si Touche à Laser if (Joueur != null) { for (int L = 0; L < Joueur.lasers.Count; L++) { if (Joueur.lasers[L].recL.Intersects(RecZombie)) { Killed = true; } } } #endregion #region Clignotement Si tuer if (Killed) { CompteurDead++; if (CompteurDead == 200) { Remove = true; } DeadColor.A -= 10; DeadColor.B -= 10; DeadColor.G -= 10; DeadColor.R -= 10; } #endregion if (Killed && !SoundOneTime) { SoundOneTime = true; Ressources.ZombieDie.Play(0.1f, -1f, 0f); } }
public void Update(Vector2 PosCamera, ZLPlayer Joueur) { Position = PosCamera; Arme = Joueur.numArmement; Chargeur.Update(Position, Arme, Joueur.nbBalle, Joueur.nbFleche, Joueur.nbBalleS, Joueur.nbLaser); }