Beispiel #1
0
        /// <summary>
        /// Ajoute une arme à la liste du ship
        /// </summary>
        /// <param name="weapon"></param>
        public void AddWeapon(Weapons.Weapon weapon)
        {
            bool canAdd = true;

            foreach (Weapons.Weapon currentWeapon in LstWeapons)
            {
                if (weapon.GetType() == currentWeapon.GetType())
                {
                    canAdd = false;
                }
            }

            if (canAdd)
            {
                LstWeapons.Add(weapon);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Constructeur de base
        /// </summary>
        public Ship()
            : base()//pGMng)
        {
            _lstWeapons = new List <Weapons.Weapon>()
            {
                new Weapons.Weapon(this)
            };
            _activeWeapon = LstWeapons.First();
            //_weapon = new Weapons.Weapon( this);
            _moove = new Moving.MovingDirect(this);
            Shield = new Defense.DefenseBase(this);
            _value = TypeScore.Hit;

            _moove.Friction = 0.01f;
            _rotation       = -90;
            changeAngleAccel();
            Sprite    = SpriteManager.ShipMainSprite;
            _scale    = SpriteManager.scaleRateShip;
            _origin.X = _sprite.Width / 2;
            _origin.Y = _sprite.Height / 2;
            MAX_SPEED = 12;
        }
Beispiel #3
0
        /// <summary>
        /// Modifier le ship selon les inputs du joueur
        /// </summary>
        /// <param name="keyBoardState"></param>
        /// <param name="mouseState"></param>
        /// <param name="gamePadState"></param>
        public virtual void HandlePlayerInput(KeyboardState keyBoardState, MouseState mouseState, GamePadState gamePadState)
        {
            _shoot = (keyBoardState.IsKeyDown(Keys.Space) || gamePadState.IsButtonDown(Buttons.A));
            _moove.sendInput(new Vector2((keyBoardState.IsKeyDown(Keys.Left) ? -1 : (keyBoardState.IsKeyDown(Keys.Right) ? 1 : gamePadState.ThumbSticks.Left.X)),
                                         (keyBoardState.IsKeyDown(Keys.Down) ? -1 : (keyBoardState.IsKeyDown(Keys.Up) ? 1 : gamePadState.ThumbSticks.Left.Y))), gamePadState.Triggers.Right - gamePadState.Triggers.Left);


            //type d'Arme... pas pratique, doit faire un ifElse mais pas le choix avec le système de inputs présent.
            if (keyBoardState.IsKeyDown(Keys.D1) && LstWeapons.IndexOf(_activeWeapon) != 0)
            {
                _activeWeapon = LstWeapons[0];
            }
            else if (LstWeapons.Count > 1 && keyBoardState.IsKeyDown(Keys.D2) && LstWeapons.IndexOf(_activeWeapon) != 1)
            {
                _activeWeapon = LstWeapons[1];
            }
            else if (LstWeapons.Count > 2 && keyBoardState.IsKeyDown(Keys.D3) && LstWeapons.IndexOf(_activeWeapon) != 2)
            {
                _activeWeapon = LstWeapons[2];
            }
            else if (LstWeapons.Count > 3 && keyBoardState.IsKeyDown(Keys.D4) && LstWeapons.IndexOf(_activeWeapon) != 2)
            {
                _activeWeapon = LstWeapons[3];
            }
            else if (LstWeapons.Count > 4 && keyBoardState.IsKeyDown(Keys.D5) && LstWeapons.IndexOf(_activeWeapon) != 2)
            {
                _activeWeapon = LstWeapons[4];
            }
            else if (LstWeapons.Count > 5 && keyBoardState.IsKeyDown(Keys.D6) && LstWeapons.IndexOf(_activeWeapon) != 2)
            {
                _activeWeapon = LstWeapons[5];
            }
            else if (LstWeapons.Count > 6 && keyBoardState.IsKeyDown(Keys.D7) && LstWeapons.IndexOf(_activeWeapon) != 2)
            {
                _activeWeapon = LstWeapons[6];
            }
            else if (LstWeapons.Count > 7 && keyBoardState.IsKeyDown(Keys.D8) && LstWeapons.IndexOf(_activeWeapon) != 2)
            {
                _activeWeapon = LstWeapons[7];
            }
            else if (LstWeapons.Count > 8 && keyBoardState.IsKeyDown(Keys.D9) && LstWeapons.IndexOf(_activeWeapon) != 2)
            {
                _activeWeapon = LstWeapons[8];
            }

            // changement d'armes avec x et y pour manette
            if (gamePadState.Buttons.X == ButtonState.Pressed && _oldGamePad.Buttons.X != ButtonState.Pressed)
            {
                _activeWeapon = LstWeapons[(LstWeapons.IndexOf(_activeWeapon) + 1) % LstWeapons.Count];
            }
            else if (gamePadState.Buttons.Y == ButtonState.Pressed && _oldGamePad.Buttons.Y != ButtonState.Pressed)
            {
                if (LstWeapons.IndexOf(_activeWeapon) <= 0)
                {
                    _activeWeapon = LstWeapons[LstWeapons.Count - 1];
                }
                else
                {
                    _activeWeapon = LstWeapons[LstWeapons.IndexOf(_activeWeapon) - 1];
                }
            }
            _oldGamePad = gamePadState;
        }