private void handleShooting(float deltaTime) { timeSinceLastShot += deltaTime; shooter = shooter ?? invaders[rng.Next(invaders.Count)]; float firingSpeed = shooter[CombatBehavior.Key_FiringSpeed]; if (timeSinceLastShot + rng.NextDouble() >= firingSpeed) { EventManager.Queue(FireWeaponEvent.SingleShot(shooter.ID)); timeSinceLastShot = 0.0f; shooter = null; } }
public void OnKeyDown(object sender, KeyEventArgs e) { isKeyDown[e.KeyCode] = true; e.Handled = true; switch (e.KeyCode) { case Keys.W: goto case Keys.Up; case Keys.Up: //determineDirectionAndIssueMove(Direction.North, true); break; case Keys.D: goto case Keys.Right; case Keys.Right: determineDirectionAndIssueMove(Direction.East, true); break; case Keys.S: goto case Keys.Down; case Keys.Down: //determineDirectionAndIssueMove(Direction.South, true); break; case Keys.A: goto case Keys.Left; case Keys.Left: determineDirectionAndIssueMove(Direction.West, true); break; case Keys.Space: eventManager.Queue(FireWeaponEvent.Start(playerEntity.ID)); break; default: e.Handled = false; break; } }