Example #1
0
        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);
 }