//Variables pour déssiner /// <summary> /// Constructeur /// </summary> /// <param name="game"></param> /// <param name="gameManager"></param> public Radar(Microsoft.Xna.Framework.Game game, GameManager.GameManager gameManager) : base(game) { _position = new Vector2(game.GraphicsDevice.Viewport.Width - _size , _size ); _ship = gameManager.ship; _enemies = gameManager.enemies; XnaDebugDrawer.DebugDrawer.LoadContent(game.GraphicsDevice); }
protected override Ship GetShip() { Ship ship; ship = new Ship(); ship.XPosition = GetWidth() / 2; ship.YPosition = GetHeight() / 2; return ship; }
protected override Ship GetShip() { Ship ship; ship = new Ship(); ship.XPosition = GetWidth() / 2; ship.YPosition = GetHeight() / 2; ship.LstWeapons.Add(new ShotGun(ship)); return ship; }
protected override Ship GetShip() { Ship ship; ship = new Ship(); ship.Moove = new GameObjects.Moving.MovingSideScroller(ship); ship.XPosition = 200; ship.YPosition = GetHeight() / 2; return ship; }
protected override List<MovingObject> GetIAs(Ship playerShip) { List<MovingObject> retour = new List<MovingObject>(); for (int i = 0; i < 30 ; i++) { retour.Add(SimpleEnnemyFactory.GenerateCirclingEnnemi(i*300+1500,(200 + i*250)% 600 + 200,i * 12)); } return retour; }
protected override List<MovingObject> GetIAs(Ship playerShip) { List<MovingObject> retour = new List<MovingObject>(); for (int i = 0; i < 5; i++) { retour.Add(SimpleEnnemyFactory.GenerateSimpleEnnemi(playerShip)); } return retour; }
protected override Ship GetShip() { Ship ship; ship = new Ship(); ship.XPosition = GetWidth() / 2; ship.YPosition = GetHeight() / 2; ship.Moove = new GameObjects.Moving.MovingBase(ship); ship.Moove.Friction = 0.01f; return ship; }
/// <summary> /// Créé un IA qui se dirige vers le joueur toutes les x secondes et tir /// </summary> /// <param name="playerShip">Référense vers le joueur</param> /// <param name="speed">vitesse de l'ennemi (3 par défaut)</param> /// <param name="delayShoot">millisecondes entre les tirs</param> /// <returns></returns> public static EnnemyShip GenerateSimpleEnnemi(Ship playerShip, float speed = 3, int delayShoot = 1000) { ActionFollowPlayer mouvement; EnnemyShip enemyShip = new EnnemyShip(); enemyShip = new EnnemyShip(false); enemyShip.Position = new Vector2(Utilitaire._random.Next(0, GameManager.GameManager._WidthGame), Utilitaire._random.Next(0, GameManager.GameManager._HeightGame)); enemyShip.Speed = new Vector2(speed, 0); enemyShip.RotationInDegrees = Utilitaire._random.Next(0, 360); enemyShip.setSpeedWithDirection(); mouvement = new ActionFollowPlayer(enemyShip, playerShip, Laser.LASER_SPEED, 0, 5000); mouvement.Recursive = true; enemyShip.AddAction(mouvement); enemyShip.AddAction(new ActionShoot(enemyShip, new Weapon(enemyShip, 300), delayShoot, (int)(delayShoot))); return enemyShip; }
/// <summary> /// Appelé par gameManager avec en référence les listes a remplir /// </summary> /// <param name="_ennemies"></param> /// <param name="_allies"></param> /// <param name="_walls"></param> /// <param name="_powerUps"></param> /// <param name="_ship"></param> /// <param name="_width"></param> /// <param name="_height"></param> public void InitializeWorld(ref List<MovingObject> _ennemies, ref List<MovingObject> _allies, ref List<Wall> _walls, ref List<Powerup> _powerUps, ref Ship _ship, ref int _width, ref int _height) { _width = GetWidth(); _height = GetHeight(); GameManager.InfiniteWorld = GetWorldMode(); _ship = GetShip(); _allies = new List<MovingObject>(); _ennemies = GetAsteroids(); _ennemies.AddRange(GetIAs(_ship)); _powerUps = GetPowerUps(); _walls = GetWalls(); if(!GameManager.InfiniteWorld){ _walls.Add(new Wall(new Vector2(0, 0), new Vector2(GetWidth(), 0))); _walls.Add(new Wall(new Vector2(0, 0), new Vector2(0, GetHeight()))); _walls.Add(new Wall(new Vector2(0, GetHeight()), new Vector2(GetWidth(), 0))); _walls.Add(new Wall(new Vector2(GetWidth(), 0), new Vector2(0, GetHeight()))); } }
protected override List<MovingObject> GetIAs(Ship playerShip) { List<MovingObject> retour = new List<MovingObject>(); return retour; }
protected abstract List<MovingObject> GetIAs(Ship playerShip);
public ActionFollowPlayer(EnnemyShip ship,Ship playerShip, float laserSpeed = Laser.LASER_SPEED, int minMaxError = 0,int delay = 0, int sleep = 0) { _time = delay; _timePaused = sleep; _initialTime = delay; _ship = ship; _playerShip = playerShip; _laserSpeed = laserSpeed + _ship.Speed.Length(); _randMiss = new Vector2(Utilities.Utilitaire._random.Next(-minMaxError, minMaxError), Utilities.Utilitaire._random.Next(-minMaxError, minMaxError)); }
protected override List<MovingObject> GetIAs(Ship playerShip) { EnnemyShip enemyShip; ActionFollowPlayer mouvement; List<MovingObject> retour = new List<MovingObject>(); Weapon wep; for (int i = 10;i<100 ; i++) { enemyShip = new EnnemyShip(false); enemyShip.Position = new Vector2(10 + i * 30,100); enemyShip.Speed = new Vector2(3, 0); if (i % 5 != 0) {//nous visent au 5 sec, tirent aux 2 sec mouvement = new ActionFollowPlayer(enemyShip, playerShip, Laser.LASER_SPEED, 120, 5000); } else {//suivent toujours mouvement = new ActionFollowPlayer(enemyShip, playerShip, Laser.LASER_SPEED, 120); } mouvement.Recursive = true; wep = new Weapon(enemyShip, 500); enemyShip.AddAction(mouvement); enemyShip.AddAction(new ActionShoot(enemyShip, new Weapon(enemyShip, 2000), 2000, (int)( 2000))); retour.Add(enemyShip); } //Enemis tourrelles* enemyShip = new EnnemyShip(false); enemyShip.Position = new Vector2(100, GetHeight()-100); enemyShip.Speed = new Vector2(0, 0); mouvement = new ActionFollowPlayer(enemyShip, playerShip, Laser.LASER_SPEED, 120); mouvement.Recursive = true; wep = new ShotGun(enemyShip, 1500); enemyShip.AddAction(new ActionShoot(enemyShip, new Weapon(enemyShip), 1000)); enemyShip.AddAction(mouvement); enemyShip.AddAction(new ActionShoot(enemyShip, wep, 5000)); retour.Add(enemyShip); //tourelle 2 enemyShip = new EnnemyShip(false); enemyShip.Position = new Vector2(100, 100); enemyShip.Speed = new Vector2(0, 0); mouvement = new ActionFollowPlayer(enemyShip, playerShip, Laser.LASER_SPEED, 120); mouvement.Recursive = true; wep = new ShotGun(enemyShip, 1500); enemyShip.AddAction(new ActionShoot(enemyShip, new Weapon(enemyShip), 1000)); enemyShip.AddAction(mouvement); enemyShip.AddAction(new ActionShoot(enemyShip, wep, 5000)); retour.Add(enemyShip); //tourelle 3 enemyShip = new EnnemyShip(false); enemyShip.Position = new Vector2(GetWidth()-100, 100); enemyShip.Speed = new Vector2(0, 0); mouvement = new ActionFollowPlayer(enemyShip, playerShip, Laser.LASER_SPEED, 120); mouvement.Recursive = true; wep = new ShotGun(enemyShip, 1500); enemyShip.AddAction(mouvement); enemyShip.AddAction(new ActionShoot(enemyShip, wep, 5000)); enemyShip.AddAction(new ActionShoot(enemyShip, new Weapon(enemyShip), 1000)); retour.Add(enemyShip); //tourelle 4 enemyShip = new EnnemyShip(false); enemyShip.Position = new Vector2(GetWidth()-100, GetHeight()-100); enemyShip.Speed = new Vector2(0, 0); mouvement = new ActionFollowPlayer(enemyShip, playerShip, Laser.LASER_SPEED, 120); mouvement.Recursive = true; wep = new ShotGun(enemyShip, 1500); enemyShip.AddAction(new ActionShoot(enemyShip, new Weapon(enemyShip), 1000)); enemyShip.AddAction(mouvement); enemyShip.AddAction(new ActionShoot(enemyShip, wep, 5000)); retour.Add(enemyShip); return retour; }