所以我在應用程序/遊戲和其他東西中看到了它,當您得分或您獲得遊戲結束時,得分數字從0增加到您的得分。我希望如此,大約在1秒鐘內,標籤從文本中移除:0到與玩家評分一起存儲的整數。標籤在GameOver場景中添加了玩家得分:Objective-C
-2
A
回答
0
我會去使用NSOperation
睡覺和添加點(實際上它可能即使沒有睡覺)。喜歡的東西:
NSInvocationOperation *op = [[NSInvocationOperation alloc] initWithTarget:self
selector:@selector(updateScore)
object:nil];
[queue addOperation:[op autorelease]];
-(void)updateScore {
while (tot < 1.0) {
displayingScore += score*incr;
tot += incr;
// update score label to displayingScore
[NSThread sleepForTimeInterval:0.05];
}
}
2
創建UILabel
顯示得分,並使用NSTimer
更新UILabel
的text
財產。蘋果公司並沒有發佈一個能爲你做這一切的課程。
1
您需要兩個變量;顯示currentScore和當前得分。您還需要一個定時器來處理更新ui。
當您的分數發生變化時,將currentScore更新爲您想要的最終分數。然後啓動一個計時器,以增加顯示的分數,直到它到達那裏,即
-(void)scoreUpdater:(NSTimer *)timer {
// Update the score
displayScore ++;
[scoreLabel setText:[NSString stringWithFormat:@"%i", displayScore]];
// Have we got there yet?
if (displayScore == currentScore) {
[scoreTimer invalidate];
[scoreTimer release];
scoreTimer = nil;
}
}
相關問題
- 1. JavaFX場景:將場景添加到標籤
- 2. 爲什麼玩家在場景中穿過物體?
- 3. 尋找與其他玩家出場兩次玩過的玩家
- 4. 添加標籤在場景輪廓(的行爲)
- 5. 如何從MyPlayerActivity添加選定的玩家,並將這些玩家添加到MainActivity Map中作爲標記?
- 6. Cocos2d:如何在場景之間共享玩家數據
- 7. 更新顯示tkinter玩家的標籤
- 8. 獲得了玩家的名字和分數
- 9. 如何在JavaFX中將場景添加到場景中?
- 10. 添加SpriteKit背景場景
- 11. 在玩家得分程序中顯示低於平均分數
- 12. 獲得玩家排名的分數
- 13. 使用線程更新玩家得分
- 14. 場景內容顯示在遊戲玩家中但未在窗口中顯示
- 15. 獲取玩家的總得分只從最近的數場比賽中的MySql
- 16. 在添加WatchKit目標時,我在主場景中獲得無助手結果
- 17. Spritkit在場景中添加了節點但未移動?
- 18. 每次加載場景後,背景音樂變得更響了
- 19. 嘗試將玩家對象添加到我的會話中的玩家陣列
- 20. cocos2d在場景中添加圖層
- 21. Cocos2d:在場景中添加uilabel
- 22. 在場景中添加遊戲
- 23. 在cocos2d場景中添加viewcontroller
- 24. 層雲玩家不再加載曲目從頁面錨標籤
- 25. 玩家簽名交互
- 26. 黃瓜:飛行中的標籤場景
- 27. 用鑰匙添加新玩家WASD
- 28. 玩家得分會增加9而不是1
- 29. Graphviz:在標籤上添加標題除了標籤
- 30. 在Android遊戲中更新玩家得分
這不是太有點矯枉過正了嗎?計時器也應該工作得很好。 – JustSid
我習慣於編寫應該避免正常iOS時間的代碼(Cocos2D),這就是爲什麼我通常更喜歡這種方式 – Jack