public override void Action() { GamePadState gamePadState = GamePad.GetState(PlayerIndex.One); temperature++; //Moving the Player Player.Position += new Vector2( Priority * gamePadState.ThumbSticks.Left.X, Priority * (-gamePadState.ThumbSticks.Left.Y) ); Vector2 shootVector = new Vector2( -gamePadState.ThumbSticks.Right.X, gamePadState.ThumbSticks.Right.Y); //Shooting if (shootVector != Vector2.Zero && temperature % cooldownTime == 0) { double angle = Math.Atan2(shootVector.Y, shootVector.X); if (BWDirector.Instance.Multiplier >= 2 && BWDirector.Instance.Multiplier < 4) { double angle1 = angle + (5 * (Math.PI / 180)); double angle2 = angle - (5 * (Math.PI / 180)); Bullet singleBullet = new Bullet(Player.Position, 11.0f, angle); BWDirector.Instance.ActorManager.PendingInsertions.Enqueue(singleBullet); if (fireNow) { Bullet bullet1 = new Bullet(Player.Position, 11.0f, angle1); BWDirector.Instance.ActorManager.PendingInsertions.Enqueue(bullet1); Bullet bullet2 = new Bullet(Player.Position, 11.0f, angle2); BWDirector.Instance.ActorManager.PendingInsertions.Enqueue(bullet2); fireNow = false; } else { fireNow = true; } } else if (BWDirector.Instance.Multiplier >= 4) { Bullet singleBullet = new Bullet(Player.Position, 12.0f, angle); BWDirector.Instance.ActorManager.PendingInsertions.Enqueue(singleBullet); //Making a bullet that moves in a Sine wave. Bullet bullet1 = new Bullet(Player.Position, 6.0f, angle); bullet1.Behaviors.Add(new WaveBehavior(bullet1, bullet1.Behaviors.ElementAt(0) as BWBehavior, false, .6f, 15)); BWDirector.Instance.ActorManager.PendingInsertions.Enqueue(bullet1); } else { Bullet singleBullet = new Bullet(Player.Position, 10.0f, angle); BWDirector.Instance.ActorManager.PendingInsertions.Enqueue(singleBullet); } } }
public override void Action() { MouseState mouseState = Mouse.GetState(); temperature++; if (mouseState.LeftButton == ButtonState.Pressed && temperature % cooldownTime == 0) { Vector2 mousePos = new Vector2(mouseState.X, mouseState.Y); Vector2 delta = Player.Position - mousePos; double angle = Math.Atan2(delta.Y, delta.X); if (BWDirector.Instance.Multiplier >= 2 && BWDirector.Instance.Multiplier < 4) { double angle1 = angle + (5 * (Math.PI / 180)); double angle2 = angle - (5 * (Math.PI / 180)); Bullet singleBullet = new Bullet(Player.Position, 11.0f, angle); BWDirector.Instance.ActorManager.PendingInsertions.Enqueue(singleBullet); if (fireNow) { Bullet bullet1 = new Bullet(Player.Position, 11.0f, angle1); BWDirector.Instance.ActorManager.PendingInsertions.Enqueue(bullet1); Bullet bullet2 = new Bullet(Player.Position, 11.0f, angle2); BWDirector.Instance.ActorManager.PendingInsertions.Enqueue(bullet2); fireNow = false; } else { fireNow = true; } } else if (BWDirector.Instance.Multiplier >= 4) { Bullet singleBullet = new Bullet(Player.Position, 12.0f, angle); BWDirector.Instance.ActorManager.PendingInsertions.Enqueue(singleBullet); //Making a bullet that moves in a Sine wave. Bullet bullet1 = new Bullet(Player.Position, 6.0f, angle); bullet1.Behaviors.Add(new WaveBehavior(bullet1, bullet1.Behaviors.ElementAt(0) as BWBehavior, false, .6f, 15)); BWDirector.Instance.ActorManager.PendingInsertions.Enqueue(bullet1); } else { Bullet singleBullet = new Bullet(Player.Position, 10.0f, angle); BWDirector.Instance.ActorManager.PendingInsertions.Enqueue(singleBullet); } } }
public BulletBehavior(Bullet bullet, float basePriority) : base(basePriority) { Bullet = bullet; Angle = bullet.Angle; }