示例#1
0
        /// <summary>
        /// カメラ視点の更新処理
        /// </summary>
        /// <param name="vm">カメラ視点モード</param>
        private void ViewpointUpdate(ViewpointMode vm)
        {
            Ode.Vector3 viewPos = new Ode.Vector3();		// 視点の位置(x, y, z)
            Ode.Vector3 viewDir = new Ode.Vector3();		// 視点の方向(ヘッド,ピッチ,ロール)

            // 車の位置行列・回転行列を取得
            Ode.Vector3 pos; ;
            Ode.Matrix3 R;
            _car.GetStatus(out pos, out R);

            switch (vm)
            {
                case ViewpointMode.Fixed:
                    break;

                case ViewpointMode.Trace:
                    viewPos.X = pos.X;
                    viewPos.Y = pos.Y;
                    viewPos.Z = 10.0f;
                    viewDir.X = 90.0f;
                    viewDir.Y = -90.0f;
                    viewDir.Z = 0.0f;
                    Ds.SetViewpoint(ref viewPos, ref viewDir);		// 視点の設定
                    break;

                case ViewpointMode.FirstPerson:
                    Real yaw = (float)Math.Atan2(R.M21, R.M11) / Ode.PI * 180.0f;

                    viewPos.X = pos.X;
                    viewPos.Y = pos.Y;
                    viewPos.Z = 0.5f;
                    viewDir.X = 90.0f - yaw;
                    viewDir.Y = 0.0f;
                    viewDir.Z = 0.0f;
                    Ds.SetViewpoint(ref viewPos, ref viewDir);		// 視点の設定
                    break;
            }
        }
示例#2
0
 public static warp_Vector Ode2DxVector3(Ode.Vector3 odeV)
 {
     return(new warp_Vector(( float )odeV.X, ( float )odeV.Y, ( float )odeV.Z));
 }
示例#3
0
        /// <summary>
        /// Drawstuffの初期視点設定
        /// </summary>
        private void InitializeViewpoint()
        {
            //Ode.Vector3 viewPos = new Ode.Vector3();		// 視点の位置(x, y, z)
            //viewPos.X = 0.0f;
            //viewPos.Y = 3.0f;
            //viewPos.Z = 1.0f;
            //Ode.Vector3 viewDir = new Ode.Vector3();		// 視点の方向(ヘッド,ピッチ,ロール)
            //viewDir.X = -90.0f;
            //viewDir.Y = 0.0f;
            //viewDir.Z = 0.0f;
            Ode.Vector3 viewPos = new Ode.Vector3();		// 視点の位置(x, y, z)
            viewPos.X = 0.0f;
            viewPos.Y = 0.0f;
            viewPos.Z = 10.0f;
            Ode.Vector3 viewDir = new Ode.Vector3();		// 視点の方向(ヘッド,ピッチ,ロール)
            viewDir.X = 90.0f;
            viewDir.Y = -90.0f;
            viewDir.Z = 0.0f;

            Ds.SetViewpoint(ref viewPos, ref viewDir);		// 視点の設定
        }