Cocos2d iphone Cocos2d中的倒计时

Cocos2d iphone Cocos2d中的倒计时,cocos2d-iphone,nsuserdefaults,Cocos2d Iphone,Nsuserdefaults,我正在努力思考如何在耐力水平上实施倒计时。例如,最大值为100%,随着时间的推移,它会减小。我不需要知道如何显示它,但它背后的技术让它工作,并在哪里看 当应用程序关闭时,此倒计时将继续进行 我把NSUserDefaults作为一种实现这一点的方法。这是正确的吗 类似于顶栏,如下所示: 您可以在NSUserDefaults或iCloud中保存最新的加油耐力值,并使用如下方式计算当前值: timePassedInSeconds = currentTime - latestMaxValueSaveTi

我正在努力思考如何在耐力水平上实施倒计时。例如,最大值为100%,随着时间的推移,它会减小。我不需要知道如何显示它,但它背后的技术让它工作,并在哪里看

当应用程序关闭时,此倒计时将继续进行

我把
NSUserDefaults
作为一种实现这一点的方法。这是正确的吗

类似于顶栏,如下所示:

您可以在
NSUserDefaults
或iCloud中保存最新的加油耐力值,并使用如下方式计算当前值:

timePassedInSeconds = currentTime - latestMaxValueSaveTime;  
newStamina = latestMaxValue - (timePassedInSeconds * decreasePerSecond);
这样,每次玩家为耐力加油时(例如,为动物购买一些食物),您都会将耐力重置为100%(或根据食物类型添加一些百分比),并将此值保存到
latestMaxValue
中,并将加油时间保存到
latestMaxValueSaveTime
(您可以将两者都存储在
NSUserDefaults

您可以在场景的
update:
中或场景的
onEnter:
方法中计算
newStamina
,如果需要计算一次

这样,即使应用程序关闭,它也会减少

但是,如果您想避免玩家通过更改设备时间来重置耐力,您应该从服务器获取时间(最好是UTC,以避免时区和夏令时问题)