Esempio n. 1
0
        private void HandleKeyboard(double dt)
        {
            var keyState = Keyboard.GetState();

            if (keyState.IsKeyDown(Key.Escape))
            {
                Exit();
            }
            if (keyState.IsKeyDown(Key.M))
            {
                GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Point);
            }
            if (keyState.IsKeyDown(Key.Comma))
            {
                GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line);
            }
            if (keyState.IsKeyDown(Key.Period))
            {
                GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill);
            }

            if (keyState.IsKeyDown(Key.A))
            {
                _player.MoveLeft();
            }
            if (keyState.IsKeyDown(Key.D))
            {
                _player.MoveRight();
            }
            if (!_gameOver && keyState.IsKeyDown(Key.Space) && _lastKeyboardState.IsKeyUp(Key.Space))
            {
                _gameObjects.Add(_gameObjectFactory.CreateBullet(_player.Position));
            }
            _lastKeyboardState = keyState;
        }
Esempio n. 2
0
        private void HandleKeyboard(double dt)
        {
            var keyState = Keyboard.GetState();

            if (keyState.IsKeyDown(Key.Escape))
            {
                Exit();
            }
            if (keyState.IsKeyDown(Key.M))
            {
                GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Point);
            }
            if (keyState.IsKeyDown(Key.Comma))
            {
                GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line);
            }
            if (keyState.IsKeyDown(Key.Period))
            {
                GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill);
            }

            if (keyState.IsKeyDown(Key.Number1))
            {
                _bulletType = Bullet.BulletType.Straight;
            }
            if (keyState.IsKeyDown(Key.Number2))
            {
                _bulletType = Bullet.BulletType.Wave;
            }
            if (keyState.IsKeyDown(Key.Number3))
            {
                _bulletType = Bullet.BulletType.Seeker;
            }
            if (keyState.IsKeyDown(Key.Number4))
            {
                _bulletType = Bullet.BulletType.SeekerExtra;
            }

            if (keyState.IsKeyDown(Key.A))
            {
                _player.MoveLeft();
            }
            if (keyState.IsKeyDown(Key.D))
            {
                _player.MoveRight();
            }
            if (!_gameOver && keyState.IsKeyDown(Key.Space) && _lastKeyboardState.IsKeyUp(Key.Space))
            {
                var bullet = _gameObjectFactory.CreateBullet(_player.Position, _bulletType);
                if (_bulletType == Bullet.BulletType.Seeker || _bulletType == Bullet.BulletType.SeekerExtra)
                {
                    var asteroids = _gameObjects.Where(x => x.GetType() == typeof(Asteroid)).ToList();
                    bullet.SetTarget((Asteroid)asteroids[bullet.GameObjectNumber % asteroids.Count]);
                }
                _gameObjects.Add(bullet);
            }
            _lastKeyboardState = keyState;
        }
Esempio n. 3
0
        private void HandleKeyboard(double dt)
        {
            var keyState = Keyboard.GetState();

            if (keyState.IsKeyDown(Key.Escape))
            {
                Exit();
            }
            if (keyState.IsKeyDown(Key.PageDown) && _lastKeyboardState.IsKeyUp(Key.PageDown))
            {
                ToggleFullscreen();
            }
            if (keyState.IsKeyDown(Key.M))
            {
                GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Point);
            }
            if (keyState.IsKeyDown(Key.Comma))
            {
                GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line);
            }
            if (keyState.IsKeyDown(Key.Period))
            {
                GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill);
            }

            if (keyState.IsKeyDown(Key.Number1))
            {
                _bulletType = Bullet.BulletType.Straight;
            }
            if (keyState.IsKeyDown(Key.Number2))
            {
                _bulletType = Bullet.BulletType.Wave;
            }
            if (keyState.IsKeyDown(Key.Number3))
            {
                _bulletType = Bullet.BulletType.Seeker;
            }
            if (keyState.IsKeyDown(Key.Number4))
            {
                _bulletType = Bullet.BulletType.SeekerExtra;
            }
            if (keyState.IsKeyDown(Key.T))
            {
                _useFirstPerson = false;
            }
            if (keyState.IsKeyDown(Key.F))
            {
                _useFirstPerson = true;
            }

            if (keyState.IsKeyDown(Key.A))
            {
                _player.MoveLeft();
            }
            if (keyState.IsKeyDown(Key.D))
            {
                _player.MoveRight();
            }
            if (!_gameOver && keyState.IsKeyDown(Key.Space) && _lastKeyboardState.IsKeyUp(Key.Space))
            {
                var bullet = _gameObjectFactory.CreateBullet(_player.Position, _bulletType);
                if (_bulletType == Bullet.BulletType.Seeker || _bulletType == Bullet.BulletType.SeekerExtra)
                {
                    var asteroids = _gameObjects.Where(x => x.GetType() == typeof(Asteroid)).ToList();
                    bullet.SetTarget((Asteroid)asteroids[bullet.GameObjectNumber % asteroids.Count]);
                    if (_useFirstPerson)
                    {
                        _camera = new FirstPersonCamera(bullet);
                    }
                    else
                    {
                        _camera = new ThirdPersonCamera(bullet, new Vector3(-0.3f, -0.3f, 0.1f));
                    }
                }
                _lastBullet = bullet;
                _gameObjects.Add(bullet);
            }
            _lastKeyboardState = keyState;
        }