/// <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); }