(NO.00003)iOS游戏简单的机器人投射游戏成形记(十四)
2015-11-11 09:50
477 查看
我们首先必须将Level中所有机器人保存在某个数组里,因为该数组会在不同地方被访问,我们将其放在LevelRestrict类中,按道理应该放到GameState类中,这里从简.
打开LevelRestrict.h,在接口中添加2个新属性:
selectedRobot表示当前选中的机器人,robotsInLevel数组用来存放当前Level中的所有机器人实例.
因为现在需要用户按住屏幕移动手臂,所以MainScene中要响应用户交互.同时由于Arm在Level中,所以有2个重叠层都要响应用户交互,我在单独的另一篇博文中详述了在多个重叠层中如何处理触摸,大家可以穿越过去查看,这里不再赘述:
Cocos2D v3.x中关于重叠触摸层优先级的问题
在其didLoadFromCCB方法中添加如下代码:
同时修改原来的代码如下:
现在MainScene在0序,level在100序,UI界面在最高的200序.因为UI界面不响应用户输入,所以忽略.它的Z序最高是因为显示信息不至于被后面的内容遮挡.
现在Level中的手臂先接收到触摸事件,如果它处理则不往下传递,否则将其传递给MainScene的处理回调.
MainScene不给手臂直接发送移动消息,而将消息发给机器人,由机器人移动手臂.所以我们要修改Robot的接口方法,下篇见.
打开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的接口方法,下篇见.
相关文章推荐
- 17个提升iOS开发效率的必用工具
- iOS常用三方库
- ios 启动程序时隐藏状态栏,启动后显示状态栏
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(十三)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(十三)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(十三)
- 初窥iOS 9联系人框架
- iOS -- 沙盒位置(ios8之前的已过期)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(十二)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(十二)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(十二)
- 百度推送iOS
- 讲解iOS开发中对音效和音乐播放的简单实现
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(十一)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(十一)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(十一)
- iOS---Finder找不到Library目录?
- IOS 开发资源汇总
- iOS常用加密算法
- openURL的使用(iOS调用系统电话、浏览器、地图、邮件等)