下面修改最为关键的matchRun方法里的代码:

CCActionCallBlock *blk = [CCActionCallBlock actionWithBlock:^{_finishedCount++;[player endMatch];[player stopAction:repeatJump];[player stopAction:repeatSkew];[self removeChild:player.streak];if (_finishedCount == 1) {_bestElapsedTime = player.elapsedTime;GameState *gameState = [GameState sharedInstance];NSInteger money = gameState.money;if (player.playerNumber == _betPlayer) {gameState.totalMoney += money;[_interface updateStatusLabel:[NSString stringWithFormat:@"资金 +%d",money] withColor:[CCColor greenColor]];}else{gameState.totalMoney -= money;[_interface updateStatusLabel:[NSString stringWithFormat:@"资金 -%d",money] withColor:[CCColor redColor]];}}CCLabelTTF* label = (CCLabelTTF*)_labelArray[player.playerNumber-1];NSTimeInterval intervalOffset = player.elapsedTime - _bestElapsedTime;if (intervalOffset > 0) {label.string = [NSString stringWithFormat:@"NO.%d +%.4f s",_finishedCount,intervalOffset];}else{label.string = [NSString stringWithFormat:@"NO.%d %.4f s",_finishedCount,player.elapsedTime];label.color = [CCColor greenColor];}label.visible = YES;if (_finishedCount == PlayerCount) {_finishedCount = 0;_matching = NO;_betPlayer = 0;_isBeted = NO;GameState *gameState = [GameState sharedInstance];gameState.money = 0;[self updateGambleState];}}];

主要变化都在block回调里,所以只贴出其中的内容.
主要逻辑是在比赛完毕后更新游戏状态.如果玩家赌对了则资金总数加上押注的数目,否则减去该数目.

为了区分出赢钱和输钱,我们在GameInterface类中添加新实例方法,首先改动接口声明:

-(void)updateStatusLabel:(NSString *)msg withColor:(CCColor*)color;

然后再到GameInterface.m中实现该方法:

-(void)updateStatusLabel:(NSString *)msg withColor:(CCColor*)color{CCColor *orgColor = _statusLabel.color;CCActionTintTo  *tintAction = [CCActionTintTo actionWithDuration:1 color:color];CCActionCallBlock *block = [CCActionCallBlock actionWithBlock:^{_statusLabel.color = orgColor;}];CCActionDelay *delayAction = [CCActionDelay actionWithDuration:4];CCActionSequence *seqAction = [CCActionSequence actions:tintAction,delayAction,block,nil];[self updateStatusLabel:msg];[_statusLabel runAction:seqAction];
}

大体上是根据color参数动态改变状态标签的颜色,最后复原原来的颜色.

这一阶段新增的游戏逻辑完成的差不多了,下面就是实现GameOver的情形了.

