[英]Countdown timer in Android game for points
什么是在Android游戏中为点数实现倒数计时器的最佳方法,例如:用户丢掉所有点数,并且他将在1小时后获得5分。 考虑到该应用可能会被破坏,并且在运行时该5分的剩余时间将在应用中显示,因此如何实施此操作! 注意:游戏很简单,不只使用android pure引擎。
当用户不在游戏中时,时间是否“运行”? 如果它也确实在后台“运行”,则只需存储游戏的开始时间,然后从中计算所有内容( duration = *now* - start_time;
)。
万一计时器在后台停止,则以一定的准确度存储总持续时间(如果每小时更改奖金,则可以存储1秒),然后将session_start存储在onGameResume中,然后从duration += *now* - session_start
-session_start重新计算onGameStop中的duration += *now* - session_start
。
程序员提示:每当使用“时间戳记”时,都应使用UTC时间[进行存储和计算](而不是用户时区,因为如果用户旅行/等,它很容易更改)。 时区调整后的日期和时间是“视图格式”,在显示值之前完成,而不是值存储的一部分。
通过在运行游戏之前手动更改设备时间,可以轻松欺骗这种简单的实现方式。 如果这是更具竞争性的挑战,则可以考虑添加一些模糊的保护机制,例如存储已经发生的日期并将其用于某种启发式检测操作(但请注意,设备本身可能会轻易地跳+几分钟)如果它的RTC非常不准确,电池耗尽了更长的时间,或者用户正进入奇怪的时区(IIRC中的某些偏移量为+ -30分钟),并且经验丰富的黑客也将禁用您的其他检查,因此请不要花费付出太多的努力,有人会作弊。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.