Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS游戏世界日历/时钟_Ios_Objective C - Fatal编程技术网

iOS游戏世界日历/时钟

iOS游戏世界日历/时钟,ios,objective-c,Ios,Objective C,我正在开发一款iOS游戏,它需要游戏内日历和昼夜循环。例如,我设想一个完整的24小时可能需要15分钟的真实时间。以前,我使用了一个整型计数器来计算一天中的时间 如何有效地跟踪游戏世界日历 我想我至少可以使用一天的时间计数器,每次它重置时,我可以增加一天计数器,每7天我可以增加一周,以此类推 或者,使用类似于历元的系统并将其转换为可读格式可能是值得的。如果您想让24个假小时占用15个实分钟,您可以这样转换NSTimeInterval: NSTimeInterval real = [[NSDate

我正在开发一款iOS游戏,它需要游戏内日历和昼夜循环。例如,我设想一个完整的24小时可能需要15分钟的真实时间。以前,我使用了一个整型计数器来计算一天中的时间

如何有效地跟踪游戏世界日历

我想我至少可以使用一天的时间计数器,每次它重置时,我可以增加一天计数器,每7天我可以增加一周,以此类推


或者,使用类似于历元的系统并将其转换为可读格式可能是值得的。

如果您想让24个假小时占用15个实分钟,您可以这样转换NSTimeInterval:

NSTimeInterval real = [[NSDate date] timeIntervalSince1970];
NSTimeInterval fake = real * 96.0; // There are 96 fake minutes for each real minute.

您可以将游戏世界的开始时间记录为NSUserDefaults,并在[[NSDate date]TimeIntervalsIncestDate:date]中使用此偏移量,如果您愿意的话。

您认为这种方法比伪造纪元有什么好处吗?当用户开始游戏时,它可以从0开始,每个游戏循环可以增加计数,并且我可以在需要时计算年/天/等?如果你在计算滴答而不是使用时钟,你将限制你的游戏。这将导致游戏在不同的系统负载下,在不同的处理器上以不同的速度运行。我建议改用你的时钟。你的例子不是以秒为单位吗?考虑到纪元是以秒为单位的,所以每一秒有96个假秒?如果每一秒有96个假秒,那不也意味着每一分钟有96个假分钟吗;