
飘字的原理很简单,就是让一个Label不管它是什么颜色,让它上升到一定的高度,当然在
上升的过程中,要做一些左右移动啊,扭动啊等等动作,最后在上升结束后消失。当然要当时
被血量的信息。
FlyWord.h
//// FlyWord.h// fight//// Created by Cytzrs on 15/2/4.////#ifndef __fight__FlyWord__#define __fight__FlyWord__#include <iostream>#include "cocos2d.h"USING_NS_CC;class FlyWord : public Node{public: static FlyWord* create(const char *word,const int FontSize,Point begin); bool init(const char *word,Point begin); voID Flying(); voID Flyend(); Point _begin; Label* m_plabel;};#endif /* defined(__fight__FlyWord__) */ FlyWord.cpp
//// FlyWord.cpp// fight//// Created by Cytzrs on 15/2/4.////#include "FlyWord.h"FlyWord* FlyWord::create(const char *word,Point begin){ FlyWord* ret = new FlyWord(); //这样写更安全一些 if(ret && ret->init(word,FontSize,begin)){ ret->autorelease(); return ret; } CC_SAFE_DELETE(ret);//安全删除 return nullptr;}bool FlyWord::init(const char *word,Point begin){ if(!CCNode::init()){ return false; } //初始化 _begin = begin; m_plabel = Label::createWithSystemFont(word,"Fonts/Marker Felt",FontSize); //设置颜色 color3B RGB; RGB.r=255; RGB.g=0; RGB.b=0; m_plabel->setcolor(RGB); this->addChild(m_plabel); this->setposition(Vec2(begin.x,begin.y)); //初始化完成不可见 this->setVisible(false); return true;}//文字从下到上飘动voID FlyWord::Flying(){ auto moveact=MoveBy::create(0.5f,Vec2(0,70));//0.5秒向上移动70 //创建回调动作,文字飘动完后 auto callFunc=CallFunc::create(CC_CALLBACK_0(FlyWord::Flyend,this)); //创建连续动作 auto act=Sequence::create(moveact,callFunc,NulL); //设置可见性 this->setVisible(true); this->runAction(act); }voID FlyWord::Flyend(){ //完成之后设置隐藏 this->setVisible(false); //回复原位 this->setposition(Vec2(_begin.x,_begin.y));} 使用方法:
wen_zi=FlyWord::create("-10",30,0));//放在当前怪物的锚点位置,this->addChild(wen_zi,2);然后再monster受伤时调用wen_zi->Flying()来播放动作。 PS:多写博客,帮助自己,方便他人!
总结以上是内存溢出为你收集整理的Cocos2d-X 3.4版-扣血飘字 《赵云要格斗》全部内容,希望文章能够帮你解决Cocos2d-X 3.4版-扣血飘字 《赵云要格斗》所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)