C# 浮点转时间
2015-01-26 19:39
120 查看
想了大半天实在想不出什么更适合文章的标题。。。
就现在这个标题,挺好- -
什么是浮点转时间呢?
今天写的一个计时功能,想来想去还是现在这种解决方案比较合适
先上一张图在来讲解比较明了
如图:赛车游戏的计时
计时格式为:分'秒'毫秒
先来个脑筋急转弯让大家乐乐
已知:
1小时=60分
1分=60秒
1秒=?毫秒
敲了四年代码今天我居然会掉进这个坑里!!估计脑袋短路了吧- -
按照这个逻辑1秒=60毫秒,这是完全错误的!1秒=1000毫秒才是正确的答案
好吧,请深深的鄙视我吧。。。
其实这篇文章没有什么高深的东西,主要说这种解决方案还是不错滴
怎么个不错法呢,听我一一道来
可以看见上图中有一个“个人记录”一栏
如果我们要把这个数据存在数据库中,咋存?
用存日期时间的方式?
用文本?
在这里我用的是浮点型
从游戏开始计算,一局游戏我到完成花费了150.12秒
我就直接把150.12存进数据库,然后读取的时候在把这个数转换成 分/秒/毫秒 这样的格式
可以看见当 分/秒/毫秒 为一位数时,会自动补0,比如:01 02 03 这样
所以我们现在要做的是,获取时间:totalTime += Time.deltaTime;
然后在相对应的计算出 分/秒/毫秒
我写了一个方法,这个方法仅供我计时用
其他地方反正用不上,就不考虑扩展性什么的了
参考一下我的思路就行!上代码
没错,你没有看错,我用的就是这么简单的方法
调用的代码
好吧,真的一点不高深,纯属看思路
也没啥好说的,随便看看吧
我游戏功能要实现的功能还有一大堆,先闪了
写得不好勿喷
本文链接:http://www.cnblogs.com/shenggege/p/4251123.html
就现在这个标题,挺好- -
什么是浮点转时间呢?
今天写的一个计时功能,想来想去还是现在这种解决方案比较合适
先上一张图在来讲解比较明了
如图:赛车游戏的计时
计时格式为:分'秒'毫秒
先来个脑筋急转弯让大家乐乐
已知:
1小时=60分
1分=60秒
1秒=?毫秒
敲了四年代码今天我居然会掉进这个坑里!!估计脑袋短路了吧- -
按照这个逻辑1秒=60毫秒,这是完全错误的!1秒=1000毫秒才是正确的答案
好吧,请深深的鄙视我吧。。。
其实这篇文章没有什么高深的东西,主要说这种解决方案还是不错滴
怎么个不错法呢,听我一一道来
可以看见上图中有一个“个人记录”一栏
如果我们要把这个数据存在数据库中,咋存?
用存日期时间的方式?
用文本?
在这里我用的是浮点型
从游戏开始计算,一局游戏我到完成花费了150.12秒
我就直接把150.12存进数据库,然后读取的时候在把这个数转换成 分/秒/毫秒 这样的格式
可以看见当 分/秒/毫秒 为一位数时,会自动补0,比如:01 02 03 这样
所以我们现在要做的是,获取时间:totalTime += Time.deltaTime;
然后在相对应的计算出 分/秒/毫秒
我写了一个方法,这个方法仅供我计时用
其他地方反正用不上,就不考虑扩展性什么的了
参考一下我的思路就行!上代码
/// 计算时间 <summary> /// 计算时间 /// </summary> /// <param name="_Convert">欲计算的文本</param> /// <param name="_point">小数点左=0;右=1</param> /// <returns>返回格式 00</returns> private string CalcTime(string _Convert, int _point) { string[] temSplit = _Convert.Split(new char[] { '.' }); if (Convert.ToInt32(temSplit[_point]) < 10) return ("0" + temSplit[_point]).Replace("-", "0"); //被整除的时候为'-.--',所以直接替换成0 return (temSplit[_point].Substring(0, 1) + temSplit[_point].Substring(1, 1)).Replace("-","0"); }
没错,你没有看错,我用的就是这么简单的方法
调用的代码
void FixedUpdate() { totalTime += Time.deltaTime; temMinute = CalcTime(Convert.ToDouble(totalTime / 60f).ToString("0.00"), 0); temSeconds = CalcTime(Convert.ToDouble(totalTime - Convert.ToDouble(temMinute) * 60f).ToString("0.00"), 0); temMilli = CalcTime(Convert.ToDouble(totalTime - Convert.ToDouble(temMinute) * 60f).ToString("0.00"), 1); }
好吧,真的一点不高深,纯属看思路
也没啥好说的,随便看看吧
我游戏功能要实现的功能还有一大堆,先闪了
写得不好勿喷
本文链接:http://www.cnblogs.com/shenggege/p/4251123.html
相关文章推荐
- [原创]在C#中改变系统时间 && 得到系统时间改变通知
- C#从网络获取时间更新本机时间
- 如何把sql中以浮点形式存储的时间转换成标准格式
- C# 时间处理[转载]
- C#中时间差的计算
- C#中时间格式的转换
- C#和Sql的时间操作心得(一)
- C#中计算两个时间的差
- C#中计算两个时间的差
- 用C#语言修改系统时间
- c#常用函数方法及sql时间
- C#中时间格式的转换(转)
- C#中时间差的计算
- 超强功能的正则时间验证,C#实现
- 我到底要花多少时间花在vb.net和c#上?
- C#线程 在某一时间内,只有N个线程在并发执行,其余都在队列中的实现
- C#日期时间格式化小结
- c#时间增加并对比做法
- [转] c# 时间操作
- C#中的时间函数