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

来源:互联网 发布:java线程超时控制 编辑:程序博客网 时间:2024/05/16 06:26

现在游戏中如果钱用光了赌场也是不管的,所以我们要加上Game Over的逻辑。

出现游戏结束条件很简单,就是GameState的totalMoney <= 0.而在游戏结束时我们要做些什么呢?有很多种展现的形式,我们这里就弹出一个菜单,然后让玩家选择重新开始或是回到游戏主菜单。

打开SpriteBuilder,新建一个GameOverLayer.ccb文件,类似于PopupMoneyLayer.ccb的设置,这里不再赘述。我们添加2个按钮,按合适的位置布局它们的位置,设置Root节点自定义类为PopupLayer。然后分别设置按钮的的回调方法为gameRetry和gameReturnMain,做好的窗口界面如下:

这里写图片描述

打开Xcode,在PopupLayer.m中实现上述2个方法:

-(void)gameRetry{    GameState *gameState = [GameState sharedInstance];    gameState.totalMoney = 1000;    [self.gameScene removePopup];}-(void)gameReturnMain{    CCScene *mainScene = [CCBReader loadAsScene:@"MainScene"];    CCTransition *trans = [CCTransition transitionCrossFadeWithDuration:1];    [[CCDirector sharedDirector] replaceScene:mainScene withTransition:trans];}

同样我们要在适当的时候弹出该菜单窗口,自然在每场比赛结束的时候判断,即在matchRun中block里:

if ([self isGameOver]) {                    CCLOG(@"Game Over");                    [self showPopupNamed:@"Layers/GameOverLayer"];                }

在GameScene.m补全isGameOver方法:

-(BOOL)isGameOver{    GameState *gameState = [GameState sharedInstance];    if (gameState.totalMoney <= 0) {        return YES;    }    return NO;}

好了,现在游戏结束时玩家可以选择重试或者是返回主界面鸟。

这里写图片描述

请先忽略背景超大的大头贴和万丈光辉,我们后面自会提及。
当然这只是简单的App,在真实的游戏中我们可以消耗宝石,降低难度,提示玩家充值,加入可恶的广告等等诸多大法。

0 0
原创粉丝点击