五毛的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 }

运行效果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏运维

DELL R710 服务器内存排错

man dmidecode 可以得到详细的介绍和使用方法,dmidecode - DMI table decoder,DMI (Desktop Manageme...

3182
来自专栏岑玉海

Hbase 学习(二)补充 自定义filter

本来这个内容是不单独讲的,但是因为上一个页面太大,导致Live Writer死机了,不能继续编辑了,所以就放弃了 这里要讲的是自定义filter,从Filt...

3445
来自专栏浅探ARKit

ARKit中控制.dae动画的播放

4.用时间控制动画--CAAnimation 里的 timeOffset 控制开始时间 duration控制播放时间

7407
来自专栏Android小菜鸡

Android语音录制,语音发送

这是一个录音的例子,可用于IM的语音发送,OA的语音留言等。 首先我们需要引入权限:

4272
来自专栏ascii0x03的安全笔记

IE的BHO通过IHTMLDocument2接口获得网页源代码

参考了凤之焚的专栏:http://blog.csdn.net/lion_wing/article/details/769742 但是他的源码有些问题,即IHTM...

3425
来自专栏Android干货园

一款基于Material Desgin设计的APP

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/50...

1921
来自专栏LeoXu的博客

让 Android 的 WebView 支持 type 为 file 的 input,同时支持拍照

Android 的 WebView 组件默认是不启用 type 为 file 的 input 的,需要在代码中做一些类似 hack 的编码(因为解决问题的目标对...

1012
来自专栏林冠宏的技术文章

如何独立开发一个网络请求框架

721
来自专栏逸鹏说道

逆天通用水印扩展篇~新增剪贴板系列的功能和手动配置,卸除原基础不常用的功能

常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.n...

28110
来自专栏hrscy

使用 Unity 来实现 iOS 原生弹框

如果你有这些疑虑,那么现在你来对地方了。在这篇博客中,我将使用 Unity 创建 iOS 原生弹框。

2673

扫码关注云+社区

领取腾讯云代金券