五毛的cocos2d-x学习笔记08-动画

一个例子就够了,单击文本标签,执行动画。我也是小白,写这个demo的时候遇到了问题,单击文本标签游戏就死掉了。今天为了解决这个问题也是一晚没睡,到学习群里问大神,经过大神的指点解决了问题。原来是Animation和Animate的生命周期的关系。先记下。

 1 bool HelloWorld::init()
 2 {
 3     //////////////////////////////
 4     // 1. super init first
 5     if ( !Layer::init() )
 6     {
 7         return false;
 8     }
 9
10     SpriteFrameCache *cache = SpriteFrameCache::getInstance();
11     cache->addSpriteFramesWithFile("a6.plist");
12
13     Vector<SpriteFrame*> vec;
14     char name[15];
15     memset(name, 0, 15);
16
17     for (int i = 1; i <=7; i++){
18         sprintf(name, "a6_%02d.png", i);
19         vec.pushBack(cache->getSpriteFrameByName(name));
20     }
21
22     Animation *animation = Animation::createWithSpriteFrames(vec, 0.1f, 1);
23
24     Animate *animate = Animate::create(animation);
25
26     auto sprite = Sprite::create();
27     addChild(sprite);
28     sprite->setPosition(Vec2(200, 200));
29     //sprite->runAction(RepeatForever::create(animate));
30
31     auto label = LabelTTF::create("Touch", "Courier", 30);
32     label->setPosition(Vec2(500, 500));
33     addChild(label);
34
35     int i = 10;
36
37     EventListenerTouchOneByOne *listener = EventListenerTouchOneByOne::create();
38     listener->onTouchBegan = [=](Touch *t, Event *e){
39     if (label->getBoundingBox().containsPoint(t->getLocation())){
40         //notification: pay attention to the life cycle of Animation and Animate
41         Animation *animation = Animation::createWithSpriteFrames(vec, 0.1f, 1);
42         Animate *animate = Animate::create(animation);
43         sprite->runAction(animate);
44         log("i=%d", i);
45         return true;
46     }
47     return false;
48     };
49     //notifation:here is "this" not "label" because if here is "label", Touch *t equals to "label"
50     Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,this);
51     return true;
52 }

init

运行效果:

需要源码和素材的请留邮箱。

时间: 2025-01-22 22:03:05

五毛的cocos2d-x学习笔记08-动画的相关文章

C++ GUI Qt4学习笔记08

C++ GUI Qt4学习笔记08 qtc++signal图形引擎文档 [html] view plaincopy 本章介绍Qt的二维图形引擎,Qt的二维图形引擎是基于QPainter类的.<span style="color:#ff0000;">QPainter既可以绘制几何图形(点.线.矩形等),也可以绘制像素映射.图像和文字.此外QPainter还支持一些高级特性,例如反走样.像素混合.渐变填充和矢量路径等.QPainter也支持线性变换,例如平移.旋转.错切和缩放.

iOS学习笔记10-UIView动画

上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UIView动画封装 一.UIView动画 苹果知道图层动画使用麻烦,就为我们封装到了UIView里,使我们可以简单的实现各种动画效果. 1. 基础动画 主要实现方法为: + (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTime

[原创]java WEB学习笔记08:ServletResponse &amp; HttpServletResponse

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

CSS学习笔记08 浮动

从CSS学习笔记05 display属性一文中,我们知道div是块元素,会独占一行,即使div的宽度很小,像下面这样 应用display属性的inline属性可以让div与div共享一行,除了这种方法外,还有没有其他方法可以实现这种效果呢,答案是肯定的,那就是下面要介绍的CSS的浮动特性,浮动从字面意思上来看,就是浮起来,动起来,那么是谁浮起来,又是谁动起来呢?往下看,很快就会知道答案了. 元素的浮动是指设置了浮动属性的元素会脱离标准文档流的控制,漂浮在标准流之上.元素浮动后,虽然脱离标准流,但

Android学习笔记-tween动画

Android动画分为Tween动画和Frame动画,近期学习了,体tween动画,现在讲学习的心得以及相关知识介绍如下. Tween又称为补间动画,可以把对象进行缩小.放大.旋转和渐变等操作.    第一: Tween动画四个主要实现类: 1.AlphaAnimation:渐变(颜色)动画,主要控制透明度变化动画类,常使用AlphaAnimation(float fromAlpha, float toAlpha)来构造: fromAlpha:动画开始时的透明度(取值范围为0.0到1.0): t

angular2 学习笔记 ( animation 动画 )

refer : https://angular.io/guide/animations https://github.com/angular/angular/blob/master/packages/animations/src/animation_metadata.ts https://github.com/angular/angular/commit/f1a9e3c (router) angular 的动画建立在一堆的方法上: 1. trigger 触发器, 用来和 dom 交互 <div

Unreal Engine4 学习笔记2 动画蒙太奇

动画蒙太奇出现的位置是在动画蓝图的动画图表和事件图表中,如下图 事件图表,可以看出在主线执行的结尾,如果is Punching 为true,则会执行一个我们自定义的Punch Event,用来播放动画蒙太奇 2.动画图表,这里已经不再直接又状态机直接输出POSE,而是现将POSE存到缓存,然后再混合起来.注意在混合的时候,可以在红圈处选择骨骼,至于混合的具体规则我不是很清楚,但是如果选择骨盆的话,则拳击的时候只上半身拳击而下半身可以跑步等不受影响 3.上图中upperbody这个插槽(组)定义的

[CSS3] 学习笔记-CSS动画特效

在CSS3中,出现了很多出彩的效果,例如2D.3D以及过度.动画和多列等.这些效果为页面设计添加了很多的可选设计. 1.2D.3D转换 转换,是使元素改变尺寸.形状.位置的一种效果:通过CSS3转换,我们能够对元素进行移动.缩放.转动.拉伸或拉长:可以通过2D.3D元素来转换: 2D转换方法: translate().rotate().scale().skew().matrix() 3D转换方法: rotateX() rotateY() 1 <!doctype html> 2 <html

HTML学习笔记 cs动画基础(分列效果可用于做瀑布流) 第十五节 (原创) 参考使用表

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>动画.分列.过度</title> <link rel="stylesheet" href="tzy.css" type="text/css"> </head> <bod

Android学习笔记-tween动画之xml实现

继上篇tween动画的java实现:http://www.cnblogs.com/fengtengfei/p/3957800.html, 这里我接着介绍一下tween动画的xml实现的方法,   首先我们需要在res文件夹在建立anim文件夹,再在anim文件夹里建相关动画的xml,并设置属相即可. 然后再activity中我们通过AnimationUtils.loadAnimation,来加载xml文件. Animation animation = AnimationUtils.loadAni