(NO.00001)iOS游戏SpeedBoy Lite成形记(三十):增加排行榜功能3
来源:互联网 发布:大数据分析师培训课程 编辑:程序博客网 时间:2024/05/17 23:33
在这个例子中,我们的显示代码只需要选手的名字以及对应的成绩.根据选手名字取对应的成绩可以用前面实现的playerRecord:方法,我们只需要将按照成绩排序后的选手名字返回就可以了.
我只需要再实现一个函数,就是返回已经排好序选手的姓名数组,在GameState.h接口文件中添加allSortedPlayers方法:
-(NSArray*)allSortedPlayers;
接下来在GameState.m中实现它:
-(NSArray*)allSortedPlayers{ NSArray *keys = _playerRecords.allKeys; NSArray *sortArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1,id obj2){ NSNumber *val1 = _playerRecords[obj1]; NSNumber *val2 = _playerRecords[obj2]; return [val1 compare:val2]; }]; return sortArray;}
方法中我们首先取得所有选手名字,然后建立一个排序block用来回调每次排序:直接比较2个选手的成绩.
接下来打开PopupLayer.m,在didLoadFromCCB最后添加如下代码:
if (_recordsLabel) { [self initRecordsLabel]; }
新建initRecordsLabel方法如下:
static NSString *recFormat = @"%d\t\t%@\t\t\t%.5f\n";-(void)initRecordsLabel{ GameState *gameState = [GameState sharedInstance]; NSMutableString *recordsString = [NSMutableString string]; NSArray *allPlayers = [gameState allSortedPlayers]; NSInteger i = 0; for (NSString *playerName in allPlayers) { CCTime record = [gameState playerRecord:playerName]; //CCLOG(@"%d : %@ %.5f",++i,playerName,record); [recordsString appendFormat:recFormat,++i,playerName,record]; } _recordsLabel.string = recordsString;}
比较简单,就是按照排序后选手来依次取对应的成绩,然后按照特定格式生成字符串,最后将字符串附加到_recordsLabel节点上.
打开GameScene.m我们需要在选手到达终点时更新成绩:
-(void)matchRun{//...block { [gameState updatePlayerRecord:player.playerName withRecord:player.elapsedTime];}//...
编译运行App,界面显示如下:
到这里本猫第一个原创App : SpeedBoy Lite基本告一段落了,其实还有完善的地方,比如以下几个方面:
1.游戏Main界面还可以美化,加上一些动画效果
2.游戏完全没有背景音乐和音效
3.游戏没有设置界面
4.游戏记录无法冷保存,退出App下次开始记录会丢失.
但是在这里我们暂且打住,回味片刻,准备开始下一个App吧 ;)
0 0
- (NO.00001)iOS游戏SpeedBoy Lite成形记(三十):增加排行榜功能3
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十八):增加排行榜功能
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十九):增加排行榜功能2
- (NO.00001)iOS游戏SpeedBoy Lite成形记(一)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(三)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(四)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(五)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(六)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(七)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(八)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(九)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十一)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十二)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十三)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十四)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十五)
- 排序比较指标
- Android开发工程师必看面试题:(二)
- 一个丝滑的全屏滑动返回手势
- 数据库实验NetMusicShop(三)
- 一个独立开发者分享的经验
- (NO.00001)iOS游戏SpeedBoy Lite成形记(三十):增加排行榜功能3
- Android 调用摄像头拍照 以及 从相册中选择照片
- Allele specific expression for three Xiphosphophorus species and their hybrids
- 我的9年IT路
- jQuery源码分析之ready方法
- Java package经验总结
- Android开发工程师必看面试题:(三)
- 第三十五篇:Quartz2D绘图--小黄人
- Spring-整体介绍