一.动态加载资源
1.静态加载
通过把资源挂载在场景上节点上或者场景节点的组件上
cc.director.load("hallScene")//场景切换的同时加载场景资源
静态加载预制体
@property(cc.Prefab)
mallNode:cc.Prefeb=null;
预加载
cc.director.preloadScene("hallScene")//场景预加载
优点:写代码方便
缺点:切换场景时间长
2.动态加载
主要用于小游戏开发,微信小游戏包体不能超过18m,字节8m,qq8m
异步式加载,用户边玩游戏边加载资源.
动态资源必须放在resouces文件夹下
cc.loader.loadRes//单文件加载
cc.loader.loadResArray//多文件加载
const {
ccclass, property } = cc._decorator;
@ccclass
export default class sp1 extends cc.Component {
start() {
//动态加载的文件必须在assets的resources文件夹下
//设置动态加载的文件变量为resources下的
//prefab子文件夹下的cocoslogo.prefab预制体文件
let resFile = "prefab/cocoslogo.prefab"
cc.loader.loadRes(resFile, function (err, res) {
if (err) {
console.log("加载资源失败");
return;
}
console.log("成功加载资源", res);
console.log("文件路径", resFile);
})
}
}
?如何获取文件夹下所有文件名
二.游戏的音乐音效
1.AudioSource组件
2.audioEngine音效引擎
cc.loader.loadRes("music/table_background_music", function (err, bgmusic) {
if (err) {
console.log("加载音乐失败");
return;
}
console.log("加载音乐", bgmusic);
cc.audioEngine.playMusic(bgmusic, false);//参数1:音乐文件 参数2:是否循环
console.log("播放音乐成功");
})
三.游戏的本地化数据存储
1.数据设置,读取,删除
//参数一 key 参数二 value
cc.sys.localStorage.setItem('year',18)
cc.sys.localStorage.getItem('year')
cc.sys.localStorage.removeItem('year')
2.数据管理类
①创建DataCfg.ts数据配置文件
//DataCfg.ts
let DataCfg={
username:{
name:"username",val:"默认用户"},//用户名
coin:{
neme:"coin",val:0},//玩家金币
life: {
Name: "life", val: 50 },//玩家生命
damage: {
Name: "damage", val: 20 },//玩家攻击力
magic: {
Name: "magic", val: 30 },//玩家魔法
}
export{
DataCfg}
②创建DataMgr.ts数据管理类
//DataMgr.ts
import {
DataCfg } from "./DataCfg";
const {
ccclass, property} = cc._decorator;
@ccclass
export default class DataMgr{
static DataMgr