コード例 #1
0
        private void glCanvas1_KeyPress(object sender, KeyPressEventArgs e)
        {
            const float deltaDistance = 0.1f;
            ICamera     camera        = this.scene.Camera;

            if (e.KeyChar == 'w')
            {
                vec3 front = camera.GetFront();
                front.y        = 0;
                this.position += deltaDistance * front.normalize();
                SetDirection(this.movableRenderer, front);
            }
            else if (e.KeyChar == 's')
            {
                vec3 back = camera.GetBack();
                back.y         = 0;
                this.position += deltaDistance * back.normalize();
                SetDirection(this.movableRenderer, back);
            }
            else if (e.KeyChar == 'a')
            {
                vec3 left = camera.GetLeft();
                left.y         = 0;
                this.position += deltaDistance * left.normalize();
                SetDirection(this.movableRenderer, left);
            }
            else if (e.KeyChar == 'd')
            {
                vec3 right = camera.GetRight();
                right.y        = 0;
                this.position += deltaDistance * right.normalize();
                SetDirection(this.movableRenderer, right);
            }
            else if (e.KeyChar == 'r')
            {
                this.position = new vec3(0, 0, 0);
            }

            this.movableRenderer.WorldPosition = this.position;

            this.lblCubePosition.Text = string.Format("Cube Pos: {0}", this.position);
        }