Beispiel #1
0
 //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);
 }
Beispiel #2
0
 protected override Ship GetShip()
 {
     Ship ship;
     ship = new Ship();
     ship.XPosition = GetWidth() / 2;
     ship.YPosition = GetHeight() / 2;
     return ship;
 }
Beispiel #3
0
 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;
 }
Beispiel #4
0
 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;
 }
Beispiel #5
0
 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;
 }
Beispiel #6
0
 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;
 }
Beispiel #7
0
 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;
        }
Beispiel #9
0
        /// <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())));
            }
        }
Beispiel #10
0
        protected override List<MovingObject> GetIAs(Ship playerShip)
        {
            List<MovingObject> retour = new List<MovingObject>();

            return retour;
        }
Beispiel #11
0
 protected abstract List<MovingObject> GetIAs(Ship playerShip);
Beispiel #12
0
 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));
 }
Beispiel #13
0
        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;
        }