public void Initialize(SphereCamera sphereCamera, Transform cameraFollow, InputDebugView inputDebugView)
 {
     _sphereCamera = sphereCamera;
     _cameraFollow = cameraFollow;
     _inputDebugView = inputDebugView;
     enabled = true;
 }
Exemple #2
0
    protected bool onGround; //是否在地面

    //初始化
    public virtual void OnInit()
    {
        manager  = GetComponent <PlayerStateManager>();
        particle = GetComponent <PlayerParticle>();
        animator = GetComponent <Animator>();
        rigid    = GetComponent <Rigidbody>();
        cc       = GetComponent <CharacterController>();
        player   = GetComponent <PlayerCharacter>();
        camera   = Camera.main.GetComponent <SphereCamera>();
    }
Exemple #3
0
        protected override void OnLoad(EventArgs e)
        {
            _spheres = new List <Sphere> {
                new Sphere(Vector3.Zero, _sRadius, _sDensity)
            };

            _camera        = new SphereCamera(Width, Height, _spheres[0], StandEyeLevel);
            _camera.SkyBox = Starfield.Generate(_sSkySeed, 1024, 4);

            _frameTimer         = new Stopwatch();
            _lastPosUpdateTimer = new Stopwatch();

            _frameTimer.Start();
            _lastPosUpdateTimer.Start();

            _frameCounter = 0;

            Mouse.Move += (sender, me) => {
                if (!Focused || !_captureMouse)
                {
                    return;
                }

                var centre = new Point(Bounds.Left + Width / 2, Bounds.Top + Height / 2);

                if (WFCursor.Position.X == centre.X && WFCursor.Position.Y == centre.Y)
                {
                    return;
                }

                _camera.Yaw   += (WFCursor.Position.X - centre.X) / 360f;
                _camera.Pitch += (WFCursor.Position.Y - centre.Y) / 360f;

                _camera.Pitch = Tools.Clamp(_camera.Pitch, -MathHelper.PiOver2, MathHelper.PiOver2);

                WFCursor.Position = centre;
            };

            Mouse.ButtonUp += (sender, me) => {
                if (_captureMouse)
                {
                    return;
                }

                _captureMouse = true;
                WFCursor.Hide();
            };

            Keyboard.KeyDown += (sender, ke) => {
                switch (ke.Key)
                {
                case Key.Escape:
                    _captureMouse = !_captureMouse;
                    if (_captureMouse)
                    {
                        WFCursor.Hide();
                    }
                    else
                    {
                        WFCursor.Show();
                    }
                    break;

                case Key.Space:
                    if (_camera.Altitude <= _camera.EyeHeight)
                    {
                        _camera.Jump(8f);
                    }
                    break;

                case Key.F11:
                    if (WindowState == WindowState.Fullscreen)
                    {
                        WindowState = WindowState.Normal;
                    }
                    else
                    {
                        WindowState = WindowState.Fullscreen;
                    }
                    break;

                case Key.F12:
                    _takeScreenShot = true;
                    break;
                }
            };
        }