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

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

下面继续,言归正传.

添加一个空白的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. window 2008 下 安装域管理并且控制禁用QQ和U盘

    场景需求下: 需求一:禁止普通用户使用USB.CD-ROM等驱动器防止病毒和资料外泄  需求二:并USB 键盘鼠标要可以使用 三:限制qq聊天工具的使用.这是公司真实环境需求.因此需要先模拟测试一下, ...

  2. JVM指令集介绍

    转载自:http://glutinit.iteye.com/blog/1263446 延伸参考 JVM接收参数和方法调用 void spin() {    int   i;    for (i = 0 ...

  3. AQS简简单单过一遍

    前言 回顾前面: 多线程三分钟就可以入个门了! Thread源码剖析 多线程基础必要知识点!看了学习多线程事半功倍 Java锁机制了解一下 只有光头才能变强! 本来我是打算在这章节中写Lock的子类实 ...

  4. 关于return的一些了解

    写return是一种清晰的风格,可以防止一些意外的错误. 所以书上只说应该写,而不是必须写. 如果符合某个条件要退出的话,可以用return返回,否则可以不写这句代码的,当程序执行到"}&q ...

  5. 新手级配置 react react-router4.0 redux fetch sass

    前言 最近公司来了几个实习生,刚好我手头没什么要紧事,然后领导让我带他们学习react, 为下一个react项目做基础. 然后随手写了几个demo,帮助他们了解正经项目如何去构建配置项目. 现在分享出 ...

  6. 搭建一个交互式的前端构建环境.md

    为了提高开发效率.减少重复的操作,现在几乎全部的前端项目都需要依赖一些构建工具来实现自动化打包,主流的有webpack, gulp, grunt等.加上各种各样的配置文件就会形成了一个相对复杂的构建环 ...

  7. MongoDB 条件操作符

    描述 条件操作符用于比较两个表达式并从mongoDB集合中获取数据. 在本章节中,我们将讨论如何在MongoDB中使用条件操作符. MongoDB中条件操作符有: (>) 大于 - $gt (& ...

  8. JavaScript 对象JavaScript 对象

    JavaScript 中的所有事物都是对象:字符串.数值.数组.函数... 此外,JavaScript 允许自定义对象. 所有事物都是对象 JavaScript 提供多个内建对象,比如 String. ...

  9. UDP单播和组播使用SO_REUSEADDR 测试结果

    UDP单播通信 一. 预置条件 A.B在同一台机器,网络中存在往A.B所在的机器的8888端口发送单播UDP数据 A:端口复用绑定在端口8888上 B:端口复用绑定在端口8888上操作步骤:(1)先启 ...

  10. AndroidStudio中导入SlidingMenu报错解决方案

    ----------------------------------------------------------------------------------------------[版权申明: ...