倒计时的算法及界面调整
This commit is contained in:
parent
bea0e40ec1
commit
074200cb4f
BIN
Assets/Resources/Images/Race/编组 7.png
Normal file
BIN
Assets/Resources/Images/Race/编组 7.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 552 B |
104
Assets/Resources/Images/Race/编组 7.png.meta
Normal file
104
Assets/Resources/Images/Race/编组 7.png.meta
Normal file
@ -0,0 +1,104 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b290a2043a6b220449e5e622af289c65
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -437,7 +437,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 30, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 22}
|
||||
m_SizeDelta: {x: 0, y: 20.036041}
|
||||
m_Pivot: {x: 1, y: 1}
|
||||
--- !u!222 &341053726653005601
|
||||
CanvasRenderer:
|
||||
@ -460,7 +460,7 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.9764706, g: 0.1882353, b: 0.5254902, a: 1}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
@ -479,7 +479,7 @@ MonoBehaviour:
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: 0
|
||||
m_Text: ' 0'
|
||||
--- !u!114 &341053726653005602
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -639,7 +639,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 20, y: 17}
|
||||
m_SizeDelta: {x: 16, y: 16}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &341053727548647539
|
||||
CanvasRenderer:
|
||||
@ -668,7 +668,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 5ca02e860670e674fbe3875814a2b1d7, type: 3}
|
||||
m_Sprite: {fileID: 21300000, guid: b290a2043a6b220449e5e622af289c65, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
|
||||
@ -4606,7 +4606,7 @@ MonoBehaviour:
|
||||
m_Alignment: 3
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_HorizontalOverflow: 1
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: 0000 - 00-00 00:00:00
|
||||
|
||||
@ -190,7 +190,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 1}
|
||||
m_AnchorMax: {x: 0.5, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -41}
|
||||
m_AnchoredPosition: {x: 0, y: -33}
|
||||
m_SizeDelta: {x: 284, y: 22}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8655198199642205030
|
||||
|
||||
@ -119,8 +119,8 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 244.41, y: 0}
|
||||
m_SizeDelta: {x: 79.16922, y: 22}
|
||||
m_AnchoredPosition: {x: 240.23004, y: 0}
|
||||
m_SizeDelta: {x: 87.529144, y: 22}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5946431579487976801
|
||||
CanvasRenderer:
|
||||
@ -360,8 +360,8 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 137.41, y: 0}
|
||||
m_SizeDelta: {x: 134.8265, y: 22}
|
||||
m_AnchoredPosition: {x: 133.23, y: 0}
|
||||
m_SizeDelta: {x: 126.47095, y: 22}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5549514346347886655
|
||||
CanvasRenderer:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -11,7 +11,7 @@ using Assets.Scripts.Devices;
|
||||
|
||||
public static class App
|
||||
{
|
||||
public static string Host = "http://192.168.0.101:5085/";
|
||||
public static string Host = "http://192.168.0.102:5082/";
|
||||
|
||||
public static string AppVersion = Application.version;
|
||||
|
||||
|
||||
@ -172,7 +172,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
//平均破度
|
||||
slope.text = Math.Round(route.AverageGrade, 2).ToString() + "%";
|
||||
//比赛开始时间
|
||||
StartTime.text = competition.StartTime.ToLocalTime().ToString()+"-"+ competition.EndApplyTime.ToLocalTime().ToString();
|
||||
StartTime.text = competition.StartTime.ToLocalTime().ToString()+" TO "+ competition.EndApplyTime.ToLocalTime().ToString();
|
||||
//比赛结束时间
|
||||
// EndTime.text = competition.EndTime.ToLocalTime().ToString();
|
||||
//比赛状态
|
||||
@ -282,6 +282,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
_canCancelApply = competition.CanCancelJoin;
|
||||
_canWatch = competition.CanWatch;
|
||||
_raceStart = competition.Status == 3;
|
||||
_canEnter = competition.CanEnter;
|
||||
|
||||
Contestant.text = competition.UserList.Count.ToString() + "Riders";
|
||||
ShowPlayers(competition.UserList);
|
||||
|
||||
@ -65,7 +65,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
if (rankingList == null) return;
|
||||
//当前参赛总人数
|
||||
var totalCount = rankingList.Count();
|
||||
OnlineUserNum.text = totalCount.ToString();
|
||||
OnlineUserNum.text = " "+totalCount.ToString();
|
||||
//当前用户排名
|
||||
var currentIndex = rankingList.Where(c => c.UserId == cyclingController.currentPlayer.UserId).FirstOrDefault()?.Index ?? 0;
|
||||
totalPages = (pageSize>0?totalCount / pageSize:0) + (totalCount % pageSize> 0? 1:0);
|
||||
|
||||
@ -16,7 +16,6 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
|
||||
CompetitionModel competitionModel { get; set; }
|
||||
CyclingController cyclingController { get; set; }
|
||||
|
||||
private void Start()
|
||||
{
|
||||
cyclingController = FindObjectOfType<CyclingController>();
|
||||
@ -25,6 +24,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
TimerTitle = transform.Find("ConpetitionTimerTitle").GetComponent<Text>();
|
||||
Timer = transform.Find("ConpetitionTimer").GetComponent<Text>();
|
||||
competitionModel = cyclingController.cyclingController as CompetitionModel;
|
||||
|
||||
}
|
||||
GameObject competitionResultPanel { get; set; }
|
||||
|
||||
@ -46,10 +46,10 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
var isAutoSave = s.Item1 <= 0 && !cyclingController.cyclingController.recorderData.Saved && !cyclingController.isWatch;
|
||||
|
||||
//显示关门时间
|
||||
if (s.Item2 && !isAutoSave)
|
||||
if (s.Item3 && !isAutoSave)
|
||||
{
|
||||
//显示倒计时面板信息
|
||||
ShowCountDown(s.Item1, "Get The First Place. Time Limit:");
|
||||
ShowCountDown(s.Item1, "Get The First Place. Time Limit");
|
||||
}
|
||||
else if (s.Item1 > 0)
|
||||
{
|
||||
@ -60,7 +60,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
//显示当前选手骑行时间
|
||||
Timer.gameObject.SetActive(true);
|
||||
TimerTitle.gameObject.SetActive(true);
|
||||
Timer.text = Helper.FormatTicks(cyclingController.currentPlayer.TotalTicks);
|
||||
Timer.text = Helper.FormatTicks(s.Item2);// Helper.FormatTicks(cyclingController.currentPlayer.TotalTicks);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -140,6 +140,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
||||
HeartRate = item.HeartRate,
|
||||
Cadence = item.Cadence,
|
||||
TotalTicks = item.TotalTicks,
|
||||
WeightKg = item.WeightKg,
|
||||
});
|
||||
}
|
||||
|
||||
@ -367,27 +368,38 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
||||
if (CanStart()) return 0;
|
||||
return (int)Math.Floor((mapCompetition.StartTime.ToLocalTime() - Now).TotalSeconds);
|
||||
}
|
||||
|
||||
public int RaceStartTime()
|
||||
{
|
||||
return (int)Math.Floor((Now - mapCompetition.StartTime.ToLocalTime() ).TotalSeconds);
|
||||
}
|
||||
/// <summary>
|
||||
/// 结束倒计时,bool值为true说明倒计时是关门时间
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public (int, bool) EndCountDown()
|
||||
public (int,int, bool) EndCountDown()
|
||||
{
|
||||
//if (CanStart() == false) return (0, false);
|
||||
//if (recorderData.IsCompleted) return 0;
|
||||
var end1 = (int)Math.Floor((mapCompetition.EndTime.ToLocalTime() - Now).TotalSeconds);
|
||||
var now = Now ;
|
||||
var mi = now.Millisecond;
|
||||
now = now.AddMilliseconds(-mi);
|
||||
|
||||
var end1 = (int)Math.Floor((mapCompetition.EndTime.ToLocalTime() - now).TotalSeconds);
|
||||
var s = (int)Math.Floor((now - mapCompetition.EndTime.ToLocalTime()).TotalSeconds);
|
||||
var start = (int)Math.Floor((now - mapCompetition.StartTime.ToLocalTime()).TotalSeconds);
|
||||
if (!FirstEndTime.HasValue)
|
||||
{
|
||||
return (end1, false);
|
||||
return (end1, start, false);
|
||||
}
|
||||
//var end2 = (int)Math.Floor((FirstEndTime.Value - Now).TotalSeconds);
|
||||
var end2 = (int)Math.Floor((FirstEndTime.Value.ToLocalTime().AddMinutes(mapCompetition.CloseTime) - Now).TotalSeconds);
|
||||
if (end1 < end2)
|
||||
{
|
||||
return (end1, false);
|
||||
return (end1, start, false);
|
||||
}
|
||||
//return Math.Min(end1, end2);
|
||||
return (end2, true);
|
||||
return (end2, start, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -224,6 +224,7 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Helper.DelectDir(path);
|
||||
Debug.Log(ex.Message);
|
||||
}
|
||||
recordData.Add(interruptRecord, files);
|
||||
@ -249,7 +250,7 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
{
|
||||
if (result.result && Directory.Exists(path))
|
||||
{
|
||||
Helper.DelectDir(path);
|
||||
//Helper.DelectDir(path);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
@ -650,7 +650,6 @@ public class CyclingController : DeviceServiceMonoBase
|
||||
//}
|
||||
isStart = false;
|
||||
isQuit = true;
|
||||
recorderData.EndTime = UIManager.Now.GetDateTime();
|
||||
}
|
||||
#endregion
|
||||
|
||||
@ -677,7 +676,7 @@ public class CyclingController : DeviceServiceMonoBase
|
||||
|
||||
public void Save(double totalDistance)
|
||||
{
|
||||
//cyclingController.recorderData.EndTime = UIManager.Now.GetDateTime();
|
||||
cyclingController.recorderData.EndTime = UIManager.Now.GetDateTime();
|
||||
isQuit = true;
|
||||
isStart = false;
|
||||
string recordId = Guid.NewGuid().ToString();
|
||||
|
||||
@ -48,6 +48,7 @@ public class LocalRouteItem : MonoBehaviour, IPointerExitHandler, IPointerEnterH
|
||||
UIManager.AddEvent(uploadBtn.gameObject, EventTriggerType.PointerClick, (b) => GoUplaod());
|
||||
UIManager.AddEvent(deleteBtn.gameObject, EventTriggerType.PointerClick, (b) => GoDelete());
|
||||
var fileList = Directory.GetFiles(path);
|
||||
|
||||
foreach (var item in fileList)
|
||||
{
|
||||
var fileInfo = new FileInfo(item);
|
||||
@ -73,8 +74,9 @@ public class LocalRouteItem : MonoBehaviour, IPointerExitHandler, IPointerEnterH
|
||||
var isself = record.UserId == App.CurrentUser.Id;
|
||||
if (!isself)
|
||||
{
|
||||
this.gameObject.SetActive(false);
|
||||
this.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
Name.text = record.RouteName;
|
||||
Time.text = record.StartTime.ToString();
|
||||
RidingTime.text = $"<color={titleColor}>Riding time:</color>{record.Ticks}";
|
||||
|
||||
@ -127,6 +127,7 @@ public class ResultListController : MonoBehaviour
|
||||
isEnd[scrollIndex] = false;
|
||||
pageIndex[scrollIndex] = 0;
|
||||
GetList();
|
||||
DisplayLocalRouteResult(contents[0], 0);//显示本地未上传成功的记录
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
@ -176,7 +177,6 @@ public class ResultListController : MonoBehaviour
|
||||
{
|
||||
isEnd[index] = false;
|
||||
DisplayRouteResult(r.data, contents[index],index);
|
||||
DisplayLocalRouteResult(contents[index], index);//显示本地未上传成功的记录
|
||||
scroll.transform.Find("Error").gameObject.SetActive(false);
|
||||
//DisplayRouteResult(r.data, matchContent);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user