feat: 支持新版的关卡页面
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -43,6 +43,18 @@ export class PageLevel extends BaseView {
|
||||
@property(Node)
|
||||
mainImage: Node | null = null;
|
||||
|
||||
@property(Node)
|
||||
mainImage2: Node | null = null;
|
||||
|
||||
@property(Label)
|
||||
image1DescLabel: Label | null = null;
|
||||
|
||||
@property(Label)
|
||||
image2DescLabel: Label | null = null;
|
||||
|
||||
@property(Label)
|
||||
punchlineLabel: Label | null = null;
|
||||
|
||||
@property(Node)
|
||||
tipsItem1: Node | null = null;
|
||||
|
||||
@@ -268,8 +280,17 @@ export class PageLevel extends BaseView {
|
||||
this._isTimeUp = false;
|
||||
this._countdown = 60;
|
||||
|
||||
// 设置主图
|
||||
this.setMainImage(config.spriteFrame);
|
||||
// 设置主图(图片1)
|
||||
this.setMainImage(config.spriteFrame1);
|
||||
|
||||
// 设置图片2
|
||||
this.setMainImage2(config.spriteFrame2);
|
||||
|
||||
// 设置图片描述
|
||||
this.setImageDescriptions(config.image1Description, config.image2Description);
|
||||
|
||||
// 隐藏谐音梗说明(通关后才显示)
|
||||
this.setPunchline(null);
|
||||
|
||||
// 设置线索1(默认解锁,如果有的话)
|
||||
if (config.clue1) {
|
||||
@@ -618,7 +639,7 @@ export class PageLevel extends BaseView {
|
||||
// ========== 主图相关方法 ==========
|
||||
|
||||
/**
|
||||
* 设置主图
|
||||
* 设置主图(图片1)
|
||||
*/
|
||||
private setMainImage(spriteFrame: SpriteFrame | null): void {
|
||||
if (!this.mainImage) return;
|
||||
@@ -626,7 +647,47 @@ export class PageLevel extends BaseView {
|
||||
const sprite = this.mainImage.getComponent(Sprite);
|
||||
if (sprite && spriteFrame) {
|
||||
sprite.spriteFrame = spriteFrame;
|
||||
console.log('[PageLevel] 设置主图');
|
||||
console.log('[PageLevel] 设置主图1');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置图片2
|
||||
*/
|
||||
private setMainImage2(spriteFrame: SpriteFrame | null): void {
|
||||
if (!this.mainImage2) return;
|
||||
|
||||
const sprite = this.mainImage2.getComponent(Sprite);
|
||||
if (sprite && spriteFrame) {
|
||||
sprite.spriteFrame = spriteFrame;
|
||||
console.log('[PageLevel] 设置主图2');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置图片描述文本
|
||||
*/
|
||||
private setImageDescriptions(desc1: string | null, desc2: string | null): void {
|
||||
if (this.image1DescLabel) {
|
||||
this.image1DescLabel.string = desc1 ?? '';
|
||||
}
|
||||
if (this.image2DescLabel) {
|
||||
this.image2DescLabel.string = desc2 ?? '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置谐音梗说明(通关后展示,未通关时传 null 隐藏)
|
||||
*/
|
||||
private setPunchline(punchline: string | null): void {
|
||||
if (!this.punchlineLabel) return;
|
||||
|
||||
if (punchline) {
|
||||
this.punchlineLabel.node.active = true;
|
||||
this.punchlineLabel.string = punchline;
|
||||
} else {
|
||||
this.punchlineLabel.node.active = false;
|
||||
this.punchlineLabel.string = '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -819,6 +880,11 @@ export class PageLevel extends BaseView {
|
||||
// 播放成功音效
|
||||
this.playSuccessSound();
|
||||
|
||||
// 通关后展示谐音梗说明
|
||||
if (this._currentConfig?.punchline) {
|
||||
this.setPunchline(this._currentConfig.punchline);
|
||||
}
|
||||
|
||||
const levelId = this._currentConfig?.id ?? '';
|
||||
const timeSpent = Math.max(0, Math.round((Date.now() - this._levelStartTime) / 1000));
|
||||
|
||||
|
||||
@@ -204,8 +204,8 @@ export class PagePreviewLevels extends BaseView {
|
||||
const levelCover = item.getChildByName('LevelCover');
|
||||
if (levelCover) {
|
||||
const sprite = levelCover.getComponent(Sprite);
|
||||
if (sprite && config.spriteFrame) {
|
||||
sprite.spriteFrame = config.spriteFrame;
|
||||
if (sprite && config.spriteFrame1) {
|
||||
sprite.spriteFrame = config.spriteFrame1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -326,8 +326,8 @@ export class PageWriteLevels extends BaseView {
|
||||
const levelCover = item.getChildByName('LevelCover');
|
||||
if (levelCover) {
|
||||
const sprite = levelCover.getComponent(Sprite);
|
||||
if (sprite && config.spriteFrame) {
|
||||
sprite.spriteFrame = config.spriteFrame;
|
||||
if (sprite && config.spriteFrame1) {
|
||||
sprite.spriteFrame = config.spriteFrame1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user