用SpriteBuilder简化"耕牛遍地走"的动画效果(四)
2015-11-17 14:40
423 查看
写到这突然有童鞋质疑,你这哪里是牛,分明是熊嘛!
仔细看了下,还真像牛.反正是这个意思.怪本猫猪牛熊不分,好在道理是一样的.
下面继续,言归正传.
添加一个空白的touchBegan方法,如果没有这个方法,其他触摸回调也不会被响应.
接着是重点部分来了:
原文中seq行为最后用来回调方法,这里直接用回调block即可,不用再另外写一个方法了.
代码没啥好说的,主要是计算实际移动时间,是否翻转熊头,然后根据熊的状态确定是否播放动画等行为.
在编译执行之前,现将didLoadFromCCB方法中的:
一行注释掉,否则会发生重复播放动画的错误.
现在编译运行app,效果如下:
仔细看了下,还真像牛.反正是这个意思.怪本猫猪牛熊不分,好在道理是一样的.
下面继续,言归正传.
添加一个空白的touchBegan方法,如果没有这个方法,其他触摸回调也不会被响应.
接着是重点部分来了:
-(void)touchEnded:(CCTouch *)touch withEvent:(CCTouchEvent *)event{ CGPoint location = [[CCDirector sharedDirector] convertTouchToGL:touch]; location = [self convertToNodeSpace:location]; CGSize viewSize = [CCDirector sharedDirector].viewSize; float bearVelocity = viewSize.width/3.0; CGPoint diff = ccpSub(location, _bear.position); float distance = ccpLength(diff); float moveDuration = distance/bearVelocity; //根据玩家点击的位置设置熊头的方向 if (diff.x < 0) { _bear.flipX = NO; }else{ _bear.flipX = YES; } [_bear stopAction:_moveAction]; if (!_bearMoving) { [_bear runAction:_walkAction]; } CCActionMoveTo *move = [CCActionMoveTo actionWithDuration:moveDuration position:location]; CCActionCallBlock *block = [CCActionCallBlock actionWithBlock:^{ [_bear stopAction:_walkAction]; _bearMoving = NO; }]; CCActionSequence *seq = [CCActionSequence actions:move,block,nil]; _moveAction = seq; [_bear runAction:_moveAction]; _bearMoving = YES; }
原文中seq行为最后用来回调方法,这里直接用回调block即可,不用再另外写一个方法了.
代码没啥好说的,主要是计算实际移动时间,是否翻转熊头,然后根据熊的状态确定是否播放动画等行为.
在编译执行之前,现将didLoadFromCCB方法中的:
[_bear runAction:_walkAction];
一行注释掉,否则会发生重复播放动画的错误.
现在编译运行app,效果如下:
相关文章推荐
- Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分
- iOS中UIScrollView和UIPageControl以及NSTimer的综合使用
- UIPickerview循环滚动
- 转:Jmeter以non-gui模式进行分布式测试
- UILabel自适应文本,让文本自适应
- UI阻塞及其优化
- UIlable 适应字体大小
- rpmbuild spec文件的注释问题
- SpannableStringBuilder的妙用
- Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html"
- UITabBarController的简单使用和属性方法总结
- 界面干货盘点 | 海量实用UI工具及示例等你来体验!
- easyui超链接中使用session值
- Android开发中关于UI图片资源的问题
- EasyUI DataGrid View
- LeetCode(232) Implement Queue using Stacks
- LeetCode(232) Implement Queue using Stacks
- 400 Bad Request
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(三)
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(三)