public override void Update(GameTime gameTime, IPlayer currentPlayer) { if (this.SpecialtyFired) { // TODO moje da se izvede v private method void Move() i Atack() primerno.. // nqkak da se porazkachi Update() (ako ima vreme) if (currentPlayer is FirstPlayer) { Collide = SpecialtyCollision.Collide(SecondPlayer.Instance.Ship, this); if (Collide) { currentPlayer.Ship.SpecialtyAttack(SecondPlayer.Instance.Ship); } this.AddToPosition(Direction.Positive, CoordsDirections.Abscissa, HURRICANE_SPEED); } else { Collide = SpecialtyCollision.Collide(FirstPlayer.Instance.Ship, this); if (Collide) { currentPlayer.Ship.SpecialtyAttack(FirstPlayer.Instance.Ship); } this.AddToPosition(Direction.Negative, CoordsDirections.Abscissa, HURRICANE_SPEED); } } }
public override void Update(GameTime gameTime, IPlayer currentPlayer) { // ЛОГИКА ПРИ КОЛИЗИЯ НА МИНАТА // TODO NOT WORKING COLLISION if (currentPlayer != FirstPlayer.Instance) { Collide = SpecialtyCollision.Collide(FirstPlayer.Instance.Ship, this); if (Collide) { currentPlayer.Ship.SpecialtyAttack(FirstPlayer.Instance.Ship); this.DoDraw = false; } } else { Collide = SpecialtyCollision.Collide(SecondPlayer.Instance.Ship, this); if (Collide) { currentPlayer.Ship.SpecialtyAttack(SecondPlayer.Instance.Ship); this.DoDraw = false; } } // НАСТРОЙКА НА ПОЗИЦИЯТА ПРИ ПУСКАНЕ НА МИНАТА if (this.SpecialtyFired) { this.DoDraw = true; flag++; if (flag == 1) { mineStartPos = new Vector2(currentPlayer.Ship.Position.X - this.Image.Texture.Width, currentPlayer.Ship.Position.Y); this.SetPosition(CoordsDirections.Abscissa, ScreenManager.Instance.Dimensions.X - this.Image.Texture.Width - currentPlayer.Ship.Position.X); this.SetPosition(CoordsDirections.Ordinate, -30); } } if (this.Position.Y < mineStartPos.Y) { this.AddToPosition(Direction.Positive, CoordsDirections.Ordinate, SPEED); } else { this.SpecialtyFired = false; flag = 0; } }