Я понимаю, что цикл for, вероятно, был бы лучшим способом сделать это, я просто не знаю, как правильно сказать, что каждые 5 пройденных препятствий добавляют 1 к целому числу totalScriptures
У меня есть приложение, похожее на Flappy Bird. Объект проходит между двумя вертикальными объектами, и пользователь нажимает, чтобы он оставался плавающим.
Метод подсчета очков немного отличается, поэтому я сделаю все возможное, чтобы объяснить его. В приложении пользователь собирает «писания», преодолевая препятствия. За каждые 5 пройденных препятствий пользователь получает 1. Поэтому в моем методе подсчета очков я сначала делю на 2 (чтобы учесть прохождение между двумя препятствиями), а затем делю на 5, чтобы вычислить, сколько Священных Писаний было заработано.
Я также пытаюсь отслеживать общее количество заработанных Священных Писаний. Я делаю это, создавая целое число NSUserDefault, которое начинается с 0. Я пытаюсь разделить на 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);