我在這也不在解釋了,就是實作一個血量條,這個就是通過代碼實作,我不知道有什麼軟體還能實作此功能,如果有那個大神知道的話給我說說啊 ,謝謝啊 !
一下代碼僅供參考,如有不對請指教,謝謝!
注釋都寫在代碼中,如果有些方法還是不明白就去看源碼,或者百度。
//如果使用的不是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