Example #1
0
 /// <summary>
 /// Construtor do Missil
 /// </summary>
 /// <param name="contents">Instância de ContenteManager</param>
 /// <param name="assetName">Nome da textura a utilizar</param>
 /// <param name="tipoMissil">Tipo de missil - simples ou teleguiado</param>
 /// <param name="direccao">Direção do ecrã em que o missil se desloca</param>
 /// <param name="origemBala">Entidade que originou o missil</param>
 /// <param name="alvo">Alvo a atingir</param>
 public Missil(ContentManager contents, string assetName, TipoMissil tipoMissil, int direccao, OrigemBala origemBala, FlyingEntity alvo = null)
     : base(contents, assetName)
 {
     base.spriteEffects  = direccao > 0 ? SpriteEffects.None : SpriteEffects.FlipHorizontally;
     this.tipoMissil     = tipoMissil;
     this.speed          = Camera.velocidadegeral * 5;
     this.speedInicial   = this.speed;
     this.aceleracao     = this.speed / 20;
     this.direccao       = direccao;
     this.alvo           = alvo;
     this.passouPeloAlvo = false;
     this.origemBala     = origemBala;
     this.EnableCollisions();
 }
        /// <summary>
        /// Recicla um missil que é necessário para o jogo
        /// </summary>
        /// <param name="assetname">Textura do missil a utilizar</param>
        /// <param name="tipoMissil">Tipo de missil - inimigo ou jogador</param>
        /// <param name="direcao">Direção do ecrã em que o missil se move</param>
        /// <param name="origemBala">Entidade que originou o missil</param>
        /// <param name="alvo">Alvo do missil teleguiado</param>
        /// <returns>Missil reciclado</returns>
        public static Missil addMissil(string assetname, TipoMissil tipoMissil, int direcao, OrigemBala origemBala, FlyingEntity alvo = null)
        {
            missilTemp = misseisMortos.First();
            if (assetname == "missilPlayer")
            {
                missilTemp.image = missilplayer;
            }
            else
            {
                missilTemp.image = missilinimigo;
            }
            vectorTemp.X             = 1f;
            vectorTemp.Y             = (float)missilTemp.image.Height / (float)missilTemp.image.Width;
            missilTemp.size          = vectorTemp;
            missilTemp.spriteEffects = direcao > 0 ? SpriteEffects.None : SpriteEffects.FlipHorizontally;
            missilTemp.tipoMissil    = tipoMissil;
            missilTemp.direccao      = direcao;
            missilTemp.alvo          = alvo;
            missilTemp.origemBala    = origemBala;

            misseisAtivos.Add(missilTemp);
            misseisMortos.Remove(missilTemp);
            return(missilTemp);
        }