|
@@ -34,6 +34,8 @@ export default class UEMergeTip extends UEBase {
|
|
this.node.active = true;
|
|
this.node.active = true;
|
|
for (let i = 1; i <= 4; i++) {
|
|
for (let i = 1; i <= 4; i++) {
|
|
let itemNode = this.node.children[i - 1];
|
|
let itemNode = this.node.children[i - 1];
|
|
|
|
+ let pos = this.GetCirclePosition(i - 1, mergeArr.length);
|
|
|
|
+ itemNode.setPosition(pos);
|
|
this.ShowItem(itemNode, mergeArr[i - 1]);
|
|
this.ShowItem(itemNode, mergeArr[i - 1]);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
@@ -46,6 +48,7 @@ export default class UEMergeTip extends UEBase {
|
|
let node_lock = node.getChildByName("node_lock");
|
|
let node_lock = node.getChildByName("node_lock");
|
|
if (data) {
|
|
if (data) {
|
|
node.active = true;
|
|
node.active = true;
|
|
|
|
+ node_lock.active = false;
|
|
if (data.type == E_CubeType.Emitter) {
|
|
if (data.type == E_CubeType.Emitter) {
|
|
let mergePropCfg = Gamecfg.emitterInfo.getItem(data.id.toString());
|
|
let mergePropCfg = Gamecfg.emitterInfo.getItem(data.id.toString());
|
|
sp_icon.setSpriteFrame('gridMap', `mergeProp/${mergePropCfg.icon}`);
|
|
sp_icon.setSpriteFrame('gridMap', `mergeProp/${mergePropCfg.icon}`);
|
|
@@ -61,4 +64,29 @@ export default class UEMergeTip extends UEBase {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /** 计算圆上的位置 */
|
|
|
|
+ private GetCirclePosition(index: number, total: number): cc.Vec2 {
|
|
|
|
+ const radius = 100; // 圆的半径
|
|
|
|
+
|
|
|
|
+ if (total === 1) {
|
|
|
|
+ // 只有一个元素时,放在正上方
|
|
|
|
+ return cc.v2(0, radius);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 计算每个元素之间的角度
|
|
|
|
+ const angleStep = 60; // 相邻两个元素之间的角度
|
|
|
|
+ const startAngle = 90 + -total * angleStep / 2 + angleStep / 2; // 从90度(正上方)开始,向右分布
|
|
|
|
+
|
|
|
|
+ // 计算当前元素的角度(角度转弧度)
|
|
|
|
+ const angle = (startAngle + index * angleStep) * Math.PI / 180; // 减去角度使其向右分布
|
|
|
|
+
|
|
|
|
+ // 计算圆上的位置
|
|
|
|
+ const x = radius * Math.cos(angle);
|
|
|
|
+ const y = radius * Math.sin(angle);
|
|
|
|
+
|
|
|
|
+ return cc.v2(x, y);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|