对战初步完成
This commit is contained in:
1 parent
b0c0890ca3
commit
509c309252
55 files changed
+7079
-6748
No files matched your search
@@ -105,8 +105,8 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
}
|
||||
protected override void ShowLoading()
|
||||
{
|
||||
loadingPanel = panel.transform.Find("LoadingPanel").gameObject;
|
||||
loadingPanel.showLoadingExtension();
|
||||
//loadingPanel = panel.transform.Find("LoadingPanel").gameObject;
|
||||
//loadingPanel.showLoadingExtension();
|
||||
}
|
||||
//初始化
|
||||
public override void Init()
|
||||
@@ -290,7 +290,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
Application.OpenURL(App.CurrentUser.WebHost + $"Mine/MatchPreview?id={cyclingController.competitionId}&Token={App.CurrentUser.cookie}");
|
||||
}
|
||||
protected override void StartRide(BaseEventData baseEvent)
|
||||
public override void StartRide(BaseEventData baseEvent)
|
||||
{
|
||||
UpdateCompetition();
|
||||
if (competition.Status == 4)
|
||||
|
||||
@@ -105,7 +105,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
||||
MapUDPService.Send(route.RouteInstance.Id, recorderData.BelongUserId,
|
||||
new double[] { lastData._Lat, lastData._Lon },
|
||||
recorderData.IsCompleted, false, recorderData.EndDistance,
|
||||
true, 1, lastData._Speed, false, preDistance, weightKg, competitionId: recorderData.Competitionid, recorderData.Saved, 0, lastData._Power, lastData._Cadence, lastData.Ticks, (lastData._FrameRate??0));
|
||||
true, 1, lastData._Speed, false, preDistance, weightKg, competitionId: recorderData.Competitionid, recorderData.Saved, 0, lastData._Power, lastData._Cadence, lastData.Ticks, (lastData._FrameRate??0),roomId: (recorderData.RoomId??0));
|
||||
}
|
||||
else if (recorderData.EndDistance > 0)//没有骑,但是有初始位置的情况
|
||||
{
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
using Assets.Scenes.Ride.Scripts.Model.RiderModels;
|
||||
using Assets.Scripts.Apis.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
||||
{
|
||||
public class GameModel : BaseCycling
|
||||
{
|
||||
public GameModel(Route route,RouteResultParam param)
|
||||
: base(route, CyclingModel.Single)
|
||||
{
|
||||
this.IsRecord = true;
|
||||
recorderData = new RecorderDataModel()
|
||||
{
|
||||
CurrentUser = App.CurrentUser,
|
||||
Competitionid = 0,
|
||||
ContinueIndex = 0,
|
||||
ContinueMark = Guid.NewGuid().ToString(),
|
||||
EndDistance = 0,
|
||||
IsCompleted = false,
|
||||
IsNeedRanking = true,
|
||||
CyclingState = CyclingStateEnum.Prepare,
|
||||
CurrentRoute = route,
|
||||
CurrentRouteStartDistance = 0,
|
||||
StartTime = DateTime.Now,//UIManager.Now.GetDateTime(),//DateTime.Now
|
||||
selectParam = param,
|
||||
RoomId = App.gameRoomDetail.RoomId,
|
||||
};
|
||||
|
||||
if (param != null)
|
||||
{
|
||||
recorderData.EndDistance = param.EndDistance;
|
||||
recorderData.CurrentRouteStartDistance = param.EndDistance;
|
||||
if (!string.IsNullOrWhiteSpace(param.ContinueMark))
|
||||
{
|
||||
recorderData.ContinueMark = param.ContinueMark;
|
||||
}
|
||||
else
|
||||
{
|
||||
param.ContinueMark = recorderData.ContinueMark;
|
||||
}
|
||||
recorderData.ContinueIndex = param.ContinueIndex.GetValueOrDefault(0);
|
||||
}
|
||||
|
||||
recorderData.PreDistance = recorderData.EndDistance;
|
||||
|
||||
riders = new List<BaseRider>();
|
||||
}
|
||||
|
||||
public override void Run(TargetData targetData)
|
||||
{
|
||||
#region 获取当前路线在线用户
|
||||
riders.RemoveAll(r => r.IsSelf == false);
|
||||
var onlineUsers = MapUDPService.GetOnlineUsers(recorderData.CurrentRoute.RouteInstance.Id,App.gameRoomDetail.RoomId).Where(d => d.IsSelf == false)
|
||||
.ToList();
|
||||
foreach (var item in onlineUsers)
|
||||
{
|
||||
riders.Add(new OnlineRiderModel()
|
||||
{
|
||||
NickName = item.Name,
|
||||
UserId = item.Id,
|
||||
WxHeadImg = item.HeadImage,
|
||||
Point = new GeoJSON.Net.Geometry.GeographicPosition(item.Point[0], item.Point[1]),
|
||||
EndDistance = item.EndDistance,
|
||||
PreDistance = item.PreDistance,
|
||||
WeightKg = item.WeightKg,
|
||||
FrameRate = item.FrameRate,
|
||||
});
|
||||
}
|
||||
|
||||
#endregion
|
||||
base.Run(targetData);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 15c731fec2d5df74c8881a2cefe75fb6
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -30,7 +30,11 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
/// <summary>
|
||||
/// 环球骑行
|
||||
/// </summary>
|
||||
GlobalCycling = 4
|
||||
GlobalCycling = 4,
|
||||
/// <summary>
|
||||
/// 对战模式
|
||||
/// </summary>
|
||||
GameRoom = 5
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using GeoJSON.Net.Geometry;
|
||||
using Assets.Scripts.Apis.Models;
|
||||
using GeoJSON.Net.Geometry;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
@@ -41,6 +42,23 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
return detail;
|
||||
}
|
||||
}
|
||||
public class ExtendInfo
|
||||
{
|
||||
public int RoomId { get; set; }
|
||||
public int UserId { get; set; }
|
||||
public static ExtendInfo Parse(string s)
|
||||
{
|
||||
if (string.IsNullOrEmpty(s))
|
||||
return null;
|
||||
var info = s.Split(',');
|
||||
var ex = new ExtendInfo()
|
||||
{
|
||||
UserId = Convert.ToInt32(info[0]),
|
||||
RoomId = Convert.ToInt32(info[1]),
|
||||
};
|
||||
return ex;
|
||||
}
|
||||
}
|
||||
public class RoomDetailModel
|
||||
{
|
||||
public int RoomId { get; set; }
|
||||
@@ -70,6 +88,57 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
return detail;
|
||||
}
|
||||
}
|
||||
public class QueryGameRoomListCommand
|
||||
{
|
||||
public byte CommandType { get; set; }
|
||||
public byte SubType { get; set; }
|
||||
public int V { get; set; }
|
||||
public int UserId { get; set; }
|
||||
public int PageIndex { get; set; }
|
||||
public int PageSize { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
public class QueryGameRoomDetailCommand
|
||||
{
|
||||
public byte CommandType { get; set; }
|
||||
public byte SubType { get; set; }
|
||||
public int V { get; set; }
|
||||
public int RoomId { get; set; }
|
||||
}
|
||||
public class CreateGameRoomCommand
|
||||
{
|
||||
public byte CommandType { get; set; }
|
||||
public byte SubType { get; set; }
|
||||
public int V { get; set; }
|
||||
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public int RouteId { get; set; }
|
||||
|
||||
public int UserId { get; set; }
|
||||
|
||||
public int CloseTime { get; set; }
|
||||
|
||||
public int MaxMembers { get; set; }
|
||||
|
||||
public string Password { get; set; }
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
public string MapRouteName { get; set; }
|
||||
public double Distance { get; set; }
|
||||
public double TotalClimb { get; set; }
|
||||
public double AverageGrade { get; set; }
|
||||
public bool Enable3D { get; set; }
|
||||
public bool EnableAR { get; set; }
|
||||
public bool IsLock { get; set; }
|
||||
public string FileName { get; set; }
|
||||
public string FileUrl { get; set; }
|
||||
public string AltitudeGraph { get; set; }
|
||||
|
||||
}
|
||||
public class JoinGameRoomCommand
|
||||
{
|
||||
public byte CommandType { get; set; }
|
||||
@@ -444,7 +513,9 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
|
||||
public int FrameRate { get; set; }
|
||||
public int RoomId { get; set; }
|
||||
public string Model { get; set; }
|
||||
public DateTime? StartTime { get; set; }
|
||||
public string Request { get; set; }
|
||||
}
|
||||
|
||||
public class GzipMsgModel
|
||||
@@ -507,9 +578,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
|
||||
public int? FrameRate { get; set; }
|
||||
public int? RoomId { get; set; }
|
||||
public RoomModel Room{ get; set; }
|
||||
public RoomDetailModel RoomDetail { get; set; }
|
||||
public DateTime? StartTime { get; set; }
|
||||
public List<GameRoomModel> RoomList { get; set; }
|
||||
public GameRoomModel RoomDetail { get; set; }
|
||||
|
||||
public static ReceiveMsgModel Parse(string str)
|
||||
{
|
||||
@@ -543,9 +613,6 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
HeartRate = Convert.ToDouble(list[11], CultureInfo.InvariantCulture),
|
||||
Cadence = Convert.ToDouble(list[12], CultureInfo.InvariantCulture),
|
||||
TotoalTicks = Convert.ToInt32(list[13], CultureInfo.InvariantCulture),
|
||||
FrameRate = Convert.ToInt32(list[14], CultureInfo.InvariantCulture),
|
||||
//RoomId = Convert.ToInt32(list[15], CultureInfo.InvariantCulture),
|
||||
//StartTime = startTime,
|
||||
};
|
||||
}
|
||||
catch(Exception e)
|
||||
@@ -580,6 +647,7 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
return "Online-" + this.Id;
|
||||
}
|
||||
}
|
||||
public int Sex { get; set; }
|
||||
|
||||
public bool IsVirtual { get; set; }
|
||||
/// <summary>
|
||||
@@ -680,6 +748,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
|
||||
public int? FrameRate { get; set; }
|
||||
|
||||
public int RoomId { get; set; }
|
||||
|
||||
public RoomModel Room { get; set; }
|
||||
|
||||
public RoomDetailModel RoomDetail { get; set; }
|
||||
|
||||
@@ -106,6 +106,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
public DateTime EndTime { get; set; }
|
||||
|
||||
public int? LastFrame { get; set; }
|
||||
|
||||
public int? RoomId { get; set; }
|
||||
/// <summary>
|
||||
/// 是否已经保存成功
|
||||
/// </summary>
|
||||
@@ -180,7 +182,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
Param = Newtonsoft.Json.JsonConvert.SerializeObject(selectParam),
|
||||
GlobalCyclingId = 0,
|
||||
Source = "",
|
||||
LastFrame = LastFrame
|
||||
LastFrame = LastFrame,
|
||||
RoomId = RoomId
|
||||
};
|
||||
//var range = new MapSpeedRange().GetSpeedRange(RiderDatas, CurrentRoute.RouteInstance.Distance);
|
||||
interruptRecord.SpeedRange = null; //JsonConvert.SerializeObject(range);
|
||||
|
||||
@@ -41,6 +41,8 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
}
|
||||
private static DateTime LastActiveTime = DateTime.Now;
|
||||
private static List<ReceiveMsgModel> msgs = new List<ReceiveMsgModel>();
|
||||
|
||||
public static Action<List<ReceiveMsgModel>> MessageListener { get; set; }
|
||||
/// <summary>
|
||||
/// 初始化(如果UDP服务未启动,则会已没5秒一次不断尝试,直到连接上为止,前端不需要考虑任何UDP连接的事情)
|
||||
/// </summary>
|
||||
@@ -61,9 +63,10 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
_udpService.Start(list =>
|
||||
{
|
||||
LastActiveTime = DateTime.Now;
|
||||
//onlineUserHelper.RemoveExceptionData(list);
|
||||
msgs = list;
|
||||
//onlineUserHelper.RemoveExceptionData(list);
|
||||
msgs = list;
|
||||
onlineUserHelper.SetOnlineUser(msgs);
|
||||
MessageListener?.Invoke(list);
|
||||
});
|
||||
|
||||
heartbeat = new System.Timers.Timer();
|
||||
@@ -109,18 +112,48 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
SendHeartbeat();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//获取房间人物列表
|
||||
private static void SendGameRoomListPlayers(int[] roomIds)
|
||||
//查询房间
|
||||
public static void SendQueryGameRoomList(int userId,int pageIndex,int pageSize,string roomIdOrName)
|
||||
{
|
||||
var model = new
|
||||
var cmd = new QueryGameRoomListCommand()
|
||||
{
|
||||
UserId = userId,
|
||||
PageIndex = pageIndex,
|
||||
PageSize = pageSize,
|
||||
Name = roomIdOrName,
|
||||
CommandType = 3,
|
||||
SubType = 6,
|
||||
V = 2,
|
||||
};
|
||||
var sendBytes = Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(cmd));
|
||||
_udpService.Send(sendBytes, sendBytes.Length);
|
||||
}
|
||||
//创建房间
|
||||
public static void SendCreateGameRoom(string name, int routeId, string pwd, DateTime createTime , int closeTime, int maxMembers,double averageGrade,double totalClimb,double distance,bool enable3D,bool enableAR,string mapName,string fileName,string fileUrl,string altitudeGraph)
|
||||
{
|
||||
var cmd = new CreateGameRoomCommand() {
|
||||
Id = 0,
|
||||
UserId = App.CurrentUser.Id,
|
||||
Name = name,
|
||||
RouteId = routeId,
|
||||
Password = pwd,
|
||||
CreateTime = createTime,
|
||||
CloseTime = closeTime,
|
||||
MaxMembers= maxMembers,
|
||||
MapRouteName = mapName,
|
||||
EnableAR = enableAR,
|
||||
Enable3D = enable3D,
|
||||
Distance = distance,
|
||||
TotalClimb = totalClimb,
|
||||
AverageGrade = averageGrade,
|
||||
AltitudeGraph = altitudeGraph,
|
||||
FileName = fileName,
|
||||
FileUrl = fileUrl,
|
||||
CommandType = 3,
|
||||
SubType = 0,
|
||||
V = 2,
|
||||
};
|
||||
var sendBytes = Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(model));
|
||||
var sendBytes = Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(cmd));
|
||||
_udpService.Send(sendBytes, sendBytes.Length);
|
||||
}
|
||||
//加入对战房间
|
||||
@@ -130,8 +163,8 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
CommandType = 3,
|
||||
SubType = 1,
|
||||
UserId = userId,
|
||||
RoomId = roomId,
|
||||
UserId = userId,
|
||||
JoinAt = startTime,
|
||||
V = 2,
|
||||
};
|
||||
@@ -280,13 +313,13 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
/// <param name="exit">是否退出</param>
|
||||
public static void Send(int RouteId, int MemberId, double[] Point, bool IsCompleted = false, bool exit = false,
|
||||
double endDistance = 0, bool showVirtual = false, byte commandType = 1, double speed = 0, bool isVirtual = false, double preDistance = 0,
|
||||
double weightKg = 0, int competitionId = 0, bool saved = false,double? heartRate = 0, double power = 0, double? cadence = 0,int totalTicks = 0, int frameRate = 0, int roomId = 0,DateTime? startTime = null)
|
||||
double weightKg = 0, int competitionId = 0, bool saved = false,double? heartRate = 0, double power = 0, double? cadence = 0,int totalTicks = 0, int frameRate = 0, int roomId = 0,string model = "",DateTime? startTime = null,string request = "")
|
||||
{
|
||||
try
|
||||
{
|
||||
Point[0] = Math.Round(Point[0], 6, MidpointRounding.AwayFromZero);
|
||||
Point[1] = Math.Round(Point[1], 6, MidpointRounding.AwayFromZero);
|
||||
var model = new MsgModel
|
||||
var msgmodel = new MsgModel
|
||||
{
|
||||
RouteId = RouteId,
|
||||
MemberId = MemberId,
|
||||
@@ -309,11 +342,13 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
Competitionid = competitionId,
|
||||
Saved = saved,
|
||||
FrameRate = frameRate,
|
||||
RoomId = roomId,//房间Id
|
||||
StartTime = startTime
|
||||
RoomId = roomId,
|
||||
Model = model,//是否在对战房间列表或者房间内
|
||||
StartTime = startTime,
|
||||
Request = request,
|
||||
//V = 1
|
||||
};
|
||||
var sendBytes = Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(model));
|
||||
var sendBytes = Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(msgmodel));
|
||||
_udpService.Send(sendBytes, sendBytes.Length);
|
||||
|
||||
}
|
||||
@@ -331,7 +366,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
if (MapUDPService._udpService == null) return;
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
Send(0, App.CurrentUser.Id, new double[] { 1, 1 }, true, isExit);
|
||||
Send(0, App.CurrentUser.Id, new double[] { 1, 1 }, true, isExit,model:App.Model);
|
||||
}
|
||||
_udpService.Close();
|
||||
|
||||
@@ -417,6 +452,13 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
return result;
|
||||
}
|
||||
|
||||
public static List<OnlineUser> GetOnlineUsers(int routeId,int roomId)
|
||||
{
|
||||
var result = onlineUserHelper.OnlineUsers.Where(u => u.RoomId == roomId && u.RouteId == routeId).ToList();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static List<OnlineUser> GetAllOnlineUserList()
|
||||
{
|
||||
var result = onlineUserHelper.OnlineUsers.Where(c => !c.IsSelf).ToList();
|
||||
@@ -438,12 +480,12 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
return result;
|
||||
}
|
||||
|
||||
public static int GetNearRiderCount()
|
||||
public static int GetNearRiderCount(int roomId = 0)
|
||||
{
|
||||
int count = 0;
|
||||
try
|
||||
{
|
||||
count = onlineUserHelper.OnlineUsers.Where(c => (c.Point[0] != 0 && c.Point[1] != 0) && (c.Point[0] != -1 && c.Point[1] != -1)).Count();
|
||||
count = onlineUserHelper.OnlineUsers.Where(c => (c.Point[0] != 0 && c.Point[1] != 0) && (c.Point[0] != -1 && c.Point[1] != -1) && c.RoomId == roomId).Count();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
@@ -469,13 +511,13 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
/// 获取附近的人(当前在线的所有人)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static IList<NearRiderModel> GetNearRiderData(int pageIndex, int pageSize = 5, double[] point = null)
|
||||
public static IList<NearRiderModel> GetNearRiderData(int pageIndex, int pageSize = 5, double[] point = null,int roomId = 0)
|
||||
{
|
||||
if (point == null) return null;
|
||||
try
|
||||
{
|
||||
var dict = new List<System.Tuple<double, OnlineUser>>();
|
||||
var allOnlineUsers = onlineUserHelper.OnlineUsers.Where(c => c.CompetitionId == 0);
|
||||
var allOnlineUsers = onlineUserHelper.OnlineUsers.Where(c => c.CompetitionId == 0 && c.RoomId == roomId);
|
||||
foreach (var item in allOnlineUsers)
|
||||
{
|
||||
if (item.Id == App.CurrentUser.Id)
|
||||
@@ -580,7 +622,6 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
}
|
||||
user.LastActiveTime = DateTime.Now;
|
||||
user.RouteId = item.RouteId;
|
||||
|
||||
user.Point = item.Point;
|
||||
user.IsCompleted = item.IsCompleted;
|
||||
//user.exit = item.exit;
|
||||
@@ -606,8 +647,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
user.IsWatcher = user.WatcherList.Contains(item.MemberId);
|
||||
user.CreateTime = DateTime.MaxValue;
|
||||
user.FrameRate = item.FrameRate;
|
||||
user.Room = item.Room;
|
||||
user.RoomDetail = item.RoomDetail;
|
||||
user.RoomId = (item.RoomId ?? 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -12,6 +12,7 @@ using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using NetCoreServer;
|
||||
using Assets.Scripts.Apis.Models;
|
||||
|
||||
namespace Assets.Scenes.Ride.Scripts.Network
|
||||
{
|
||||
@@ -46,7 +47,7 @@ namespace Assets.Scenes.Ride.Scripts.Network
|
||||
if (_tcpClient == null) return;
|
||||
if (_tcpClient.IsConnected == false) return;
|
||||
//_tcpClient.WriteLine(System.Text.Encoding.ASCII.GetString(dgram));
|
||||
var txt = System.Text.Encoding.ASCII.GetString(dgram);
|
||||
var txt = System.Text.Encoding.UTF8.GetString(dgram);
|
||||
//Debug.WriteLine("发送:"+txt);
|
||||
try
|
||||
{
|
||||
@@ -199,28 +200,29 @@ namespace Assets.Scenes.Ride.Scripts.Network
|
||||
//房间信息
|
||||
if (t.IndexOf('g') == 0)
|
||||
{
|
||||
RoomModel room = null;
|
||||
var x = t.Replace("g{", "").Replace("}", "");
|
||||
room = RoomModel.Parse(x);
|
||||
//list[0,0,321313,30,5,5492,福州化工路-鼓山峰爬坡线路,19.17906,815.9704000000002,4.0466336723489045,True,False,True,213,,,http://192.168.0.102:5082/Map/AltitudeGraph?id=5492,0,:][0,0,2131,30,4,5492,福州化工路-鼓山峰爬坡线路,19.17906,815.9704000000002,4.0466336723489045,True,False,True,313,,,http://192.168.0.102:5082/Map/AltitudeGraph?id=5492,0,:][20,16652,3213,30,3,5492,福州化工路-鼓山峰爬坡线路,19.17906,815.9704000000002,4.0466336723489045,True,False,True,,,,http://192.168.0.102:5082/Map/AltitudeGraph?id=5492,0,2022/5/6 8:41:34:][19,16652,测试3d线路,30,2,5492,福州化工路-鼓山峰爬坡线路,19.17906,815.9704000000002,4.0466336723489045,True,False,True,,,,http://192.168.0.102:5082/Map/AltitudeGraph?id=5492,0,2022/5/6 1:39:57:][18,16652,测试,61,2,5492,福州化工路-鼓山峰爬坡线路,19.17906,815.9704000000002,4.0466336723489045,True,False,True,,,,http://192.168.0.102:5082/Map/AltitudeGraph?id=5492,0,2022/4/25 2:34:03:][17,16652,213,30,3,1217,翠屏山后山北向南,5.271609999999998,65.22760000000001,0.23308249282477278,False,False,True,,,,http://192.168.0.102:5082/Map/AltitudeGraph?id=1217,0,2022/4/25 2:20:13:]
|
||||
var li = GameRoomModel.Parse(x);
|
||||
foreach (var i in list)
|
||||
{
|
||||
i.Room = room;
|
||||
i.RoomList = li;
|
||||
}
|
||||
}
|
||||
//房间用户信息
|
||||
if (t.IndexOf('d') == 0)
|
||||
//对战骑行场景中信息
|
||||
if (t.IndexOf('e') == 0)
|
||||
{
|
||||
var g = t.Replace("d{", "").Replace("}", "");
|
||||
var g = t.Replace("e{", "").Replace("}", "");
|
||||
var glist = g.Split('|');
|
||||
|
||||
|
||||
foreach (var i in glist)
|
||||
{
|
||||
var gameRoom = RoomDetailModel.Parse(i);
|
||||
var owner = list.Where(c => c.MemberId == gameRoom.UserId).FirstOrDefault();
|
||||
if (string.IsNullOrEmpty(i))
|
||||
continue;
|
||||
var extendInfo = ExtendInfo.Parse(i);
|
||||
var owner = list.Where(c => c.MemberId == extendInfo.UserId).FirstOrDefault();
|
||||
if (owner != null)
|
||||
{
|
||||
owner.RoomDetail = gameRoom;
|
||||
owner.RoomId = extendInfo.RoomId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,12 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
App.TextureCache.Clear();
|
||||
mapApi = new MapApi();
|
||||
//ShowLoading();
|
||||
ShowLoading();
|
||||
}
|
||||
|
||||
public float GetProcess()
|
||||
{
|
||||
return process;
|
||||
}
|
||||
|
||||
protected virtual void Update()
|
||||
@@ -195,7 +200,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
cyclingController.ReSetUIManager();
|
||||
cyclingController.GoContinueRide();
|
||||
}
|
||||
protected virtual void StartRide(BaseEventData baseEvent)
|
||||
public virtual void StartRide(BaseEventData baseEvent)
|
||||
{
|
||||
if (!rideNow.IsInteractable())
|
||||
return;
|
||||
@@ -207,6 +212,16 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
|
||||
StartGame();
|
||||
}
|
||||
|
||||
public void StartRide(int seconds)
|
||||
{
|
||||
processText.gameObject.SetActive(true);
|
||||
slider.gameObject.SetActive(true);
|
||||
depressFlag = true;
|
||||
slider.DOValue(process, 0);
|
||||
StartGame();
|
||||
transform.gameObject.SetActive(false);
|
||||
}
|
||||
protected virtual void Cancel(BaseEventData baseEvent)
|
||||
{
|
||||
SceneManager.LoadScene("MainScene");
|
||||
|
||||
@@ -719,6 +719,9 @@ public class CyclingController : DeviceServiceMonoBase
|
||||
case CyclingModel.Competition:
|
||||
cyclingController = new CompetitionModel(route, selectParamModel, currentPlayer);
|
||||
break;
|
||||
case CyclingModel.GameRoom:
|
||||
cyclingController = new GameModel(route, selectParamModel);
|
||||
break;
|
||||
}
|
||||
GameStart();
|
||||
InitPlayer();//初始化人物方向等
|
||||
|
||||
@@ -40,9 +40,19 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
|
||||
protected override void ShowLoading()
|
||||
{
|
||||
loadingPanel = panel.transform.Find("LoadingPanel").gameObject;
|
||||
loadingPanel.showLoadingExtension();
|
||||
if (App.gameRoomDetail != null)
|
||||
{
|
||||
ShowGameRoomLoading();
|
||||
loadingPanel = panel.transform.Find("LoadingPanel").gameObject;
|
||||
loadingPanel.showLoadingExtension();
|
||||
}
|
||||
}
|
||||
private void ShowGameRoomLoading()
|
||||
{
|
||||
UIManager.SetModalPanel(transform.Find("ModalPanel").GetComponent<PFUIPanel>());
|
||||
UIManager.ShowGameRoomLoadingPanel();
|
||||
}
|
||||
|
||||
//初始化
|
||||
public override void Init()
|
||||
{
|
||||
|
||||
@@ -34,9 +34,10 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
}
|
||||
protected override void CreateList()
|
||||
{
|
||||
OnlineUserNum.text = " "+ MapUDPService.GetNearRiderCount().ToString();
|
||||
var roomId = cyclingController.cyclingController == null ? 0 : (cyclingController.cyclingController.recorderData.RoomId ?? 0);
|
||||
OnlineUserNum.text = " "+ MapUDPService.GetNearRiderCount(roomId).ToString();
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(OnlineUserNum.rectTransform);
|
||||
var nearList = MapUDPService.GetNearRiderData(pageIndex, pageSize, new double[] { playerController.Currentlatlong.x, playerController.Currentlatlong.y });
|
||||
var nearList = MapUDPService.GetNearRiderData(pageIndex, pageSize, new double[] { playerController.Currentlatlong.x, playerController.Currentlatlong.y },roomId);
|
||||
if (nearList == null)
|
||||
return;
|
||||
var mod = MapUDPService.GetNearRiderCount() % pageSize;
|
||||
|
||||
@@ -17,8 +17,10 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
UIManager.AddEvent(singleButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, SingleRide);
|
||||
UIManager.AddEvent(shadowButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShadowRide);
|
||||
UIManager.AddEvent(addButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShowSelectPlayer);
|
||||
|
||||
selectPanel.SetActive(true);//显示选择单人、影子骑行模式
|
||||
if (App.gameRoomDetail == null)
|
||||
{
|
||||
selectPanel.SetActive(true);//显示选择单人、影子骑行模式
|
||||
}
|
||||
}
|
||||
protected override void Update()
|
||||
{
|
||||
@@ -151,5 +153,15 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
countDownTxt.gameObject.SetActive(true);
|
||||
countDownTxt.text = count.ToString();
|
||||
}
|
||||
|
||||
public void StartRide(int seconds)
|
||||
{
|
||||
mainController.SetCyclingModel(CyclingModel.GameRoom);
|
||||
count = seconds;
|
||||
startPanel.SetActive(false);
|
||||
startBtn.gameObject.SetActive(false);
|
||||
countDownTxt.gameObject.SetActive(true);
|
||||
countDownTxt.text = count.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user