You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.4 KiB
56 lines
1.4 KiB
|
|
|
|
const {ccclass, property} = cc._decorator;
|
|
|
|
@ccclass
|
|
export default class DaoJiShiProgress extends cc.Component {
|
|
|
|
@property({
|
|
type:cc.Node,
|
|
displayName: "进度条上面的人物",
|
|
})
|
|
slider: cc.Node = null;
|
|
|
|
@property({
|
|
displayName: "总时间s",
|
|
})
|
|
allTimeNum:number = 60
|
|
|
|
_dt:number = 0
|
|
isStartTimer:boolean = true//是否开始倒计时
|
|
curTimeNum:number = 0
|
|
progressHeight:number = 0
|
|
finishCallFunc = null//结束回调
|
|
|
|
start () {
|
|
this.progressHeight = this.node.height
|
|
this.updateProgress()
|
|
}
|
|
|
|
update (dt) {
|
|
if(this.isStartTimer){
|
|
this.curTimeNum += dt
|
|
this.updateProgress()
|
|
//倒计时结束
|
|
if(this.curTimeNum >= this.allTimeNum){
|
|
this.curTimeNum = this.allTimeNum
|
|
this.isStartTimer = false
|
|
this.finishCallFunc && this.finishCallFunc()
|
|
}
|
|
}
|
|
}
|
|
//设置开始/结束倒计时
|
|
setIsStartTimer(bStart,finishCallFunc?){
|
|
this.isStartTimer = bStart
|
|
this.finishCallFunc = finishCallFunc
|
|
}
|
|
updateProgress(){
|
|
//未设置倒计时时间
|
|
if(this.allTimeNum <= 0){
|
|
return
|
|
}
|
|
let rate = this.curTimeNum/this.allTimeNum
|
|
this.node.getComponent(cc.ProgressBar).progress = rate
|
|
this.slider.y = rate*this.progressHeight
|
|
}
|
|
}
|
|
|