mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-10-13 02:26:07 +00:00
重构战斗资源加载 , 新添加宠物
This commit is contained in:
@@ -150,12 +150,6 @@ export class JLoaderBattle extends JLoaderSystem{
|
||||
resources:{[id:number]:Asset} = {};
|
||||
foreverResources:number[] = []; //永久资源Id
|
||||
|
||||
roleSpine:{[id:number]:sp.SkeletonData} = {}; //角色Spine
|
||||
roleResImage:{[id:number]:SpriteFrame} = {}; //角色战斗素材图片
|
||||
roleResSpine:{[id:number]:sp.SkeletonData} = {}; //角色战斗素材Spine
|
||||
effects:{[id:number]:sp.SkeletonData} = {}; //Spine特效
|
||||
maps:{[id:number]:SpriteFrame[]} = {}; //地图
|
||||
|
||||
async onInit(): Promise<any> {
|
||||
|
||||
app.loading.setCurrent(JLoaderBattle.loading);
|
||||
@@ -166,46 +160,8 @@ export class JLoaderBattle extends JLoaderSystem{
|
||||
|
||||
app.loading.setCurrent(JLoaderBattle.loadingInit);
|
||||
|
||||
//将配置表的角色都读取出来
|
||||
for (const info of TD.TbGRole.getDataMap().values()) {
|
||||
this.roleSpine[info.id] = await (new Promise(r => {
|
||||
this.bundle.load(info.spine,sp.SkeletonData,(err,data) => {
|
||||
r(data);
|
||||
})
|
||||
}))
|
||||
}
|
||||
|
||||
//读取角色战斗素材
|
||||
for(const info of TD.TbGRoleBattleRes.getDataMap().values()){
|
||||
if(info.resType == "Spine"){
|
||||
this.roleResSpine[info.id] = await (new Promise(r => {
|
||||
this.bundle.load(info.resSrc,sp.SkeletonData,(err,data) => {
|
||||
r(data);
|
||||
})
|
||||
}))
|
||||
}else{
|
||||
this.roleResImage[info.id] = await (new Promise(r => {
|
||||
this.bundle.load(info.resSrc,SpriteFrame,(err,data) => {
|
||||
r(data);
|
||||
})
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
//读取地图
|
||||
for (const info of TD.TbGMap.getDataMap().values()) {
|
||||
|
||||
this.maps[info.id] = await (Promise.all(["1","2","3"].map(index => `map${index}`).map(key => {
|
||||
return new Promise<SpriteFrame>(r => {
|
||||
if(info[key]){
|
||||
this.bundle.load(info[key],SpriteFrame,(err,data) => {
|
||||
r(data);
|
||||
})
|
||||
}
|
||||
})
|
||||
})))
|
||||
|
||||
}
|
||||
//默认加载全部资源
|
||||
await this.loadForeverResources(...TD.TbBattleResource.getDataList());
|
||||
|
||||
app.loading.ok(JLoaderBattle.loadingInit);
|
||||
|
||||
@@ -222,7 +178,10 @@ export class JLoaderBattle extends JLoaderSystem{
|
||||
//加载永久资源
|
||||
loadForeverResource(res:TB.TbBattleResource){
|
||||
return (new Promise<void>(r => {
|
||||
this.bundle.load(res.path,(error,data) => {
|
||||
|
||||
let Type:new ()=>Asset = [sp.SkeletonData,SpriteFrame][res.type];
|
||||
|
||||
this.bundle.load(res.path,Type,(error,data) => {
|
||||
if(this.foreverResources.indexOf(res.id) < 0){
|
||||
//添加永久资源
|
||||
this.resources[res.id] = data;
|
||||
@@ -276,7 +235,7 @@ export class JLoaderBattle extends JLoaderSystem{
|
||||
}
|
||||
|
||||
//获取资源
|
||||
getData<T extends Asset>(resId:number):T{
|
||||
getData<T extends Asset>(resId:number | string):T{
|
||||
|
||||
let res = this.resources[resId]
|
||||
if(!res) console.info(`[JLoaderBattle] 未加载资源${resId}`);
|
||||
@@ -285,6 +244,19 @@ export class JLoaderBattle extends JLoaderSystem{
|
||||
|
||||
}
|
||||
|
||||
//获取角色Spine
|
||||
getRoleSpine(roleId:number){
|
||||
return this.getData<sp.SkeletonData>(TD.TbGRole.get(roleId).spine)
|
||||
}
|
||||
|
||||
//获取地图
|
||||
getMap(mapId:number):SpriteFrame[]{
|
||||
let info = TD.TbGMap.get(mapId)
|
||||
return ["1","2","3"].map(key => {
|
||||
return this.getData<SpriteFrame>(info[`map${key}`]);
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const app = {
|
||||
|
Reference in New Issue
Block a user