This commit is contained in:
ALIENJACK\alien 2024-11-11 17:26:00 +08:00
commit bca708282b
4 changed files with 25 additions and 9 deletions

View File

@ -8,11 +8,10 @@ namespace AxiReplay
/// 客户端当前帧
/// </summary>
public int mCurrClientFrameIdx => mCurrReplay.FrameStartID;
//public int mCurrClientFrameIdx
/// <summary>
/// 服务器远端当前帧
/// </summary>
public int mRemoteFrameIdx { get; private set; } = -1;
public int mRemoteFrameIdx { get; private set; } = int.MinValue;
/// <summary>
/// 网络数据队列
/// </summary>
@ -34,9 +33,9 @@ namespace AxiReplay
mNetReplayQueue.Clear();
mRemoteFrameIdx = 0;
mCurrReplay = default(ReplayStep);
mCurrReplay.FrameStartID = 0;
mCurrReplay.FrameStartID = int.MinValue;
mNextReplay = default(ReplayStep);
mNextReplay.FrameStartID = -1;
mNextReplay.FrameStartID = 0;
}
public void InData(ReplayStep inputData, int ServerFrameIdx)
{
@ -52,10 +51,9 @@ namespace AxiReplay
{
inputDiff = false;
int targetFrame = mCurrClientFrameIdx + addFrame;
if (targetFrame >= mNextReplay.FrameStartID && targetFrame <= mRemoteFrameIdx && mNetReplayQueue.Count > 0)
if (targetFrame <= mNextReplay.FrameStartID + 1 && targetFrame <= mRemoteFrameIdx && mNetReplayQueue.Count > 0)
{
//当前帧追加
//mCurrClientFrameIdx = targetFrame;
ulong oldInput = mCurrReplay.InPut;
mCurrReplay = mNextReplay;
if (oldInput != mCurrReplay.InPut)

View File

@ -6,6 +6,7 @@ using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.Networking;
using static AxibugEmuOnline.Client.HttpAPI;
using static AxibugEmuOnline.Client.Manager.LogManager;
namespace AxibugEmuOnline.Client.ClientCore
{
@ -157,8 +158,21 @@ namespace AxibugEmuOnline.Client.ClientCore
App.log.Info("停止");
}
static void OnNoSugarNetLog(int LogLevel, string msg)
{
Debug.Log("[AxibugEmuOnline]:" + msg);
{
E_LogType logType =(E_LogType)LogLevel;
switch (logType)
{
case E_LogType.Debug:
case E_LogType.Info:
Debug.Log("[AxiEmu]:" + msg);
break;
case E_LogType.Warning:
Debug.LogWarning("[AxiEmu]:" + msg);
break;
case E_LogType.Error:
Debug.LogError("[AxiEmu]:" + msg);
break;
}
}
}

View File

@ -407,7 +407,7 @@ namespace AxibugEmuOnline.Client.Manager
void RecvHostSyn_RoomFrameAllInputData(byte[] reqData)
{
Protobuf_Room_Syn_RoomFrameAllInputData msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Syn_RoomFrameAllInputData>(reqData);
App.log.Debug($"ServerFrameID->{msg.ServerFrameID} FrameID->{msg.FrameID} ClientFrame->{netReplay.mCurrClientFrameIdx} InputData->{msg.InputData}");
//App.log.Debug($"ServerFrameID->{msg.ServerFrameID} FrameID->{msg.FrameID} ClientFrame->{netReplay.mCurrClientFrameIdx} InputData->{msg.InputData}");
netReplay.InData(new ReplayStep() { FrameStartID = (int)msg.FrameID, InPut = msg.InputData }, (int)msg.ServerFrameID);
}

View File

@ -104,6 +104,8 @@ namespace AxibugEmuOnline.Client
{
if (App.roomMgr.netReplay.TryGetNextFrame(out var replayData, out int frameDiff, out bool inputDiff))
{
App.log.Debug($"TryGetNextFrame remoteFrame->{App.roomMgr.netReplay.mRemoteFrameIdx} diff->{frameDiff} " +
$"frame=>{replayData.FrameStartID} InPut=>{replayData.InPut}");
m_sampledState = FromNet(replayData);
var localState = NesControllerMapper.Get().CreateState();
var rawData = ToNet(localState);
@ -111,6 +113,8 @@ namespace AxibugEmuOnline.Client
}
else
{
App.log.Error($"Server Lag remoteFrame->{App.roomMgr.netReplay.mRemoteFrameIdx} diff->{frameDiff} " +
$"frame=>{replayData.FrameStartID} InPut=>{replayData.InPut}");
m_sampledState = default;
}
}