首页 > 代码库 > C# 浮点转时间
C# 浮点转时间
想了大半天实在想不出什么更适合文章的标题。。。
就现在这个标题,挺好- -
什么是浮点转时间呢?
今天写的一个计时功能,想来想去还是现在这种解决方案比较合适
先上一张图在来讲解比较明了
如图:赛车游戏的计时
计时格式为:分‘秒‘毫秒
先来个脑筋急转弯让大家乐乐
已知:
1小时=60分
1分=60秒
1秒=?毫秒
敲了四年代码今天我居然会掉进这个坑里!!估计脑袋短路了吧- -
按照这个逻辑1秒=60毫秒,这是完全错误的!1秒=1000毫秒才是正确的答案
好吧,请深深的鄙视我吧。。。
其实这篇文章没有什么高深的东西,主要说这种解决方案还是不错滴
怎么个不错法呢,听我一一道来
可以看见上图中有一个“个人记录”一栏
如果我们要把这个数据存在数据库中,咋存?
用存日期时间的方式?
用文本?
在这里我用的是浮点型
从游戏开始计算,一局游戏我到完成花费了150.12秒
我就直接把150.12存进数据库,然后读取的时候在把这个数转换成 分/秒/毫秒 这样的格式
可以看见当 分/秒/毫秒 为一位数时,会自动补0,比如:01 02 03 这样
所以我们现在要做的是,获取时间:totalTime += Time.deltaTime;
然后在相对应的计算出 分/秒/毫秒
我写了一个方法,这个方法仅供我计时用
其他地方反正用不上,就不考虑扩展性什么的了
参考一下我的思路就行!上代码
1 /// 计算时间 <summary> 2 /// 计算时间 3 /// </summary> 4 /// <param name="_Convert">欲计算的文本</param> 5 /// <param name="_point">小数点左=0;右=1</param> 6 /// <returns>返回格式 00</returns> 7 private string CalcTime(string _Convert, int _point) 8 { 9 string[] temSplit = _Convert.Split(new char[] { ‘.‘ });10 11 if (Convert.ToInt32(temSplit[_point]) < 10)12 return ("0" + temSplit[_point]).Replace("-", "0");13 14 //被整除的时候为‘-.--‘,所以直接替换成015 return (temSplit[_point].Substring(0, 1) + temSplit[_point].Substring(1, 1)).Replace("-","0");16 }
没错,你没有看错,我用的就是这么简单的方法
调用的代码
1 void FixedUpdate()2 {3 totalTime += Time.deltaTime;4 temMinute = CalcTime(Convert.ToDouble(totalTime / 60f).ToString("0.00"), 0);5 temSeconds = CalcTime(Convert.ToDouble(totalTime - Convert.ToDouble(temMinute) * 60f).ToString("0.00"), 0);6 temMilli = CalcTime(Convert.ToDouble(totalTime - Convert.ToDouble(temMinute) * 60f).ToString("0.00"), 1);7 }
好吧,真的一点不高深,纯属看思路
也没啥好说的,随便看看吧
我游戏功能要实现的功能还有一大堆,先闪了
写得不好勿喷
本文链接:http://www.cnblogs.com/shenggege/p/4251123.html
C# 浮点转时间
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。