gpt4 book ai didi

ios - 仅在第二个 NSInteger 更改值时添加 NSIntegers

转载 作者:行者123 更新时间:2023-11-29 02:29:20 24 4
gpt4 key购买 nike

我意识到 for 循环可能是执行此操作的最佳方法,我只是不知道每通过 5 个障碍,将 totalScriptures 整数加 1 的正确方法

我有一个类似于 flappybird 的应用程序。一个对象在两个垂直对象之间传递,用户点击以使其保持 float 。

评分方法略有不同,所以我会尽力解释。在应用程序中,用户通过穿过障碍来收集“经文”。每通过 5 个障碍,用户获得 1。所以在我的计分方法中,我先除以 2(考虑通过两个障碍),然后除以 5 来计算获得了多少经文。

我还试图记录获得的经文总数。我通过创建一个从 0 开始的 NSUserDefault Integer 来做到这一点。我试图做的是除以 2 以获得通过的障碍数,然后除以 5 以获得获得的经文数量,并将该数字添加到我之前提到的 NSUserDefault。然而,对于您将要看到的代码,一旦获得经文,它就会保持该值,因此对于前 5 个障碍,一切都很好,但是一旦获得一个经文,它就会在默认值中添加一个经文时间。有人可以建议我如何仅在 FinalChange 编号与上次报告不同时执行添加吗?

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSInteger startIt = [defaults integerForKey:@"totalScripturesCollected"];
NSInteger goBetween = _score/2;
NSInteger finalChange = goBetween/5;
NSInteger toReport = startIt + finalChange;

[defaults setInteger:_score/2 forKey:@"theScore"];
[defaults setInteger:toReport forKey:@"totalScripturesCollected"];
[defaults synchronize];
NSLog(@"startit %ld", (long)startIt);
NSLog(@"gobetween %ld", (long)goBetween);
NSLog(@"finalchange %ld", (long)finalChange);
NSLog(@"toreport %ld", (long)toReport);

最佳答案

我会说你应该只在游戏结束时做一次这个计算。

如果需要一直显示计算结果,可以添加一个类变量来保持计数。并在每次运行该代码时执行以下操作:

count++;
if (count == 10) {
NSInteger toReport = startIt++;
[defaults setInteger:toReport forKey:@"totalScripturesCollected"];
[defaults synchronize];
count = 0;
}

因此,每通过 10 个障碍,您就添加一个经文,然后您再次开始计数。

关于ios - 仅在第二个 NSInteger 更改值时添加 NSIntegers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27110197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com