示例#1
0
        /// <summary>
        ///Construtor da classe "Bala".
        ///É responsavável por todas as variáveis que definem uma bala
        /// </summary>
        /// <param name="contents">Instâcia de ContentManager</param>
        /// <param name="assetName">Nome da textura da bala</param>
        /// <param name="direccao">Direção do ecrã em que a bala se move</param>
        /// <param name="origemBala">Entidade que disparou a bala</param>
        /// <param name="direccaobala">Tipo de bala - frente, cima, baixo</param>
        /// <param name="parent">Turret que originou a bala</param>
        public Bala(ContentManager contents, string assetName, int direccao, OrigemBala origemBala, DireccaoBala direccaobala, Defence parent = null)
            : base(contents, assetName)
        {
            base.spriteEffects = direccao > 0 ? SpriteEffects.None : SpriteEffects.FlipHorizontally;
            this.speed         = Camera.velocidadegeral;
            this.direccaobala  = direccaobala;
            this.direccao      = direccao;
            this.origemBala    = origemBala;
            this.parent        = parent;
            direction          = Vector2.Zero;

            this.EnableCollisions();
            //else
            //{
            //    som.playTiroEnimigo(contents);
            //}
        }
        /// <summary>
        /// Recicla uma bala que é necessária para o jogo
        /// </summary>
        /// <param name="assetname">Nome da textura a utilizar</param>
        /// <param name="direcao">Direção do ecrã em que a bala se movimenta</param>
        /// <param name="origemBala">Entidade que originou a bala</param>
        /// <param name="direcaoBala">Tipo de bala - Em frente, cima ou baixo</param>
        /// <param name="parent">Turret que disparou a bala</param>
        /// <returns>Uma bala reciclada</returns>
        public static Bala addBala(string assetname, int direcao, OrigemBala origemBala, DireccaoBala direcaoBala, Defence parent = null)
        {
            balaTemp = balasMortas.First();
            if (assetname == "balaplayer")
            {
                balaTemp.image = balaplayer;
            }
            else if (assetname == "baladefesas")
            {
                balaTemp.image = baladefesas;
            }
            else
            {
                balaTemp.image = balainimigo;
            }

            balaTemp.parent = parent;

            vectorTemp.X           = 1f;
            vectorTemp.Y           = (float)balaTemp.image.Height / (float)balaTemp.image.Width;
            balaTemp.size          = vectorTemp;
            balaTemp.spriteEffects = direcao > 0 ? SpriteEffects.None : SpriteEffects.FlipHorizontally;
            balaTemp.direccao      = direcao;
            balaTemp.origemBala    = origemBala;
            balaTemp.direccaobala  = direcaoBala;
            balaTemp.direction     = Vector2.Zero;
            balasAtivas.Add(balaTemp);
            balasMortas.Remove(balaTemp);
            return(balaTemp);
        }