天天看點

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