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

这又是一个使用SpriteBuilder带来便捷的例子

原文地址在:

http://www.raywenderlich.com/32045/how-to-use-animations-and-sprite-sheets-in-cocos2d-2-x

作者是Tony Dahbura,写的十分精彩.尤其是那些牛传神的动画素材,非本猫猪这类画痴(不是花痴哦)所及啊!

大家可以去看一下具体实现,主要几个关键点:

  1. 用的是Cocos2D v2.x,非v3.x版本
  2. 没有用SpriteBuilder
  3. 使用了Texture Packer软件生成精灵帧大图

虽然Texture Packer是一款非常优秀的软件,操作起来也不是太麻烦,但是如果我们有了SpriteBuilder,就可以直接忽略Texture Packer了.

以下是本系列博文的主要内容:

  1. 使用SpriteBuilder代替Texture Packer更加简化操作
  2. 使用Cocos2D v3.4的代码替代v2.x的代码

下面是动画图片素材下载地址,是由作者可爱的妻子绘制的:

http://cdn5.raywenderlich.com/downloads/BearImagesHD.zip

大家可以自行下载,放到自己的资源文件夹中去,下一篇正式开始实现动画,see you ;)

时间: 2024-11-05 20:43:35

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

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

接下来的代码和原文差不多,建立一个数组用来存放动画帧,然后用数组来初始化一个CCAnimation动画对象.接着将牛放在屏幕中心,然后运行动画: NSMutableArray *walkAnimFrames = [NSMutableArray array]; for (int i = 1; i <= 8; i++) { spriteFrame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName: [NSString s

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

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

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

写到这突然有童鞋质疑,你这哪里是牛,分明是熊嘛! 仔细看了下,还真像牛.反正是这个意思.怪本猫猪牛熊不分,好在道理是一样的. 下面继续,言归正传. 添加一个空白的touchBegan方法,如果没有这个方法,其他触摸回调也不会被响应. 接着是重点部分来了: -(void)touchEnded:(CCTouch *)touch withEvent:(CCTouchEvent *)event{ CGPoint location = [[CCDirector sharedDirector] conver

jsp truts-&amp;amp;lt;div class=&amp;amp;quot;error_mes&amp;amp;quot;&amp;amp;gt;${message}&amp;amp;lt;/div&amp;amp;gt;

问题描述 <div class="error_mes">${message}</div> ${message}什么意思?${message}通常在哪实现? 解决方案 ${message}是java中el表达式 可以获取域中的值 四大作用域 application request session pageContext 建议百度看下el表达式就ok了 解决方案二: jsp中的EL表达式,具体看下这里面.http://blog.csdn.net/chinacshar

ajax-兄弟伙我的OnSuccess=&amp;amp;quot;afterLogin&amp;amp;quot;咋调用不起

问题描述 兄弟伙我的OnSuccess="afterLogin"咋调用不起 兄弟伙我的OnSuccess="afterLogin"咋调用不起,直接返回return Content类容到页面 @{ Layout = null; } <!DOCTYPE html> 网上超市管理系统 </p> <pre><code> //就是执行controller方法以后执行的方法 function afterLogin(data) {

safari-MacBook的Safari下type=&amp;amp;quot;submit&amp;amp;quot;点击后显示不出div

问题描述 MacBook的Safari下type="submit"点击后显示不出div 如题,按钮点击的时候在window浏览器这个红色背景的div会一闪而过,但是在macbook的Safari中什么效果都没有,return false的时候div可以显示出来,但表单还怎么提交啊,return true时页面中div已经加载变成block了,感觉是还没来得及被浏览器渲染页面就刷新了一下,有没有什么办法可以让它有一闪而过的效果? html: <div id="divTes

jquery mobile中使用data-role=&amp;amp;quot;dialog&amp;amp;quot;弹出对话框的问题

问题描述 jquery mobile中使用data-role="dialog"弹出对话框的问题 如图,当页面除了一个"page"和"dialog"还有其它的 容器时,对话框后的背景就会显示没有样式的这个容器内容, 这是为什么呢,怎样才能让背景中不显示任何东西 解决方案 试试把背景内容放到另一个page中 你说的data-role =dialog 我没注意到 这个属性... 另外 可以看看 . data-role=popup http://www.

java web-&amp;amp;lt;c:forEach items=&amp;amp;quot;${salesProducts }&amp;amp;quot; var=&amp;amp;quot;pro&amp;amp;quot;&amp;amp;gt;

问题描述 <c:forEach items="${salesProducts }" var="pro"> ${pro.goodsName}特价:¥${pro}/c:forEach pro的bean类属性都设了getter和setter方法,但是${pro.goodsName}没值,${pro}却有值 解决方案 检查一下goodsName属性名称有没写错. 解决方案二: private String goodsName;public String getG

SpriteBuilder中使用Node类型的ccb动画节点删除时崩溃的问题

因为节点需要呈现动画效果,虽然只有两个不同帧. 在SpriteBuilder中新建Bullet.ccb文件,类型为node. 添加如上2张图片,并制作动画效果帧. 在游戏中子弹遇到障碍物会被删除,时机是随机的.子弹在飞出屏幕时也会被删除. 实际运行App会发现必定崩溃,在子弹随机删除几秒后. 发现Xcode总是中断在动画管理器(CCAnimationManager)中,遂将Bullet.ccb的动画效果删除,没有问题了. 因为Bullet的类型是Node,其self.userObject总为ni