public override void Update() { keyState = Keyboard.GetState(); bool holdingXKey = false; bool holdingYKey = false; if (keyState.IsKeyDown(Keys.W) ) { speed.Y -= maxAcc; holdingYKey = true; yDcc = maxDcc; } if (keyState.IsKeyDown(Keys.S) ) { speed.Y += maxAcc; holdingYKey = true; yDcc = maxDcc; } if (keyState.IsKeyDown(Keys.A) ) { speed.X -= maxAcc; holdingXKey = true; xDcc = maxDcc; } if (keyState.IsKeyDown(Keys.D) ) { speed.X += maxAcc; holdingXKey = true; xDcc = maxDcc; } if (!holdingXKey) { if (Math.Abs(xDcc) > 0) { speed.X /= dadt; } } if (!holdingYKey) { if (Math.Abs(yDcc) > 0) { speed.Y /= dadt; } } //shootin if (shootTimer == MAX_SHOOT_TIMER) { if (keyState.IsKeyDown(Keys.Up)) { manager.BulletManager.Add(new Projectile(position - targetSource, new Vector2(speed.X, speed.Y), new Vector2(0, -1), manager, range, damage)); shootTimer = 0; } else if (keyState.IsKeyDown(Keys.Down)) { manager.BulletManager.Add(new Projectile(position - targetSource, new Vector2(speed.X, speed.Y), new Vector2(0, 1), manager, range, damage)); shootTimer = 0; } else if (keyState.IsKeyDown(Keys.Left)) { manager.BulletManager.Add(new Projectile(position - targetSource, new Vector2(speed.X, speed.Y), new Vector2(-1, 0), manager, range, damage)); shootTimer = 0; } else if (keyState.IsKeyDown(Keys.Right)) { manager.BulletManager.Add(new Projectile(position - targetSource, new Vector2(speed.X, speed.Y), new Vector2(1, 0), manager, range, damage)); shootTimer = 0; } } if (keyState.IsKeyDown(Keys.E) && oldKeyState.IsKeyUp(Keys.E)) { if (bombs > 0) { Bomb bomb = new Bomb(new Vector2(position.X, position.Y), manager, this); bomb.CurrentRoom = CurrentRoom; manager.AddBomb(bomb); bombs--; } } if (keyState.IsKeyDown(Keys.Space) && oldKeyState.IsKeyUp(Keys.Space)) { if (sbItem != null) { if (sbItem.IsCharged) { sbItem.Activate(); sbItem.DrainCharge(); } } } UpdateCamera(); oldKeyState = keyState; base.Update(); }
public void AddBomb(Bomb b) { actorManager.Add(b); }