/// private メソッド ///--------------------------------------------------------------------------- /// Y軸ビルボード用姿勢セット protected void setBillboardMatrixY(DemoGame.Camera camera) { Vector3 look = (camera.Pos - BasePos); look.Y = 0.0f; Common.MatrixUtil.LookTrgVec(ref BaseMtx, look); objFix.SetMatrixNoUpdate(BaseMtx); }
/// Y軸ビルボード用姿勢セット private void SetBillboardMatrixY(DemoGame.Camera camera) { Vector3 look = camera.Pos - BasePos; look.Y = 0.0f; Common.MatrixUtil.LookTrgVec(ref BaseMtx, look); objMark.SetMatrix(BaseMtx); }
/// Y軸ビルボード用姿勢セット protected void SetBillboardMatrixY(DemoGame.Camera camera) { Vector3 look = (camera.Pos - BasePos); look.Y = 0.0f; Common.MatrixUtil.LookTrgVec(ref BaseMtx, look); SetPlace(BaseMtx); }
/// private ///--------------------------------------------------------------------------- /// ビルボード用姿勢セット private void SetBillboardMatrix(DemoGame.Camera camera) { Common.MatrixUtil.LookTrgVec(ref BaseMtx, camera.Pos - BasePos); objMark.SetMatrix(BaseMtx); Matrix4 mtx = objMark.Mtx; mtx.M41 = BaseMtx.M41 + BaseMtx.M31 * 2.0f; mtx.M42 = BaseMtx.M42 + BaseMtx.M32 * 2.0f; mtx.M43 = BaseMtx.M43 + BaseMtx.M33 * 2.0f; objMark.SetMatrix(mtx); }
/// 登録開始 public void EntryStart() { DemoGame.Camera camCore = GameCtrlManager.GetInstance().CtrlCam.GetCurrentCameraCore(); Matrix4 mtx = camCore.View.Inverse(); Common.MatrixUtil.SetTranslate(ref mtx, camCore.Pos); cullingShape.SetMult(mtx); camPos = GameCtrlManager.GetInstance().CtrlCam.GetCamTrgPos(); clear(); }
/// デバック用 ///--------------------------------------------------------------------------- /// デバック用:描画 public void Draw(DemoGame.GraphicsDevice graphDev, Rgba color) { DemoGame.RenderGeometry drawTri = new DemoGame.RenderGeometry(); drawTri.MakeTriangle(); DemoGame.Camera camera = graphDev.GetCurrentCamera(); for (int i = 0; i < EntryNum; i++) { drawTri.DrawTriangle(graphDev.Graphics, Triangle[i], camera, color); } drawTri = null; }
/// private メソッド ///--------------------------------------------------------------------------- /// デバック用 ///--------------------------------------------------------------------------- /// デバック用:描画 public void Draw(DemoGame.GraphicsDevice graphDev, int hitIdx, Rgba color1, Rgba color2) { DemoGame.RenderGeometry drawSph = new DemoGame.RenderGeometry(); drawSph.MakeSphere(); DemoGame.Camera camera = graphDev.GetCurrentCamera(); if (hitIdx < 0) { drawSph.DrawSphere(graphDev.Graphics, this.Sphre, camera, color1); } else { drawSph.DrawSphere(graphDev.Graphics, this.Sphre, camera, color2); } drawSph = null; }
/// カメラとプレイヤーとの位置関係をセット private void setCamPlBehindFlg() { DemoGame.Camera camCore = GameCtrlManager.GetInstance().CtrlCam.GetCurrentCameraCore(); Vector3 plVec; plVec.X = actorCh.BaseMtx.M31; plVec.Y = actorCh.BaseMtx.M32; plVec.Z = actorCh.BaseMtx.M33; float dot = camCore.LookVec.Dot(plVec); if (dot > 0.0f) { AppInput.GetInstance().SetPlBehind(true); } else { AppInput.GetInstance().SetPlBehind(false); } }
/// 破棄 public override void DoTerm() { camCore = null; }
/// 継承メソッド ///--------------------------------------------------------------------------- /// 初期化 public override bool DoInit() { camCore = new DemoGame.Camera(); return true; }
/// 継承メソッド ///--------------------------------------------------------------------------- /// 初期化 public override bool DoInit() { camCore = new DemoGame.Camera(); return(true); }
/// 開始 public void Start() { DemoGame.Camera camCore = GameCtrlManager.GetInstance().CtrlCam.GetCurrentCameraCore(); cullingShape.Set(camCore.Projection.Inverse()); }
/// protected メソッド ///--------------------------------------------------------------------------- /// ビルボード用姿勢セット protected void SetBillboardMatrix(DemoGame.Camera camera) { Common.MatrixUtil.LookTrgVec(ref BaseMtx, (camera.Pos - BasePos)); SetPlace(BaseMtx); }