public Bullet() { iSpeed = 1; bActive = false; bVisible = false; m_CurrDirection = BattleShip.Core.Utils.Common.Direction.Up; }
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; }
public Sprite(Texture2D texture) { asSprite = new SpriteAnimation(texture); m_CurrDirection = BattleShip.Core.Utils.Common.Direction.None; m_ColorOnMap = Color.Red; }
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; }
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); } }