(NO.00002)iOS游戏精灵战争雏形(五)
2015-11-01 13:18
337 查看
完成了精灵自己移动之后,我们开始着手实现按住精灵拖动的功能.
要想处理触摸事件,我们需要做2件事:
1.在类的初始化中打开触摸接收属性
2.实现触摸处理回调方法
我们依次来做这2件事.
首先要搞清楚在哪里打开触摸接收.是在MainScene场景中吗?也不是不可以,但是那样你必须要判断触摸位置是否在精灵节点上,然后再调整精灵的位置.
我们这里直接在精灵的Player类中开启触摸.首先在Player的初始化方法中开启触摸:
接着我们添加3个触摸回调方法:
-(void)touchEnded:(CCTouch )touch withEvent:(CCTouchEvent )event{
self.color = _orgColor;
}
-(void)touchMoved:(CCTouch )touch withEvent:(CCTouchEvent )event{
CGPoint location = [[CCDirector sharedDirector] convertTouchToGL:touch];
location = [self positionToPercentage:location];
[self stopAllActions];
self.position = location;
}
-(void)touchBegan:(CCTouch )touch withEvent:(CCTouchEvent )event{
_orgColor = self.color;
self.color = [CCColor yellowColor];
}
_orgColor实例变量用来保存原来的颜色,其实原来的颜色就是白色.
下面大致说说上面3个方法做了哪些事.玩家首次触摸到精灵时,touchBegan被调用,它修改了精灵的颜色,表示精灵目前处在被按下的状态.
当玩家按住精灵不放并且同时移动手指时,touchMoved方法被调用,我们首先将精灵的位置转换为整个屏幕的坐标,然后计算其实际的百分比的位置.因为在SpriteBuilder中我们设置该精灵的位置为百分比类型,所以这里要做一下转换.然后停止精灵的一切动作,如果有的话.最后我们设置精灵位置为触摸点的位置,这样就完成了移动精灵.
最后当玩家抬起手指时,我们将精灵颜色还原到正常状.
编译运行App,可以发现精灵现在受我们的手指摆布了:
要想处理触摸事件,我们需要做2件事:
1.在类的初始化中打开触摸接收属性
2.实现触摸处理回调方法
我们依次来做这2件事.
首先要搞清楚在哪里打开触摸接收.是在MainScene场景中吗?也不是不可以,但是那样你必须要判断触摸位置是否在精灵节点上,然后再调整精灵的位置.
我们这里直接在精灵的Player类中开启触摸.首先在Player的初始化方法中开启触摸:
-(void)didLoadFromCCB{ self.userInteractionEnabled = YES; }
接着我们添加3个触摸回调方法:
-(void)touchEnded:(CCTouch )touch withEvent:(CCTouchEvent )event{
self.color = _orgColor;
}
-(void)touchMoved:(CCTouch )touch withEvent:(CCTouchEvent )event{
CGPoint location = [[CCDirector sharedDirector] convertTouchToGL:touch];
location = [self positionToPercentage:location];
[self stopAllActions];
self.position = location;
}
-(void)touchBegan:(CCTouch )touch withEvent:(CCTouchEvent )event{
_orgColor = self.color;
self.color = [CCColor yellowColor];
}
_orgColor实例变量用来保存原来的颜色,其实原来的颜色就是白色.
下面大致说说上面3个方法做了哪些事.玩家首次触摸到精灵时,touchBegan被调用,它修改了精灵的颜色,表示精灵目前处在被按下的状态.
当玩家按住精灵不放并且同时移动手指时,touchMoved方法被调用,我们首先将精灵的位置转换为整个屏幕的坐标,然后计算其实际的百分比的位置.因为在SpriteBuilder中我们设置该精灵的位置为百分比类型,所以这里要做一下转换.然后停止精灵的一切动作,如果有的话.最后我们设置精灵位置为触摸点的位置,这样就完成了移动精灵.
最后当玩家抬起手指时,我们将精灵颜色还原到正常状.
编译运行App,可以发现精灵现在受我们的手指摆布了:
相关文章推荐
- 二、IOS SDK详解之NSArray/NSMutableArray
- 无线客户端框架设计(2):项目结构的设计(iOS篇)
- 无线客户端框架设计(3):基类的设计(iOS篇)
- 无线客户端框架设计(4):自定义生命周期的设计(iOS篇)
- 无线客户端框架设计(5):调用MobileAPI的设计(iOS篇)
- 无线客户端框架设计(5.1):将JSON映射为实体对象(iOS篇)
- (NO.00002)iOS游戏精灵战争雏形(四)
- (NO.00002)iOS游戏精灵战争雏形(四)
- (NO.00002)iOS游戏精灵战争雏形(四)
- (NO.00002)iOS游戏精灵战争雏形(三)
- (NO.00002)iOS游戏精灵战争雏形(三)
- (NO.00002)iOS游戏精灵战争雏形(三)
- (NO.00002)iOS游戏精灵战争雏形(二)
- (NO.00002)iOS游戏精灵战争雏形(二)
- (NO.00002)iOS游戏精灵战争雏形(二)
- (NO.00002)iOS游戏精灵战争雏形(一)
- (NO.00002)iOS游戏精灵战争雏形(一)
- (NO.00002)iOS游戏精灵战争雏形(一)
- ios完整学习路线
- iOS7之定制View Controller切换效果