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

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

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

下面继续,言归正传.

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-23 23:35:59

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

用SpriteBuilder简化&quot;耕牛遍地走&quot;的动画效果(二)

首先使用SpriteBuilder新建一个项目,将之前下载的资源文件夹拖入SpriteBuilder的文件视图. 这里我们只需要一步操作就可以完成原文中在Texture Packer中的那么多操作:即把BearImageHD文件夹设置为智能精灵表文件夹(Smart Sprite Sheet): 接下来在Xcode中打开对应的项目,将原文中放在init方法中的代码移至didLoadFromCCB方法中.init方法运行时机太早,不能满足要求.有时太快也不好,欲速则不达! 首先打开触摸: self.

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

动画效果一: html代码: <div class="spinner">   <div class="rect1"></div>   <div class="rect2"></div>   <div class="rect3"></div>   <div class="rect4"></div>  

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

SpinKit 是一套网页动画效果,包含8种基于 CSS3 实现的很炫的加载动画.借助 CSS3 Animation 的强大功能来创建平滑,易于定制的动画.SpinKit 的目标不是提供一个每个浏览器都兼容的解决方案,而是给现代浏览器提供更优的技术实现方案和更佳的使用体验.(为保证最佳的效果,请在 Chrome.Firefox 和 Safari 等现代浏览器中浏览) Loading 动画效果一 HTML 代码: <div class="spinner"> <div c

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

Loading 动画效果一 HTML 代码: 1 2 3 4 5 6 7 <div class="spinner">   <div class="rect1"></div>   <div class="rect2"></div>   <div class="rect3"></div>   <div class="rect4&qu

风火轮 – 动画效果

风火轮越来越有广告范,之前实现的素材导入功能已能解决50%的用户需求,即可以拖入现成的动画.视频及图片素材,效果见QQ空间之前的某篇日志. 从进化发展角度来看,现在的很多产品,纯硬件的竞争已是薄利见血,软件功能提升才是王道. 所以,软件实现得加强.电子黑板如此,风火轮也如此. 准备实现动画效果. 闭门造车是白手起家的最脑残做法,所以先放眼成熟产品,看哪些功能与UI可以借鉴. 做素材,一般会选取FLASH.Photoshop,而动画效果,PPT是大家耳熟能详的. 仔细研究一下,决定采用PPT的界面

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

使用CSS3实现超炫的Loading(加载)动画效果 SpinKit 是一套网页动画效果,包含8种基于 CSS3 实现的很炫的加载动画.借助 CSS3 Animation 的强大功能来创建平滑,易于定制的动画.SpinKit 的目标不是提供一个每个浏览器都兼容的解决方案,而是给现代浏览器提供更优的技术实现方案和更佳的使用体验.(为保证最佳的效果,请在 Chrome.Firefox 和 Safari 等现代浏览器中浏览) Loading 动画效果一 HTML 代码: 1 2 3 4 5 6 7 <

10款web前端动感的图片动画效果

1.Salvattore:CSS 驱动的 jQuery Masonry 插件 Salvattore 是一个 jQuery 砌体的替代,使用 CSS 驱动的配置.Salvattore 根据您指定的列数组织你的 HTML 元素.容器中的每一个项目会一个接一个被放置在列内,只需要简单地添加一个 data-columns 属性.在你的 CSS 文件中,你可以设置你想为元素创建的列数.要创建一个具有响应性的柱状设计,只需使用媒体查询.项目附加在同一容器的前面,不会发生冲突.您可以结合 XHR 功能的 AP

JQuery中的动画效果

JQUERY DAY03: * 动画效果 * 显示与隐藏 * show() - 显示 * 无参版本 - 不具有动画效果 * show(speed,callback)有参版本 - 具有动画效果 * speed - 设置动画执行的时长,单位为毫秒 * 三个预定义值 - slow|normal|fast * callback - 当动画执行完毕后执行的函数 * hide() - 隐藏 * 无参版本 - 不具有动画效果 * hide(speed,callback)有参版本 - 具有动画效果 * spee

风火轮 – 飞入动画效果

在动画基类的基础上,再实现各种动画效果,只需专注于各种逻辑实现,倒也不是太难的事. 今天实现第二个动画效果-飞入. 1.  飞入效果 代码很少,因为只需要确定不同时间的位置,故只重载BuildDisplayRect: 头文件 /** *@class TCbwAnimationEffect_ FlyIn *@brief 动画基类 * * 处理飞入动画效果 *@author 陈斌文 *@version 1.0 *@date 2015-03-04 *@QQ: 282397369 */ class TC