cocos2d-x中怎么添加血量条

我在这也不在解释了,就是实现一个血量条,这个就是通过代码实现,我不知道有什么软件还能实现此功能,如果有那个大神知道的话给我说说啊 ,谢谢啊 !

一下代码仅供参考,如有不对请指教,谢谢!

注释都写在代码中,如果有些方法还是不明白就去看源码,或者百度。

//如果使用的不是plist文件,就直接create就行,背景图片
    hpBgSprite = Sprite::createWithSpriteFrameName("hpBg1.png");
    hpBgSprite->setPosition(Point(sprite->getContentSize().width / 2, sprite->getContentSize().height ));
    sprite->addChild(hpBgSprite);
    //这个是血量条的图片
	hpBar = CCProgressTimer::create(Sprite::createWithSpriteFrameName("hp1.png"));
	//设置血量条的类型是条型的还是圆型的
	hpBar->setType(ProgressTimer::Type::BAR);
	//设置位置
	hpBar->setMidpoint(Point(0, 0.5f));
	//设置血量是从那开始时从左还是从右,现在是从左向右
	hpBar->setBarChangeRate(Point(1, 0));
	//设置血量条的初始值
	hpBar->setPercentage(hpPercentage);
    hpBar->setPosition(Point(hpBgSprite->getContentSize().width / 2, hpBgSprite->getContentSize().height / 3 * 2 ));
    hpBgSprite->addChild(hpBar);


下面的记录比较乱,由于代码是公司的,所以请谅解。

今天要不出一点,就是你添加过血量条后,肯定会要去根据攻击,还进行设置血量的显示,在 这我将大致思路说一下,代码我就不贴出来了。

我们就那一个怪物的血量条为例,当怪物收到攻击是血量就会减少,我们需要拿到怪物的血量(我们需要给他两个变量,一个是当前,还有就是一个总的血量),

伪代码如下:

currentHp = monsterHp;

MaxHp = monsterHp;

当怪物受到攻击时,

currentHp -= Attack;

在给怪物血量一个set和get方法,

setCurrentHp(currentHp);

那到血量条的值(一般都设置为100)

int off = 100/MaxHp;

最后每受到攻击一次血量就减少 slow

int  slow = off*Attack;

最后将值给ProgressTimer的setPercentage



你可能感兴趣的:(cocos2d-x)