cocos2d-x通过扩展自己的Action,简化一些代码
来源:互联网 发布:鲁大师内存自动优化 编辑:程序博客网 时间:2024/05/02 02:43
cocos2d-x我们经常会需要创建一个精灵,执行一段动画(动作),最后一步是渐隐消失,其实消失后我们一般是希望把他remove掉。
开始我一般是动作系列的最后加上一个CCCallFunc,定义一个方法来remove精灵,反正很麻烦,需要定义方法。
现在我找到一种方法很容易实现此功能,还可以延伸出很多其他功能。
/** @brief Remove the node */class CCRemove : public CCActionInstant{public: CCRemove(){} virtual ~CCRemove(){} //super methods virtual void update(float time); virtual CCFiniteTimeAction * reverse(void); virtual CCObject* copyWithZone(CCZone *pZone);public: /** Allocates and initializes the action */ static CCRemove * create();};
//// Remove//CCRemove * CCRemove::create(){ CCRemove *pRet = new CCRemove(); if (pRet) { pRet->autorelease(); } return pRet;}void CCRemove::update(float time) { CC_UNUSED_PARAM(time); m_pTarget->removeFromParentAndCleanup(false); //*****}CCFiniteTimeAction *CCRemove::reverse() { CCAssert(false, "CCRemove: reverse not implemented."); return NULL;}CCObject* CCRemove::copyWithZone(CCZone *pZone) { CCZone *pNewZone = NULL; CCRemove *pRet = NULL; if (pZone && pZone->m_pCopyObject) { pRet = (CCRemove*) (pZone->m_pCopyObject); } else { pRet = new CCRemove(); pZone = pNewZone = new CCZone(pRet); } CCActionInstant::copyWithZone(pZone); CC_SAFE_DELETE(pNewZone); return pRet;}怎么使用?很简单
CCCallFunc* callfunc = CCCallFuncND::create(this,callfuncND_selector(LQEllipseSprite::onMerge), card); CCActionInterval* bezierTo = CCBezierTo::create( 0.6f, bc); CCActionInstant* zorder = CCZorder::create(); CCActionInstant* zorder2 = CCZorderTo::create(999); CCAction* se1 = CCSequence::create( CCSpawn::create(bezierTo, zorder, NULL), zorder2, CCDelayTime::create(1.0), CCRemove::create(), callfunc, NULL); particle->runAction(se1);当让后面还是有事件,那是干更重要的事情哟!如果有人问 CCZorderTo是什么?是练习,你们可以自己写写。保证精灵在移动时总自动保持一定的遮挡关系。
- cocos2d-x通过扩展自己的Action,简化一些代码
- cocos2d-x的action
- cocos2d-x 关于CCpoint的一些算法或者说扩展
- cocos2d-x 关于CCpoint的一些算法或者说扩展
- 九、cocos2d-x一些实用的代码片段
- cocos2d-x 的一些编辑器 Texture,Tilemap,Particle,Action,Level etc
- Cocos2d-x初学指南(3): 扩展CCAction制作自己的运动轨迹
- cocos2d-x库的动作(Action)
- [cocos2d-x]cocos2d和cocos2d-x的一些通用性
- cocos2d-x的一些规范
- 【Cocos2d-x 007】 关于CCpoint的一些算法或者说扩展
- Cocos2d-x Action
- Cocos2d-x Lua action
- cocos2d-x Action
- cocos2d-x Action 动画
- cocos2d-x 3.0 Action
- Cocos2d-x --Action (动作)
- Cocos2d-x 常用Action
- 写在第一个项目后
- 意识
- 宁静以致远
- 超哥背后的那点事
- 今晚注定是个“鸡冻”滴时间
- cocos2d-x通过扩展自己的Action,简化一些代码
- 第一次的感受
- 职业素质课有感
- 眼睛一闭一睁一个月过去了!
- 对象与过程的理解以及我写的俩个小游戏实例
- 不是标题党,无赖读图时代
- 像白开水的文字-------献给即将“滚蛋”的我们
- Hibernate 执行update时,有时候成功有时候失败
- 像娃哈哈一样的文字 -------献给我的她和兄弟连的所有兄弟姐妹