(NO.00001)iOS游戏SpeedBoy Lite成形记(五)
来源:互联网 发布:最新小米抢购软件 编辑:程序博客网 时间:2024/05/21 04:40
在GameScene.m中添加matchRun的实现:
-(void)matchRun{ CCLOG(@"%@ invoke!",NSStringFromSelector(_cmd)); //如果比赛还未结束,啥都不做直接退出. if (_matching) { return; } //重置比赛设置 [self matchReset]; _matching = YES; for (Player *player in _players) { CCTime duration = (CCRANDOM_0_1() * 500.0/100) + 5.0; CCActionMoveBy *moveBy = [CCActionMoveBy actionWithDuration:duration position:ccp(0.9f, 0)]; CCActionJumpBy *jump = [CCActionJumpBy actionWithDuration:duration position:ccp(0, 0) height:0.05 jumps:20]; CCActionCallBlock *blk = [CCActionCallBlock actionWithBlock:^{ _finishedCount++; [player endMatch]; if (_finishedCount == 1) { _bestElapsedTime = player.elapsedTime; } //如果所有选手都完成比赛则复位比赛参数 if (_finishedCount == PlayerCount) { _finishedCount = 0; _matching = NO; } }]; CCActionSequence *seq = [CCActionSequence actionWithArray:@[moveBy,blk]]; [player runAction:seq]; [player runAction:jump]; [player startMatch]; }}
代码比较多,下面简单讲解一下.首先如果前面的比赛未结束则直接退出方法.重置比赛参数.
创建2个动作,一个是玩家从起点到终点的移动动作.为了使得比赛过程活泼一点,还是用了另一个动作,模拟玩家跳跃着移动 ;)
因为要在玩家到达终点时触发回调,所以这里还需要一个回调action,在回调中完成:确定玩家名次,执行玩家到终点时的方法(下面自会道来),记录最好成绩以及复位比赛参数等功能.
然后用一个序列动作串联移动好回调动作,最后同时执行序列和跳跃动作.
打开Player.h文件添加一个新的属性:
@property (nonatomic,assign) NSTimeInterval elapsedTime;
最后打开Player.m文件,补全matchRun所需的方法:
-(void)startMatch{ _now = [NSDate new]; self.elapsedTime = 0;}-(void)endMatch{ self.elapsedTime = -1*[_now timeIntervalSinceNow];}
执行效果如下:
0 0
- (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成形记(十五)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十六)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十七)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十八)
- Android 自定义View (一)
- block小谈
- Tomcat在命令行 配置startup.bat时出现:neither the java_home nor jre_hom
- java 多线程1
- 【NOIP】Sequence——暴力
- (NO.00001)iOS游戏SpeedBoy Lite成形记(五)
- 软件测试的完整分类
- 垂直搜索架构(爬虫部分)
- https跳转到http session丢失问题
- React ——第一个程序
- javascript之jquery多级联动下拉框
- 一些资料的分享
- angularjs 多个ng-app
- hdoj1406-完数