(NO.00001)iOS游戏SpeedBoy Lite成形记(二十)相关推荐

  1. (NO.00001)iOS游戏SpeedBoy Lite成形记(二十二)

    自己的游戏自己更需要多玩,这样才能首先发现不足的地方.所以本猫到现在已经忍一个地方很久了,就是弹出moneyLayer后每次都要输入数字才能关闭,这多少让人不爽.于是本篇我们就修正这个小小的不便. 首 ...

  2. (NO.00001)iOS游戏SpeedBoy Lite成形记(八)

    前一篇提到,如果要想动态修改选手的速度需要在update方法中添加代码. 因为update方法在游戏每一帧都会调用,所以我们不可能修改的太频繁.否则一来对性能有影响,而来玩家表现的极不自然,像抽风一样 ...

  3. (NO.00001)iOS游戏SpeedBoy Lite成形记(九)

    我们回到matchRun方法中去尝试第一次修改,部分代码如下: CCActionMoveBy *moveBy = [CCActionMoveBy actionWithDuration:duration ...

  4. (NO.00001)iOS游戏SpeedBoy Lite成形记(十)

    上篇最后遇到是神马问题呢? 原来由于现在seq动作的时间变得不确定了,jump的持续时间不能对应发生变化,导致可能选手在比赛后边就没有跳跃动作了!这虽不影响整个代码逻辑,却多少有些让玩家不爽. 一种解 ...

  5. (NO.00001)iOS游戏SpeedBoy Lite成形记(十九)

    最后就是要完成前面设定的第3件事:如果玩家赌对了则赢钱,反之输钱. 前面的框架搭的差不多了,所以这里实现起来也就不难了 ;) 首先我们怎么知道用户输入完毕,然后关闭窗口了?只有在这个点上GameSce ...

  6. (NO.00003)iOS游戏简单的机器人投射游戏成形记(二)

    打开Ai按需求依次绘制机器人身体,手臂和篮框: 因为是实验性质的游戏所以没必要在这上面花太多功夫,画出意思即可.虽然是2D游戏,但实际游戏中可以表现出伪3D的图形效果;尽管本猫这次画的游戏元素都是满满 ...

  7. (NO.00003)iOS游戏简单的机器人投射游戏成形记(二十一)

    回到Xcode中,在MainScene.h接口中添加碰撞协议: @interface MainScene : CCNode <CCPhysicsCollisionDelegate> //. ...

  8. 标题隐藏_经典街机游戏《三国志》,二十多年后你告诉我还有隐藏必杀

    当年在游戏厅我们玩到的<三国志>,几乎每个玩家都在那个时代通关过吧!毕竟作为最受欢迎的四小强游戏之一,<三国志>在游戏厅时代的地位非常高,无论新手还是高手都喜欢玩的一款游戏. ...

  9. 2D游戏入门——小狐狸系列(二十)为人物添加下蹲动画

    Session20:趴下效果Crouch 这节课我们来为主角添加趴下的效果 添加新的Button 打开Project Setting -> Input Manager,我们发现Unity并没有内 ...

最新文章

  1. 第2关:计算二叉树的深度和节点个数
  2. SVN 服务器发送了意外的返回值(405 Method Not Allowed),在响应 “MKCOL” 的请求
  3. delphi 手机访问lan_索尼全新“黑科技”,手机秒变PS4,Apex英雄彻底沦为手游?...
  4. 3.0 go mod之远程仓库搭建-代码示例
  5. Titanic(泰坦尼克号生存预测)---(1)
  6. [Ubuntu] 16.04 上使用 pip 安装 mysqlclient
  7. 顶饰条行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  8. C/C++头文件全解析
  9. execjs._exceptions.ProgramError: TypeError: ‘JSON‘ 未定义
  10. duilib消息类型
  11. python音乐爬虫_Python爬虫实践 —— 4.好听音乐网轻音乐资源下载
  12. 关于pointnet++系列编译文件(tf_ops)的问题
  13. centos 安装 时间校准与定时同步
  14. python转换word到html,Python实现批量将word转html并将html内容发布至网站的方法
  15. 什么是“决策表”?什么是“决策树”?
  16. 【学习笔记】AGC009/AGC019/AGC029/AGC035
  17. c语言个人所得税的打印思路,C语言编写一个计算个人所得税的程序,要求输入收入金额,能够输...
  18. 解决调用组件,组件内容不加载的问题
  19. 1060显卡支持dx12吗_P106矿卡魔改驱动修改及安装详解(含修改INF文件安装最新驱动,双独立显卡使用等)...
  20. python中各种属性与方法深析

热门文章

  1. [416]. 分割等和子集
  2. 多媒体计算机技术在教学中的应用,浅谈计算机多媒体在教学中的应用
  3. 七牛云-CDN常见问题
  4. 官方mysql的最新版下载网址
  5. stm32中u8,u16,u32的理解
  6. 先学C语言好还是先学JAVA好
  7. 【statistics】理想论坛2018-4-25日统计
  8. 电脑无法加载 reCaptcha 的解决方案
  9. ECSHOP 数据库结构说明 (适用版本v2.7.3)
  10. 化学结构格式SDF的认识