private void LinearInterpolateUpdateToState(GameStatePacket statePacket1, GameStatePacket statePacket2, long targetSequence) { float weight = (targetSequence - statePacket1.Sequence) / (statePacket2.Sequence - statePacket1.Sequence); for (int i = 0; i < smackers.Count(); i++) { smackers[i].EnumeratedState = statePacket2.Smackers[i].Item2; smackers[i].Position = Vector2.Lerp(statePacket1.Smackers[i].Item3, statePacket2.Smackers[i].Item3, weight); } }
private void UpdateToState(GameStatePacket statePacket) { for (int i = 0, len = smackers.Count(); i < len; i++) { if(smackers[i].smackerID == statePacket.Smackers[i].Item1) { smackers[i].EnumeratedState = statePacket.Smackers[i].Item2; smackers[i].Position = statePacket.Smackers[i].Item3; } else { Console.WriteLine("Network ordering error."); } } }
public static Packet ReadPacket(Stream stream) { var packetType = stream.ReadByte(); Packet packet = null; if (packetType == 1) { packet = new QueueInteractionPacket(); } if (packetType == 2) { packet = new QueueStatusUpdatePacket(); } if (packetType == 3) { packet = new QueueFinishedPacket(); } if (packetType == 4) { packet = new GameServerConnectPacket(); } if (packetType == 5) { packet = new GameServerAcceptedJoinPacket(); } if (packetType == 6) { packet = new GameServerFinishedPacket(); } if(packetType == 7) { packet = new GameStatePacket(); } packet.ReadPacketData(stream); return packet; }