您的位置:首页 > 移动开发 > IOS开发

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

2015-10-26 15:07 537 查看
现在游戏中如果钱用光了赌场也是不管的,所以我们要加上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,在真实的游戏中我们可以消耗宝石,降低难度,提示玩家充值,加入可恶的广告等等诸多大法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 游戏