Exemplo n.º 1
0
 public Bullet()
 {
     iSpeed = 1;
     bActive = false;
     bVisible = false;
     m_CurrDirection = BattleShip.Core.Utils.Common.Direction.Up;
 }
Exemplo n.º 2
0
 public Bullet(Texture2D t2dTexture)
 {
     asSprite = new SpriteAnimation(t2dTexture);
     iSpeed = 1;
     asSprite.AutoRotate = true;
     bActive = false;
     bVisible = false;
     m_CurrDirection = BattleShip.Core.Utils.Common.Direction.Up;
 }
Exemplo n.º 3
0
 public Sprite(Texture2D texture)
 {
     asSprite = new SpriteAnimation(texture);
     m_CurrDirection = BattleShip.Core.Utils.Common.Direction.None;
     m_ColorOnMap = Color.Red;
 }
Exemplo n.º 4
0
        public void Fire(int x, int y, BattleShip.Core.Utils.Common.Direction direction, Rectangle rectPlayField)
        {
            m_SoundGun.Play();

            bActive = true;
            bVisible = true;
            asSprite.X = x;
            asSprite.Y = y;
            m_CurrDirection = direction;
            this.rectPlayField = rectPlayField;
        }
Exemplo n.º 5
0
        public virtual void Update(GameTime gameTime, Rectangle clientBounds)
        {
            if (bActive && bMovingTowardsTarget)
            {
                if (!(v2Target == null))
                {
                    // Get a vector pointing from the current location of the sprite
                    // to the destination.
                    Vector2 Delta = new Vector2(v2Target.X - asSprite.X, v2Target.Y - asSprite.Y);

                    if (bAutoCheckDirection)
                    {
                        double angle = Math.Atan2(asSprite.Position.Y - v2Target.Y, asSprite.Position.X - v2Target.X);
                        angle = 1.0 * angle * 180 / 3.14;

                        int result = (int)angle;
                        switch (result)
                        {
                            case 0:
                                m_CurrDirection = BattleShip.Core.Utils.Common.Direction.Left;
                                break;
                            case 90:
                                m_CurrDirection = BattleShip.Core.Utils.Common.Direction.Up;
                                break;
                            case 180:
                                m_CurrDirection = BattleShip.Core.Utils.Common.Direction.Right;
                                break;
                            case -90:
                                m_CurrDirection = BattleShip.Core.Utils.Common.Direction.Down;
                                break;
                            default:
                                m_CurrDirection = BattleShip.Core.Utils.Common.Direction.None;
                                break;
                        }
                    }

                    if (Delta.Length() > Speed)
                    {
                        Delta.Normalize();
                        Delta *= Speed;
                        Position += Delta;
                    }
                    else
                    {
                        if (v2Target == asSprite.Position)
                        {
                            if (bPathing)
                            {
                                if (queuePath.Count > 0)
                                {
                                    v2Target = queuePath.Dequeue();
                                    if (bLoopPath)
                                    {
                                        queuePath.Enqueue(v2Target);
                                    }
                                }
                                else
                                {
                                    if (!(sEndPathAnimation == null))
                                    {
                                        if (!(asSprite.CurrentAnimation == sEndPathAnimation))
                                        {
                                            asSprite.CurrentAnimation = sEndPathAnimation;
                                        }
                                    }
                                    if (bDeactivateAtEndOfPath)
                                    {
                                        IsActive = false;
                                    }
                                    if (bHideAtEndOfPath)
                                    {
                                        IsVisible = false;
                                    }
                                }
                            }
                        }
                        else
                        {
                            asSprite.Position = v2Target;
                        }
                    }
                }
            }
            if (bActive)
            {
                asSprite.Update(gameTime);
            }
        }