cocos2d-x 3.x 血条
来源:互联网 发布:c 界面编程书籍 编辑:程序博客网 时间:2024/04/30 01:06
血条的实现方式有好多种,常见的有用进度条来实现,利用精灵X轴缩放setScaleX,设置精灵矩形框大小等。当前血量和最大血量算出来比例,然后利用比例设置血条显示
我是通过设置精灵X轴缩放,给我的源码
.h
/*------血条------*/
class BloodVolumeWidget
{
public:
BloodVolumeWidget();
~BloodVolumeWidget();
void InitAttribute(Sprite* bgSprite, Sprite* showSprite, Node* parentNode);
void RefreshBlood(float currentValue, float maxVlaue);
private:
CC_SYNTHESIZE(Sprite*, m_pBloodBgSprite, pBloodBgSprite);
CC_SYNTHESIZE(Sprite*, m_pBloodShowSprite, pBloodShowSprite);
};
.cpp
BloodVolumeWidget::BloodVolumeWidget() :
m_pBloodBgSprite(nullptr),
m_pBloodShowSprite(nullptr)
{
}
BloodVolumeWidget::~BloodVolumeWidget()
{
}
void BloodVolumeWidget::InitAttribute(Sprite* bgSprite, Sprite* showSprite, Node* parentNode)
{
m_pBloodBgSprite = bgSprite;
m_pBloodShowSprite = showSprite;
parentNode->addChild(m_pBloodBgSprite);
parentNode->addChild(m_pBloodShowSprite);
m_pBloodBgSprite->setAnchorPoint(Vec2(0.0f, 0.5f));
m_pBloodShowSprite->setAnchorPoint(Vec2(0.0f, 0.5f));
m_pBloodBgSprite->setPosition(-m_pBloodBgSprite->getContentSize().width / 2, parentNode->getContentSize().height / 2 + 100);
m_pBloodShowSprite->setPosition(-m_pBloodShowSprite->getContentSize().width / 2, parentNode->getContentSize().height / 2 + 100);
m_pBloodShowSprite->setScaleX(0.5f);
}
void BloodVolumeWidget::RefreshBlood(float currentValue, float maxVlaue)
{
float scaleValue = currentValue / maxVlaue;
if (scaleValue > 1.0f)
scaleValue = 1.0f;
else if (scaleValue < 0.0f)
scaleValue = 0.0f;
m_pBloodShowSprite->setScaleX(scaleValue);
}
还有一种以进度条来做
.h
/*------血条------*/
class BloodVolumeWidget
{
public:
BloodVolumeWidget();
~BloodVolumeWidget();
void InitAttribute(Sprite* bgSprite, Sprite* showSprite, Node* parentNode);
void RefreshBlood(float currentValue, float maxVlaue);
private:
CC_SYNTHESIZE(Sprite*, m_pBloodBgSprite, pBloodBgSprite);
CC_SYNTHESIZE(ProgressTimer*, m_pBloodShowSprite, pBloodShowSprite);
};
.cpp
BloodVolumeWidget::BloodVolumeWidget() :
m_pBloodBgSprite(nullptr),
m_pBloodShowSprite(nullptr)
{
}
BloodVolumeWidget::~BloodVolumeWidget()
{
}
void BloodVolumeWidget::InitAttribute(Sprite* bgSprite, Sprite* showSprite, Node* parentNode)
{
m_pBloodBgSprite = bgSprite;
m_pBloodShowSprite = ProgressTimer::create(showSprite);
m_pBloodShowSprite->setType(ProgressTimer::Type::BAR);
m_pBloodShowSprite->setBarChangeRate(Vec2(1.0f, 0.0f));
m_pBloodShowSprite->setMidpoint(Vec2(1.0f, 0.0f));
m_pBloodShowSprite->setPercentage(100.0f);
parentNode->addChild(m_pBloodBgSprite);
parentNode->addChild(m_pBloodShowSprite);
m_pBloodBgSprite->setPosition(0, parentNode->getContentSize().height / 2 + 100);
m_pBloodShowSprite->setPosition(0, parentNode->getContentSize().height / 2 + 100);
}
void BloodVolumeWidget::RefreshBlood(float currentValue, float maxVlaue)
{
float percentValue = currentValue / maxVlaue;
if (percentValue > 1.0f)
percentValue = 1.0f;
else if (percentValue < 0.0f)
percentValue = 0.0f;
m_pBloodShowSprite->setPercentage(percentValue * 100.0f);
}
- cocos2d-x 3.x 血条
- Cocos2d-x--自定义血条
- cocos2d-x 滚动条
- cocos2d x 3.x
- cocos2d-x 添加广告条
- cocos2d-x 滚动条实现
- Cocos2d-X 添加广告条
- Cocos2d-x 3.x部署
- cocos2d-x-3.x guides
- cocos2d-x 3.x CallFunc
- Cocos2d-x 3.x开篇
- Cocos2d-x 3.x进度条
- cocos2d-x-3.x snapshot
- Cocos2d-x 3.x程序结构
- quick-cocos2d-x教程10:实现血条效果。
- COCOS2D-X 2.1.3滑动条Slider
- cocos2d-x 样条路径CCCatmullRomTo
- 9 cocos2d-x CCControlSlider (滑动条)
- Android中常用adb的命令
- JS中字符串的链接
- PostgreSQL两种分页方法查询时间比较
- NandFlash详述(上)
- Jquery Table 的基本操作
- cocos2d-x 3.x 血条
- MVC 控制器向View传值的三种方法
- 开源控件(比如slidingmenu)中引用Android Design Support Library,没有引入相应的依赖库引发的问题
- 自己实现遍历文件层次结构程序
- Mac 下 svn 服务器的配置
- 古代赌局
- opengl 中 位图的操作
- linux 系统上的 交叉编译 opencv 目标 ARM
- Android中获取当前进程名称