游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1947|回复: 4

继上一个问题,如何实现自己的游戏时间系统?

[复制链接]

15

主题

108

帖子

117

积分

注册会员

Rank: 2

积分
117
发表于 2011-8-10 14:34:00 | 显示全部楼层 |阅读模式
[em17]

    上个问题是如何模拟日常的上午、中午、晚上等效果,我想采用的方案是把一天按时间划分出来(Day DayToNight Night
NightToDay)..


    但是又遇到一个问题是,如何设定自己的游戏时间体系?比如:我想要设定的是--->一天24小时,一天一共是现实时间的10分钟。。。 [em10]蛋疼的我啊

9

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2011-8-10 17:11:00 | 显示全部楼层

Re:继上一个问题,如何实现自己的游戏时间系统?

貌似没什么难度,不知楼主何以蛋疼至如此?

15

主题

108

帖子

117

积分

注册会员

Rank: 2

积分
117
 楼主| 发表于 2011-8-10 17:29:00 | 显示全部楼层

Re:继上一个问题,如何实现自己的游戏时间系统?

因为没写过阿,不知道从何入手,能介绍下么

15

主题

108

帖子

117

积分

注册会员

Rank: 2

积分
117
 楼主| 发表于 2011-8-11 10:19:00 | 显示全部楼层

Re:继上一个问题,如何实现自己的游戏时间系统?

这是我想设定的时间分段结构体:
struct CLightCycleDesc{
        float RealDayLength;             // real length of the day(seconds)
        float NumHours;                  //number of game hours in a day
        float NightTransitionStartHour;  //start of night transition
        float NightTransitionEndHour;    //End of night transition
        float DuskRatio; //ratio for dusk transition. e.g. when set to 0.5f, that means that the dusk colors are taken when the day->night transition is at its half
        float DawnTransitionStartHour;   //start of day transition
        float DawnTransitionEndHour;     //end of day transition
        uint MaxNumColorSteps;           //the max number of color steps

同时,我的状态划分为:enum TLightState{Day = 0, Night, DayToNight, NightToDay, StateUnknown};

我想设定的结构体参数分别为:300,24,19,21,5,7,128  也就是现实5分钟=游戏中一天。。我应该怎么来写这个时间系统呢?

9

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2011-8-11 10:51:00 | 显示全部楼层

Re:继上一个问题,如何实现自己的游戏时间系统?

这个我也没写过,但感觉不难,说个思路吧。
一种方案是跟现实的时间绑定,另一种是纯游戏时间计算。
第一种,获取当前时间的分钟数的个位数,秒数,精确的话可以用毫秒数,再根据每小时的时间跨度算出当前应该是几点,从而归入相应的时间段。
第二种,设置一个时间原点,随着游戏的进行,推进时间前进,一小时一小时地加上去,或者用总的游戏时间取余法来计算,最后也是根据是几点来归入相应的时间段。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-8 14:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表