cocos creator实现加载场景进度条

简介: cocos creator实现加载场景进度条

游戏加载场景一直很慢,为了用户体验,增加一个加载进度条显示加载进度,

我们需要用到2个方法:

preloadScene 和 loadScene

2种节点:

遮罩和进度条

遮罩:

通过单色精灵直接制作一个黑色节点(需要完全覆盖界面,透明度改为100,纯黑色):

image.png

进度条:

直接使用cocos官方节点的进度条,额外增加个label组件显示文字,也可自行使用图片,然后使用填充类型实现进度条

需要注意使用widget进行定位组件位置

image.png

image.png

image.png

编写代码:

首先给进度条组件编写脚本:

import log = cc.log;
const {ccclass, property} = cc._decorator;
@ccclass
export default class ProgressBar extends cc.Component {
    num = 0;//进度数据
    isShow = false;//是否显示
    show() {
        //显示
        this.isShow = true;
        this.node.active = true;
        cc.find("MainMenu/Mask").active = true;
    }
    hide() {
        //隐藏
        this.isShow = false;
        this.node.active = false;
        cc.find("MainMenu/Mask").active = false;
    }
    update() {
        let progressBar = this.node.getComponent(cc.ProgressBar);
        progressBar.progress = this.num;//更新进度条ui的图
        cc.find('MainMenu/ProgressBar/num').getComponent(cc.Label).string= Math.trunc(this.num*100)+'%';//更新进度条文字
    }
}

在需要加载场景的地方调用:

playGame() {
    let progressBarNode = cc.find('MainMenu/ProgressBar');
    let progressBar = progressBarNode.getComponent('ProgressBar');
    //预加载场景并获得加载进度
    cc.director.preloadScene('Game', function (completedCount, totalCount, item) {
        //可以把进度数据打出来
        progressBar.num = completedCount / totalCount;
        progressBar.show();
    }, function () {
        progressBar.hide();
        //加载场景
        cc.director.loadScene("Game", function (a, b, c) {
            СameraСontrol.newGame();
        });
    });
}

启动游戏即可看到效果:

image.png

目录
相关文章
CocosCreator3.8研究笔记(十三)CocosCreator 音频资源理解(2)
CocosCreator3.8研究笔记(十三)CocosCreator 音频资源理解
882 0
|
数据处理 Python
熵值法计算权重
熵值法计算权重是一种基于信息论的方法,用于多指标综合评价。通过计算各指标的信息熵,反映指标的变异程度,从而确定其在综合评价中的权重。熵值越小,表示信息量越大,指标的重要性越高。该方法适用于样本数据较少的情形,能有效避免主观因素的影响。文中详细介绍了熵值法的原理、计算步骤及Python实现代码。
3273 1
|
传感器 监控 物联网
Zabbix 7.0.0 发布,这些新特性很Nice!
【7月更文挑战第10天】
1263 1
Zabbix 7.0.0 发布,这些新特性很Nice!
|
小程序
【微信小程序】实战案例 -- 向订阅用户发送消息(范例:报名提醒)
【微信小程序】实战案例 -- 向订阅用户发送消息(范例:报名提醒)
1021 0
|
SQL 关系型数据库 MySQL
MySQL主从模式最佳实践
主从模式是很常见的数据库存储解决方案,一主多从,当然还有双主模式(多主模式),你对数据库的主从模式有哪些见解,欢迎跟 V 哥聊聊。
617 0
CocosCreator 面试题(二十) Cocos creator 如何实现一个置灰Shader?
CocosCreator 面试题(二十) Cocos creator 如何实现一个置灰Shader?
739 0
|
Android开发 iOS开发 容器
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)(2)
CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)
1526 0
|
Dart 开发工具 Android开发
Flutter与iOS原生混合开发
Flutter与iOS原生混合开发
872 2
|
Ubuntu 安全 机器人
ROS入门笔记(二):ROS安装与环境配置及卸载(重点)
ROS入门笔记(二):ROS安装与环境配置及卸载(重点)
2643 1
ROS入门笔记(二):ROS安装与环境配置及卸载(重点)