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.
57 lines
1.4 KiB
57 lines
1.4 KiB
4 weeks ago
|
|
||
|
|
||
|
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
|
||
|
}
|
||
|
}
|