LSHelper.cs 758 B

12345678910111213141516171819202122232425
  1. namespace ET
  2. {
  3. public static class LSHelper
  4. {
  5. // 回滚
  6. public static void Rollback(Room self, int frame)
  7. {
  8. Log.Debug($"Room Scene roll back to {frame}");
  9. self.LSWorld.Dispose();
  10. FrameBuffer frameBuffer = self.FrameBuffer;
  11. // 回滚
  12. self.LSWorld = frameBuffer.GetLSWorld(frame);
  13. // 从回滚的地方重新执行预测的帧
  14. for (int i = frameBuffer.RealFrame + 1; i < frameBuffer.PredictionFrame; ++i)
  15. {
  16. OneFrameMessages oneFrameMessages = frameBuffer.GetFrame(i);
  17. self.Update(oneFrameMessages);
  18. }
  19. RollbackHelper.Rollback(self);
  20. }
  21. }
  22. }