feat: 支持新版的关卡页面
This commit is contained in:
@@ -78,10 +78,11 @@ export class LevelDataManager {
|
||||
const firstLevel = apiData[0];
|
||||
onProgress?.(0.3, '正在加载游戏必备资源...');
|
||||
|
||||
const spriteFrame = await this._loadImage(firstLevel.imageUrl);
|
||||
if (spriteFrame) {
|
||||
this._levelConfigs.set(0, this._createRuntimeConfig(firstLevel, spriteFrame));
|
||||
}
|
||||
const [spriteFrame1, spriteFrame2] = await Promise.all([
|
||||
this._loadImage(firstLevel.image1Url),
|
||||
this._loadImage(firstLevel.image2Url),
|
||||
]);
|
||||
this._levelConfigs.set(0, this._createRuntimeConfig(firstLevel, spriteFrame1, spriteFrame2));
|
||||
|
||||
console.log('[LevelDataManager] 初始化完成,第一关资源已加载');
|
||||
onProgress?.(0.8, '游戏资源加载完成');
|
||||
@@ -245,15 +246,18 @@ export class LevelDataManager {
|
||||
console.log(`[LevelDataManager] 开始加载关卡 ${index} 资源...`);
|
||||
|
||||
const data = this._apiData[index];
|
||||
const spriteFrame = await this._loadImage(data.imageUrl);
|
||||
const [spriteFrame1, spriteFrame2] = await Promise.all([
|
||||
this._loadImage(data.image1Url),
|
||||
this._loadImage(data.image2Url),
|
||||
]);
|
||||
this._loadingLevels.delete(index);
|
||||
|
||||
if (!spriteFrame) {
|
||||
console.error(`[LevelDataManager] 加载关卡 ${index} 图片失败`);
|
||||
if (!spriteFrame1) {
|
||||
console.error(`[LevelDataManager] 加载关卡 ${index} 图片1失败`);
|
||||
return null;
|
||||
}
|
||||
|
||||
const config = this._createRuntimeConfig(data, spriteFrame);
|
||||
const config = this._createRuntimeConfig(data, spriteFrame1, spriteFrame2);
|
||||
this._levelConfigs.set(index, config);
|
||||
console.log(`[LevelDataManager] 关卡 ${index} 资源加载完成`);
|
||||
|
||||
@@ -358,13 +362,18 @@ export class LevelDataManager {
|
||||
/**
|
||||
* 创建运行时关卡配置
|
||||
* @param data API 关卡数据
|
||||
* @param spriteFrame 已加载的精灵帧
|
||||
* @param spriteFrame1 已加载的图片1精灵帧
|
||||
* @param spriteFrame2 已加载的图片2精灵帧
|
||||
*/
|
||||
private _createRuntimeConfig(data: ApiLevelData, spriteFrame: SpriteFrame | null): RuntimeLevelConfig {
|
||||
private _createRuntimeConfig(data: ApiLevelData, spriteFrame1: SpriteFrame | null, spriteFrame2: SpriteFrame | null): RuntimeLevelConfig {
|
||||
return {
|
||||
id: data.id,
|
||||
name: `第${data.level}关`,
|
||||
spriteFrame: spriteFrame,
|
||||
spriteFrame1: spriteFrame1,
|
||||
spriteFrame2: spriteFrame2,
|
||||
image1Description: data.image1Description,
|
||||
image2Description: data.image2Description,
|
||||
punchline: data.punchline,
|
||||
clue1: data.hint1,
|
||||
clue2: data.hint2,
|
||||
clue3: data.hint3,
|
||||
|
||||
Reference in New Issue
Block a user