登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

查看: 139|回复: 6

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

[复制链接]

191

主题

191

帖子

1054

金钱

手工艺人

发表于 2018-1-11 14:33:46 | 显示全部楼层 |阅读模式

        

        我们首先必须将Level中所有机器人保存在某个数组里,因为该数组会在不同地方被访问,我们将其放在LevelRestrict类中,按道理应该放到GameState类中,这里从简.

        打开LevelRestrict.h,在接口中添加2个新属性:

[Java] 查看源文件 复制代码
#property (nonatomic,strong) Robot *selectedRobot;
#property (nonatomic,strong) NSArray *robotsInLevel;

        selectedRobot表示当前选中的机器人,robotsInLevel数组用来存放当前Level中的所有机器人实例.

        因为现在需要用户按住屏幕移动手臂,所以MainScene中要响应用户交互.同时由于Arm在Level中,所以有2个重叠层都要响应用户交互,我在单独的另一篇博文中详述了在多个重叠层中如何处理触摸,大家可以穿越过去查看,这里不再赘述:

        Cocos2D v3.x中关于重叠触摸层优先级的问题

        在其didLoadFromCCB方法中添加如下代码:

[Java] 查看源文件 复制代码
self.userInteractionEnabled = YES;

        同时修改原来的代码如下:

[Java] 查看源文件 复制代码
    _restrict = [LevelRestrict sharedInstance];
    _level = [CCBReader load:_restrict.levelName];
    [self addChild:_level z:100];
    _interface.zOrder = 200;

        现在MainScene在0序,level在100序,UI界面在最高的200序.因为UI界面不响应用户输入,所以忽略.它的Z序最高是因为显示信息不至于被后面的内容遮挡.

        现在Level中的手臂先接收到触摸事件,如果它处理则不往下传递,否则将其传递给MainScene的处理回调.

        MainScene不给手臂直接发送移动消息,而将消息发给机器人,由机器人移动手臂.所以我们要修改Robot的接口方法,下篇见.

        

                                               

0

主题

7049

帖子

-519

金钱

限制会员

发表于 2018-1-11 14:33:57 | 显示全部楼层
感谢大神~

14

主题

7052

帖子

1441

金钱

手工艺人

发表于 2018-1-11 14:35:20 | 显示全部楼层
code4app确实是个好地方,必须支持~

20

主题

7073

帖子

2321

金钱

手工艺人

发表于 2018-1-11 14:36:33 | 显示全部楼层
感谢大神~

20

主题

7104

帖子

2287

金钱

手工艺人

发表于 2018-1-11 14:37:44 | 显示全部楼层
code4app确实是个好地方,必须支持~

16

主题

7099

帖子

1071

金钱

手工艺人

发表于 2018-1-11 14:38:12 | 显示全部楼层
感谢大神分享,必须顶!

23

主题

7078

帖子

1054

金钱

iOS大神

Rank: 6Rank: 6

分享大神

发表于 2018-1-11 14:41:46 | 显示全部楼层
好好 学习了 确实不错
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

每日头条

通过邮件订阅最新 Code4App 信息
上一条 /4 下一条

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表