cocos2dx-lua 之 ProgressTimer 條形進度條 簡單血條的實現

來源:互聯網
上載者:User

cocos2dx-lua 簡單血條的實現

所用資源:

blood_bg.png :    blood_red.png 

直接貼代碼:

local BloodProgressBar = class("BloodProgressBar", function (  )return cc.Node:create()end)function BloodProgressBar:create(  )local bloodProgressBar = BloodProgressBar:new()bloodProgressBar:getViews()return bloodProgressBarendfunction BloodProgressBar:ctor(  )endfunction BloodProgressBar:getViews(  )--血條背景local bloodEmptyBg = cc.Sprite:create("ui/blood_bg.png")bloodEmptyBg:setAnchorPoint(cc.p(0.5,0.5))local bloodEmptyBgSize = bloodEmptyBg:getContentSize()bloodEmptyBg:setPosition(cc.p(bloodEmptyBgSize.width/2,bloodEmptyBgSize.height/2))self:addChild(bloodEmptyBg)--血條local bloodBody = cc.Sprite:create("ui/blood_red.png")--建立進度條local bloodProgress = cc.ProgressTimer:create(bloodBody)bloodProgress:setType(cc.PROGRESS_TIMER_TYPE_BAR) --設定為條形 type:cc.PROGRESS_TIMER_TYPE_RADIALbloodProgress:setMidpoint(cc.p(0,0)) --設定起點為條形坐下方bloodProgress:setBarChangeRate(cc.p(0,1))  --設定為豎直方向bloodProgress:setPercentage(0) -- 設定初始進度為30bloodProgress:setPosition(cc.p(bloodEmptyBgSize.width/2,bloodEmptyBgSize.height/2))self:addChild(bloodProgress)--讓進度條一直從0--100重複的actlocal progressTo = cc.ProgressTo:create(5,100)local clear = cc.CallFunc:create(function (  )bloodProgress:setPercentage(0)end)local seq = cc.Sequence:create(progressTo,clear)bloodProgress:runAction(cc.RepeatForever:create(seq))endreturn BloodProgressBar

運行效果如下圖所示:



解釋:

主要有三點可以設定:

(1)設定進度條類型的方法:setType( 參數 )

參數:

cc.PROGRESS_TIMER_TYPE_BAR 條形
<pre name="code" class="plain">type:cc.PROGRESS_TIMER_TYPE_RADIAL 圓形
 


(2)進度條方向和起點:

設定進度條方向的方法:setBarChangeRate(參數)

設定進度條起點的方法:setMidpoint(參數)


設定進度條方向為水平方向:

setBarChangeRate(cc.p(1,0))   

水平方向時起點有兩個方向:從左至右和從右至左

setMidpoint(cc.p(0,0))  OR  setMidpoint(cc.p(0,1))   這兩個是從左至右   即x為0

setMidpoint(cc.p(1,0))  OR setMidpoint(cc.p(1,1))     這兩個是從右至左 即x為1


設定進度條方向為豎直方向:

setBarChangeRate(cc.p(0,1))   

豎直方向時起點有兩個方向:從上到下合從下到上

setMidpoint(cc.p(0,1))  OR  setMidpoint(cc.p(1,1))   這兩個是從上到下   即y為1

setMidpoint(cc.p(0,0))  OR setMidpoint(cc.p(1,0))     這兩個是從下到上 即y為0


設定進度條方向為兩個方向同時運動:

setBarChangeRate(cc.p(1,1))   

兩個方向的運行情況有4種:左下到右上、右下到左上、左上到右下、右上到左下

setMidpoint(cc.p(0,0)) 左下到右上

setMidpoint(cc.p(1,0)) 右下到左上

setMidpoint(cc.p(0,1)) 左上到右下

setMidpoint(cc.p(1,1)) 右上到左下


(3)設定進度條的進度:setPercentage(參數)

參數為0~~~~100的值。


執行進度條值變化的動作:

local progressTo = cc.ProgressTo:create(5,100)

[ProgressNode]:runAction(progressTo)



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.