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

简介:

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

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

@property (nonatomic,strong) Robot *selectedRobot;
@property (nonatomic,strong) NSArray *robotsInLevel;

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

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

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

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

self.userInteractionEnabled = YES;

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

    _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的接口方法,下篇见.

相关文章
|
9天前
|
机器学习/深度学习 人工智能 自动驾驶
强化学习算法在游戏、机器人和自动驾驶等领域的应用与实践
强化学习算法在游戏、机器人和自动驾驶等领域的应用与实践
177 0
强化学习算法在游戏、机器人和自动驾驶等领域的应用与实践
|
10月前
|
机器学习/深度学习 传感器 编解码
路径规划算法:基于饥饿游戏优化的机器人路径规划算法- 附matlab代码
路径规划算法:基于饥饿游戏优化的机器人路径规划算法- 附matlab代码
|
BI 开发工具 Android开发
和iPhone玩家对战吧,Google Play游戏服务将支持iOS平台
Google今天在游戏开发者大会上宣布了若干与Google Play游戏服务的相关更新,其中和游戏玩家关系最大的也许就是Google Play Game Services将支持iOS平台,这也就意味着回合制和实时多人游戏将同时支持Android和iOS,以后这两个平台的玩家也就可以互动了。显然,这对于游戏开放商也是个好消息——让原本被割裂的用户参与到同场竞技中来。
272 0
和iPhone玩家对战吧,Google Play游戏服务将支持iOS平台
|
算法 开发工具 git
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法(二)
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法
155 0
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法(二)
|
算法 iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法(一)
iOS简易蓝牙对战五子棋游戏设计思路之二——核心棋盘逻辑与胜负判定算法
155 0
|
开发工具 git iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计(二)
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
202 0
|
算法 iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
140 0
|
测试技术 Android开发 iOS开发
Unity3D-实现连续点击两次返回键退出游戏(安卓/IOS)
Unity3D-连续点击两次返回键退出游戏 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例...
2822 0