|
@@ -31,14 +31,15 @@ namespace ET.Client
|
|
|
FrameBuffer frameBuffer = room.FrameBuffer;
|
|
FrameBuffer frameBuffer = room.FrameBuffer;
|
|
|
long timeNow = TimeHelper.ServerFrameTime();
|
|
long timeNow = TimeHelper.ServerFrameTime();
|
|
|
Scene clientScene = room.GetParent<Scene>();
|
|
Scene clientScene = room.GetParent<Scene>();
|
|
|
- if (timeNow < room.FixedTimeCounter.FrameTime(frameBuffer.PredictionFrame))
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (timeNow < room.FixedTimeCounter.FrameTime(frameBuffer.PredictionFrame + 1))
|
|
|
{
|
|
{
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+ ++frameBuffer.PredictionFrame;
|
|
|
OneFrameMessages oneFrameMessages = GetOneFrameMessages(self, frameBuffer.PredictionFrame);
|
|
OneFrameMessages oneFrameMessages = GetOneFrameMessages(self, frameBuffer.PredictionFrame);
|
|
|
room.Update(oneFrameMessages, frameBuffer.PredictionFrame);
|
|
room.Update(oneFrameMessages, frameBuffer.PredictionFrame);
|
|
|
- ++frameBuffer.PredictionFrame;
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
FrameMessage frameMessage = NetServices.Instance.FetchMessage<FrameMessage>();
|
|
FrameMessage frameMessage = NetServices.Instance.FetchMessage<FrameMessage>();
|
|
|
frameMessage.Frame = oneFrameMessages.Frame;
|
|
frameMessage.Frame = oneFrameMessages.Frame;
|
|
@@ -65,8 +66,8 @@ namespace ET.Client
|
|
|
{
|
|
{
|
|
|
Room room = self.GetParent<Room>();
|
|
Room room = self.GetParent<Room>();
|
|
|
OneFrameMessages predictionFrame = room.FrameBuffer.GetFrame(frame);
|
|
OneFrameMessages predictionFrame = room.FrameBuffer.GetFrame(frame);
|
|
|
- OneFrameMessages preFrame = room.FrameBuffer.GetFrame(frame - 1);
|
|
|
|
|
- preFrame?.CopyTo(predictionFrame);
|
|
|
|
|
|
|
+ OneFrameMessages realFrame = room.FrameBuffer.GetFrame(room.FrameBuffer.RealFrame);
|
|
|
|
|
+ realFrame?.CopyTo(predictionFrame);
|
|
|
predictionFrame.Frame = frame;
|
|
predictionFrame.Frame = frame;
|
|
|
predictionFrame.Inputs[self.MyId] = self.Input;
|
|
predictionFrame.Inputs[self.MyId] = self.Input;
|
|
|
|
|
|