feat: 适配关卡内图片的圆角
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { _decorator, Node, EditBox, instantiate, Vec3, Button, Label, Sprite, SpriteFrame, AudioClip, AudioSource, Prefab } from 'cc';
|
||||
import { _decorator, Node, EditBox, instantiate, Vec3, Button, Label, Sprite, SpriteFrame, AudioClip, AudioSource, Prefab, EffectAsset, UITransform } from 'cc';
|
||||
import { BaseView } from 'db://assets/scripts/core/BaseView';
|
||||
import { ViewManager } from 'db://assets/scripts/core/ViewManager';
|
||||
import { StaminaManager } from 'db://assets/scripts/utils/StaminaManager';
|
||||
@@ -13,6 +13,7 @@ import { WrongModal } from 'db://assets/prefabs/WrongModal';
|
||||
import { TimeoutModal } from 'db://assets/prefabs/TimeoutModal';
|
||||
import { StaminaInfo, NextLevelData } from 'db://assets/scripts/types/ApiTypes';
|
||||
import { AchievementTitleManager } from 'db://assets/scripts/utils/AchievementTitleManager';
|
||||
import { applyRoundedCorner } from 'db://assets/scripts/utils/roundedMaterial.utils';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
/**
|
||||
@@ -37,6 +38,9 @@ export class PageLevel extends BaseView {
|
||||
/** 答案正确后展示包袱答案的停留时间 */
|
||||
private static readonly PASS_MODAL_DELAY_MS = 2000;
|
||||
|
||||
/** 图片2描述默认文案 */
|
||||
private static readonly DEFAULT_IMAGE2_DESCRIPTION = '这是什么?';
|
||||
|
||||
// ========== 节点引用 ==========
|
||||
@property(Node)
|
||||
inputLayout: Node | null = null;
|
||||
@@ -116,6 +120,14 @@ export class PageLevel extends BaseView {
|
||||
@property(Prefab)
|
||||
timeoutModalPrefab: Prefab | null = null;
|
||||
|
||||
/** 主图圆角材质 EffectAsset */
|
||||
@property(EffectAsset)
|
||||
roundedSpriteEffect: EffectAsset | null = null;
|
||||
|
||||
/** 主图圆角半径比例(相对于短边,0-0.5) */
|
||||
@property
|
||||
mainImageCornerRadius: number = 0.1;
|
||||
|
||||
// ========== 内部状态 ==========
|
||||
/** 当前创建的输入框节点数组 */
|
||||
private _inputNodes: Node[] = [];
|
||||
@@ -814,6 +826,7 @@ export class PageLevel extends BaseView {
|
||||
const sprite = this.mainImage.getComponent(Sprite);
|
||||
if (sprite && spriteFrame) {
|
||||
sprite.spriteFrame = spriteFrame;
|
||||
this.applyMainImageRoundedCorner(sprite);
|
||||
console.log('[PageLevel] 设置主图1');
|
||||
}
|
||||
}
|
||||
@@ -827,10 +840,30 @@ export class PageLevel extends BaseView {
|
||||
const sprite = this.mainImage2.getComponent(Sprite);
|
||||
if (sprite && spriteFrame) {
|
||||
sprite.spriteFrame = spriteFrame;
|
||||
this.applyMainImageRoundedCorner(sprite);
|
||||
console.log('[PageLevel] 设置主图2');
|
||||
}
|
||||
}
|
||||
|
||||
private applyMainImageRoundedCorner(sprite: Sprite): void {
|
||||
if (!this.roundedSpriteEffect) {
|
||||
return;
|
||||
}
|
||||
|
||||
const uiTransform = sprite.node.getComponent(UITransform);
|
||||
if (!uiTransform) {
|
||||
return;
|
||||
}
|
||||
|
||||
applyRoundedCorner(
|
||||
sprite,
|
||||
this.roundedSpriteEffect,
|
||||
uiTransform.width,
|
||||
uiTransform.height,
|
||||
this.mainImageCornerRadius
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置图片描述文本
|
||||
*/
|
||||
@@ -839,7 +872,7 @@ export class PageLevel extends BaseView {
|
||||
this.image1DescLabel.string = desc1 ?? '';
|
||||
}
|
||||
if (this.image2DescLabel) {
|
||||
this.image2DescLabel.string = desc2 ?? '';
|
||||
this.image2DescLabel.string = desc2?.trim() ? desc2 : PageLevel.DEFAULT_IMAGE2_DESCRIPTION;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user