我意識到for-loop可能是實現此目標的最佳方法,我只是不知道每隔5個障礙通過的正確方式,將1添加到totalScriptures integer僅在第二個NSInteger更改值時添加NSIntegers
我有一個類似於flappy bird的應用程序。一個對象在兩個垂直對象之間傳遞,用戶點擊以保持它爲浮動狀態。
評分方法略有不同,所以我會盡我所能解釋它。在應用程序中,用戶通過障礙物收集「經文」。對於通過的每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);
你多久打一次電話? _score是否包含您之前保存的分數,或者您是否在每次保存前重新設置分數? – 2014-11-24 17:38:06
@TiagoLira當新遊戲開始時,_score重置爲0.每次在障礙物之間穿過時,它會增加2點。經過5次障礙後,獲得1經文。目標是通過每5個障礙物將NSUserDefault增加1。該代碼在成功通過一個障礙物時被調用。 – user717452 2014-11-24 17:40:21