android - 在Cocos2d-x里如何获得系统当前时间?
迷茫
迷茫 2017-04-17 11:28:14
[Android讨论组]

我想用Cocos2d-x开发一款跨平台的应用程序,一个随时可以倒计时的钟表。如果让我直接写的话,我会用C++的time(...),mktime(...)和difftime(...)。但考虑跨平台的需求,这种方法显然不合适。那在Cocos2d-x里没有较好的解决方案(如直接内置到框架中的方法)。而且,我需要应用可以在iPhone、iPad和Android三个终端都能正常工作。

原问题:Is there a preferred way to get the system time in cocos2d-x?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
高洛峰

答案
einverne:这个函数可以获取系统当前的时间,以毫秒为单位。我是一个Cocos2d-x新手,希望对你有所帮助。

static inline long millisecondNow()
{
    struct cc_timeval now;
    CCTime::gettimeofdayCocos2d(&now, NULL);
    return (now.tv_sec * 1000 + now.tv_usec / 1000);
}

NonlinearIdeas(提问者):这个似乎接近我的需求,但这只是我需要的一部分,一般情况下,我需要一个真正的“日期和时间”对象(或结构),不只是以毫秒为单位。我自己尝试了下,就目前而言,最佳的解决方案似乎是用C++中的经典“三剑客” localtime,mktime和difftime。展示几个基本操作的实例,我可以虚构一个通用类去做不同的类型的操作,我认为这是一个很不错的开头.

double Utilities::SecondsTill(int hour, int minute)
{
   time_t now;
   struct tm target;
   double seconds;

   time(&now);  

   target = *localtime(&now);

   target.tm_hour = hour;
   target.tm_min = minute;
   target.tm_sec = 0;

   seconds = difftime(mktime(&target),now);

   return seconds;
}

DAYS_OF_WEEK_T Utilities::GetDayOfWeek()
{
   struct tm tinfo;
   time_t rawtime;
   time (&rawtime);

   tinfo = *localtime(&rawtime);

   return (DAYS_OF_WEEK_T)tinfo.tm_wday;
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号