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

简介:

最后就是要完成前面设定的第3件事:如果玩家赌对了则赢钱,反之输钱.

前面的框架搭的差不多了,所以这里实现起来也就不难了 ;)

首先我们怎么知道用户输入完毕,然后关闭窗口了?只有在这个点上GameScene才能做下一步操作,比如将实例变量_isBeted置为YES.

一个可能的方法是创建一个回调协议,在GameScene实现该协议.一旦菜单窗口关闭就调用协议中的方法.

因为这个例子中的菜单窗口不多,回调也不复杂.所以我们用另一种方法,就是给每个弹出窗口赋予一个唯一的名字,然后在GameScene的removePopup中做判断,从而执行对应的代码.

打开SpriteBuilder,给moneyLayer窗口指定一个名字moneyLayer:

这里写图片描述

回到GameScene修改removePopup方法如下:

-(void)removePopup{
    if (_popupLayer) {
        NSString *popupName = _popupLayer.name;

        [_popupLayer removeFromParent];
        _popupLayer = nil;
        self.userInteractionEnabled = YES;

        if ([popupName isEqualToString:@"moneyLayer"]) {
            [self moneyLayerReturnCallback];
        }else if([popupName isEqualToString:@"gameoverLayer"]){
            [self gameoverLayerReturnCallback];
        }
    }
}

后面else判断的是其他窗口,这里可以先略过.

然后实现moneyLayerReturnCallback方法:

-(void)moneyLayerReturnCallback{
    //GameState *gameState = [GameState sharedInstance];
    [self updateGambleState];
    _isBeted = YES;
}

里面怎么又有一个updateGambleState方法!?这就是前面用来实现显示每轮比赛压赌状态功能的啊.实现如下:

static NSString *GambleFormat = @"余额:%d 赌金:%d 选手:%d";

-(void)updateGambleState{
    GameState *gameState = [GameState sharedInstance];
    NSString *msg = [NSString stringWithFormat:GambleFormat,gameState.totalMoney,gameState.money,_betPlayer];
    [_interface updateGambleLabel:msg];
}

这就是前面的图片最上方的内容的实现.

相关文章
|
BI 开发工具 Android开发
和iPhone玩家对战吧,Google Play游戏服务将支持iOS平台
Google今天在游戏开发者大会上宣布了若干与Google Play游戏服务的相关更新,其中和游戏玩家关系最大的也许就是Google Play Game Services将支持iOS平台,这也就意味着回合制和实时多人游戏将同时支持Android和iOS,以后这两个平台的玩家也就可以互动了。显然,这对于游戏开放商也是个好消息——让原本被割裂的用户参与到同场竞技中来。
324 0
和iPhone玩家对战吧,Google Play游戏服务将支持iOS平台
|
算法 开发工具 git
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法(二)
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法
194 0
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法(二)
|
算法 iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法(一)
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法
194 0
|
开发工具 git iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计(二)
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
269 0
|
算法 iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
170 0
|
测试技术 Android开发 iOS开发
Unity3D-实现连续点击两次返回键退出游戏(安卓/IOS)
Unity3D-连续点击两次返回键退出游戏 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例...
2896 0