Creator实战项目JS【FlappyBird】-- UI相关(时间标签、分数标签、倒计时进度条)

在Main场景中,将Game和Canvas分开,一个主要用于处理逻辑,一个主要用于处理UI相关。
注意:Canvas要放在下面,不能被遮挡。

编写脚本GameUI用于控制UI相关的节点,挂到Canvas上。

cc.Class({
    extends: cc.Component,

    properties: {
    	//公布UI组件
        lbTime:cc.Label,
        lbScore:cc.Label,
        progressBar:cc.ProgressBar
    },

    start () {
        //js的对象存取器    (对象, 属性名{get接口,set接口()})
        //}
        let temp = 0;   //初始分数
        Object.defineProperty(cc,'score',{        
            //当对象的属性被访问就会调用这个接口    
            get(){
                return temp;
            },
            //当这个对象的对应属性被修改就会调用set接口
            set:(value)=>{
                temp = value;
                this.lbScore.string = '分数:'+value;
            }
        });
        
        if(cc.pageIndex === 0){
            //标签组件.node:标签节点。
            this.lbTime.node.active = false;
            this.progressBar.node.active = false;
        }
        else{
            this.progressBar.node.active = true;
            this.lbTime.node.active = true;
            //定义一个变量插到this里面,即在当前脚本的任何地方都能够访问。
            this.time = 10.0;
            let totalTime = this.time;
            //标签显示的内容
            this.lbTime.string ='时间:'+this.time.toFixed(2)+'秒';
            
            let cutTime = (dt)=>{
                //倒计时,如果游戏没有开始,不倒计时
                if(!cc.isGameStart){
                    return;
                }
                this.time-=dt;
                //计算剩余时间百分比
                let progress = this.time/totalTime;
                //只需要设置进度条组件的progress属性
                this.progressBar.progress = progress;
                
                this.lbTime.string ='时间:'+this.time.toFixed(2)+'秒';

                if(this.time<=0){
                    cc.isGameStart = false;
                    this.lbTime.string ='时间:0.00秒';
                    //关闭定时器
                    this.unschedule(cutTime);
                }
            }
            
            //倒计时,开定时器
            this.schedule(cutTime,0.01);
        }
    },
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值