想了大半天实在想不出什么更适合文章的标题。。。

就现在这个标题,挺好- -

什么是浮点转时间呢?

今天写的一个计时功能,想来想去还是现在这种解决方案比较合适

先上一张图在来讲解比较明了

如图:赛车游戏的计时

计时格式为:分'秒'毫秒

先来个脑筋急转弯让大家乐乐

已知:

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]) < )
return ("" + temSplit[_point]).Replace("-", ""); //被整除的时候为'-.--',所以直接替换成0
return (temSplit[_point].Substring(, ) + temSplit[_point].Substring(, )).Replace("-","");
}

没错,你没有看错,我用的就是这么简单的方法

调用的代码

     void FixedUpdate()
{
totalTime += Time.deltaTime;
temMinute = CalcTime(Convert.ToDouble(totalTime / 60f).ToString("0.00"), );
temSeconds = CalcTime(Convert.ToDouble(totalTime - Convert.ToDouble(temMinute) * 60f).ToString("0.00"), );
temMilli = CalcTime(Convert.ToDouble(totalTime - Convert.ToDouble(temMinute) * 60f).ToString("0.00"), );
}

好吧,真的一点不高深,纯属看思路

也没啥好说的,随便看看吧

我游戏功能要实现的功能还有一大堆,先闪了

写得不好勿喷

本文链接:http://www.cnblogs.com/shenggege/p/4251123.html

C# 浮点转时间的更多相关文章

  1. mysql基本介绍和优化技巧

    一. mysql框架和基本介绍 1. 框架图 更详细: 2. 存储引擎 MYISAM与INNODB对比: MYISAM:mysql5.1及以前版本的默认存储引擎.支持全文检索,压缩,表级锁等,但不支持 ...

  2. 【转】Java 中字符串的格式化

    原文网址:http://blog.csdn.net/aimartt/article/details/8307237 参考资料:JDK API 1.6.0 中文文档 1.格式字符串语法 产生格式化输出的 ...

  3. 再探Java基础——String.format(String format, Object… args)的使用

    最近看到类似这样的一些代码:String.format("参数%s不能为空", "birthday"); 以前还没用过这功能不知咐意思,后研究了一下,详细讲解如 ...

  4. Mysql学习(慕课学习笔记3)数据类型

    数据类型 数据类型是指.存储过程参数.表达式和局部变量的数据特征, 它决定了数据的存储格式,代表了不同的信息类型. 整型 Tinyint      有符号位 -128到127   无符号位 0到255 ...

  5. java String.Format详解

    JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String format, Object... args) 使用指定的语言 ...

  6. Vertica: 基于DBMS架构的列存储数据仓库

    介绍 Vertica(属于HP公司),是一个基于DBMS架构的数据库系统,适合读密集的分析型数据库应用,比方数据仓库,白皮书中全名称为VerticaAnalytic Database.从命名中也可以看 ...

  7. String.Format in Java and C#

    原文:String.Format in Java and C# JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String ...

  8. java基础-day28

    第05天 MySQL 今日内容介绍 u 数据库的概述 u MySQL和SQLyog的安装和使用 u SQL语句 第1章   数据库的概述 1.1  数据库的概述 1.1.1 概述 l  什么是数据库 ...

  9. mysql数据库的笔记

    增删改查置顶: 插入数据: 基本语法 : insert into [表名](字段名1,字段名2……) values(记录1),(记录2): insert into [表名] values(记录1),( ...

随机推荐

  1. 【[JLOI2011]飞行路线】

    据说这是分层图最短路的板子题 但其实就是一个\(dij\)多带了一维状态 我们看到\(k\)很小所以显然我们可以设计一个这样的状态 \(d[v][k]\)表示从起点到点\(v\)免费走了\(k\)条路 ...

  2. python 中if-else的多种简洁的写法

    因写多了判断语句,看着短短的代码却占据来好几行,于是便搜下if-else简洁的写法,结果也是发现新大陆 4种: 第1种:__就是普通写法 a, b, c = 1, 2, 3 if a>b: c ...

  3. 22、整合mybatis

    搭建环境: 1).创建工程需要的maven坐标 这个mybatis的starter是mybatis官方出的适应springboot 2).数据连接池的使用 引入Druid数据连接池 <depen ...

  4. 4.spriing:Bean的生命周期/工厂方法配置Bean/FactoryBean

    1.Bean的生命周期 scope:singleton/prototype 1)spring容器管理singleton作用的生命周期,spring能够精确知道Bean合适创建,何时初始化完成,以及何时 ...

  5. Yii2 配置发送邮件

    'components' => [ 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@com ...

  6. 匹配iPhoneX

    1.header中加一下标签 <meta name="viewport" content="width=device-width,initial-scale=1,m ...

  7. CPP-基础:互斥量

    互斥量的用途和临界区很像.它与临界区的差别在于可以跨线程使用,可以用来同步进行多个线程间的数据访问,但是是以牺牲速度为代价的.只有临界区是非核心对象,那么互斥量就是一个核心对象了.核心对象的特点是有所 ...

  8. javascript-数字转罗马数字

    阿拉伯数字与罗马数字转换 罗马数字表示 XXI, 21 个位数举例I, 1 ]II, 2] III, 3] IV, 4 ]V, 5 ]VI, 6] VII, 7] VIII,8 ]IX, 9 ·十位数 ...

  9. idea删除module

    先remove , 再点击delete

  10. java中构造器的调用顺序

    在编程的过程中,我们经常会遇到多个类的继承问题,那么多个类的构造器是按照什么顺序调用的呢? 先看一段代码: public class Meal { public Meal() { System.out ...