写到这突然有童鞋质疑,你这哪里是牛,分明是熊嘛!

仔细看了下,还真像牛.反正是这个意思.怪本猫猪牛熊不分,好在道理是一样的.

下面继续,言归正传.

添加一个空白的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,效果如下:

用SpriteBuilder简化"耕牛遍地走"的动画效果(四)的更多相关文章

  1. 用SpriteBuilder简化"耕牛遍地走"的动画效果(三)

    接下来的代码和原文差不多,建立一个数组用来存放动画帧,然后用数组来初始化一个CCAnimation动画对象.接着将牛放在屏幕中心,然后运行动画: NSMutableArray *walkAnimFra ...

  2. 用SpriteBuilder简化"耕牛遍地走"的动画效果(一)

    这又是一个使用SpriteBuilder带来便捷的例子 原文地址在: http://www.raywenderlich.com/32045/how-to-use-animations-and-spri ...

  3. 用SpriteBuilder简化"耕牛遍地走"的动画效果(二)

    首先使用SpriteBuilder新建一个项目,将之前下载的资源文件夹拖入SpriteBuilder的文件视图. 这里我们只需要一步操作就可以完成原文中在Texture Packer中的那么多操作:即 ...

  4. 使用 CSS3 实现超炫的 Loading(加载)动画效果

    SpinKit 是一套网页动画效果,包含8种基于 CSS3 实现的很炫的加载动画.借助 CSS3 Animation 的强大功能来创建平滑,易于定制的动画.SpinKit 的目标不是提供一个每个浏览器 ...

  5. 使用CSS3实现超炫的Loading(加载)动画效果

    SpinKit 是一套网页动画效果,包含8种基于 CSS3 实现的很炫的加载动画.借助 CSS3 Animation 的强大功能来创建平滑,易于定制的动画.SpinKit 的目标不是提供一个每个浏览器 ...

  6. loading 动画效果(收藏起来以后留着慢慢用)

    动画效果一: html代码: <div class="spinner">   <div class="rect1"></div&g ...

  7. css3 加载动画效果

    Loading 动画效果一           HTML 代码: <div class="spinner"> <div class="rect1&quo ...

  8. 最简化模型——css3分阶段动画效果(经过实测)

    body {    background: #dcdcdc;    -webkit-animation: colorin 5s; /* chrome调用属性 */    animation: colo ...

  9. python 全栈开发,Day53(jQuery的介绍,jQuery的选择器,jQuery动画效果)

    js总结 js: 1.ECMAScript5 ES5语法 2.DOM CRUD 获取 3种方式 id tag className //面向对象 对象 : 属性和方法 某个对象中 function $( ...

随机推荐

  1. Arduino抢答器

    0.部分需要掌握的知识点和注意事项 (1)面包板的结构 (2)按键的结构:按键按下时,左右两侧连通:按键松开后,左右两侧断开,但1号与2号相连,3号与4号相连,即按键松开时,同侧不相连,相连不同侧. ...

  2. Java中的String,StringBuilder,StringBuffer三者的区别

    最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下, ...

  3. 开发一个 app 有多难?

    171 个回答 默认排序​ 道衍天机 有事情的加微信1293190838找我 1,150 人赞同了该回答 ----------------------------------------------- ...

  4. Hibernate给表和字段设置前后缀及分隔符

    在<一口一口吃掉Hibernate(一)--使用SchemaExport生成数据表>中介绍了如何生成数据表.但是这只是最基本的.hibernate在生成或者操作数据库时,会受一些限制.比如 ...

  5. 【python进阶】Garbage collection垃圾回收1

    前言 GC垃圾回收在python中是很重要的一部分,同样我将分两次去讲解Garbage collection垃圾回收,此篇为Garbage collection垃圾回收第一篇,下面开始今天的说明~~~ ...

  6. TortiseGit 添加SSH-Key

    TortoiseGit 使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥.使用命令ssh-keygen -C "邮箱地址" -t rsa产生的密钥在Tortoi ...

  7. DEV中svg图标的使用

    0.开始之前 先看看使用效果 在操作栏的使用: 在菜单中的使用 1.简述SVG图标 中文名:可缩放矢量图形 外文名:Scalable Vector Graphics 外语缩写:SVG 开发商:万维网联 ...

  8. 如果将Joomla网站搜索结果显示到一个“干净”页面

    有时候大家会发现Joomla网站自带的或者第三方的搜索功能时,搜索结果会显示在首页,和首页其它的模块如图片橱窗等显示在一起,非常混乱. 在这里教大家一个不需要修改代码的小技巧来解决这个问题,使搜索结果 ...

  9. Oracle中时间和日期函数总结

    查看当前日期格式:select * from nls_session_parameters where parameter='NLS_DATE_FORMAT'; 修改日期的格式: alter sess ...

  10. Windows环境下,从零开始搭建Nodejs+Express+Ejs框架(一)---安装nodejs

    第一步,安装nodejs https://nodejs.org/en/download/ 这个是nodejs的官网,由于操作系统是win7 64位的,所以,我下载的是node-v8.11.1-x64的 ...