Cocos2d iphone Cocos2d中的倒计时
我正在努力思考如何在耐力水平上实施倒计时。例如,最大值为100%,随着时间的推移,它会减小。我不需要知道如何显示它,但它背后的技术让它工作,并在哪里看 当应用程序关闭时,此倒计时将继续进行 我把Cocos2d iphone Cocos2d中的倒计时,cocos2d-iphone,nsuserdefaults,Cocos2d Iphone,Nsuserdefaults,我正在努力思考如何在耐力水平上实施倒计时。例如,最大值为100%,随着时间的推移,它会减小。我不需要知道如何显示它,但它背后的技术让它工作,并在哪里看 当应用程序关闭时,此倒计时将继续进行 我把NSUserDefaults作为一种实现这一点的方法。这是正确的吗 类似于顶栏,如下所示: 您可以在NSUserDefaults或iCloud中保存最新的加油耐力值,并使用如下方式计算当前值: timePassedInSeconds = currentTime - latestMaxValueSaveTi
NSUserDefaults
作为一种实现这一点的方法。这是正确的吗
类似于顶栏,如下所示:
您可以在
NSUserDefaults
或iCloud中保存最新的加油耐力值,并使用如下方式计算当前值:
timePassedInSeconds = currentTime - latestMaxValueSaveTime;
newStamina = latestMaxValue - (timePassedInSeconds * decreasePerSecond);
这样,每次玩家为耐力加油时(例如,为动物购买一些食物),您都会将耐力重置为100%(或根据食物类型添加一些百分比),并将此值保存到latestMaxValue
中,并将加油时间保存到latestMaxValueSaveTime
(您可以将两者都存储在NSUserDefaults
)
您可以在场景的update:
中或场景的onEnter:
方法中计算newStamina
,如果需要计算一次
这样,即使应用程序关闭,它也会减少
但是,如果您想避免玩家通过更改设备时间来重置耐力,您应该从服务器获取时间(最好是UTC,以避免时区和夏令时问题)