五毛的cocos2d-x学习笔记08-动画
2015-08-02 00:37
447 查看
一个例子就够了,单击文本标签,执行动画。我也是小白,写这个demo的时候遇到了问题,单击文本标签游戏就死掉了。今天为了解决这个问题也是一晚没睡,到学习群里问大神,经过大神的指点解决了问题。原来是Animation和Animate的生命周期的关系。先记下。
init
运行效果:
bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { return false; } SpriteFrameCache *cache = SpriteFrameCache::getInstance(); cache->addSpriteFramesWithFile("a6.plist"); Vector<SpriteFrame*> vec; char name[15]; memset(name, 0, 15); for (int i = 1; i <=7; i++){ sprintf(name, "a6_%02d.png", i); vec.pushBack(cache->getSpriteFrameByName(name)); } Animation *animation = Animation::createWithSpriteFrames(vec, 0.1f, 1); Animate *animate = Animate::create(animation); auto sprite = Sprite::create(); addChild(sprite); sprite->setPosition(Vec2(200, 200)); //sprite->runAction(RepeatForever::create(animate)); auto label = LabelTTF::create("Touch", "Courier", 30); label->setPosition(Vec2(500, 500)); addChild(label); int i = 10; EventListenerTouchOneByOne *listener = EventListenerTouchOneByOne::create(); listener->onTouchBegan = [=](Touch *t, Event *e){ if (label->getBoundingBox().containsPoint(t->getLocation())){ //notification: pay attention to the life cycle of Animation and Animate Animation *animation = Animation::createWithSpriteFrames(vec, 0.1f, 1); Animate *animate = Animate::create(animation); sprite->runAction(animate); log("i=%d", i); return true; } return false; }; //notifation:here is "this" not "label" because if here is "label", Touch *t equals to "label" Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,this); return true; }
init
运行效果:
相关文章推荐
- Cocos2d-x 3.2 屏幕适配解决方案
- Cocos2dx如何实现每一帧的触发
- 基于cocos2dx的RPG简单实用算法之1 - 角色的移动
- 【Cocos2d开发】 论Cocos2d-x+JS/Lua
- 【Cocos2d入门教程十】浅析Cocos2d内存管理
- 【Cocos2d入门教程十一】浅析Cocoss2d下的音频引擎及封装音频类
- cocos2d-x中的C++ 编码规范
- 我所理解cocos2d-x 3.6 lua --使用Cocos Studio
- cocos3——11.事件分发
- 【Cocos2d入门教程八】浅析Cocoss2d下的多点触控
- cocos2d-x + Lua的cc.Repeat动画执行次数不准,巨坑
- cocos2dx游戏加密
- 利用cocos2d来发野菜部落的空雅强力弹棋
- 【Cocos2d入门教程九】浅析Cocos2d下的加速计事件
- Cocos2d-x_C++11新特性Lambda表达式
- 体验cocos2d关节的地址
- [转]Cocos Studio和Cocos2d-x版本对应关系
- cocos2d-x lua 函数笔记
- cocos2d-x函数记录
- <cocos2d-x> vs2012打开cocos解决方案加载失败