public override bool Init() { m_PlaySpeedMode = EPlaySpeedMode.E_Mul_1; m_Update_Frame = new UpdateTime(GameConstant.DeltaTimeF); m_Update_Frame.Evt_Act += Update_Frame; return(base.Init()); }
public override void Update() { ////////////////////////////////////////////////////////////////////////// ///*********************游戏播放器 if (m_IsStop) { return; } ////////////////////////////////////////////////////////////////////////// ////一秒播放60个逻辑帧,收到新的逻辑帧就刷新 /// ////触发追赶 if ((FrameCount + GameConstant.FrameTolerate) < m_PlayerRecoder.GetEndFrameId()) { m_PlaySpeedMode = EPlaySpeedMode.E_CatchUp; } else if ((FrameCount + GameConstant.Play_Mul4_Trg) < m_PlayerRecoder.GetEndFrameId()) { m_PlaySpeedMode = EPlaySpeedMode.E_Mul_4; } else if ((FrameCount + GameConstant.Play_Mul2_Trg) < m_PlayerRecoder.GetEndFrameId()) { m_PlaySpeedMode = EPlaySpeedMode.E_Mul_2; } else { m_PlaySpeedMode = EPlaySpeedMode.E_Mul_1; } if (PlaySpeedMode == EPlaySpeedMode.E_Mul_1) { GameFrameTurn(GameConstant.DeltaTimeF); } else if (PlaySpeedMode == EPlaySpeedMode.E_Mul_2) { Log.Debug("2加速-FrameCount:" + FrameCount + "---GetEndFrameId:" + m_PlayerRecoder.GetEndFrameId()); GameFrameTurn_Mul(GameConstant.Play_Mul_2); } else if (PlaySpeedMode == EPlaySpeedMode.E_Mul_4) { Log.Debug("4加速-FrameCount:" + FrameCount + "---GetEndFrameId:" + m_PlayerRecoder.GetEndFrameId()); GameFrameTurn_Mul(GameConstant.Play_Mul_4); } else //触发追赶播放 { Log.Debug("追赶加速-FrameCount:" + FrameCount + "---GetEndFrameId:" + m_PlayerRecoder.GetEndFrameId()); while (FrameCount < m_PlayerRecoder.GetEndFrameId()) { GameFrameTurn(GameConstant.DeltaTimeF); } } }