refactor(monster&hero): 重构三路分层逻辑与渲染排序
1. 移除飞行怪特殊判定,统一按Y轴高度处理三路渲染 2. 重命名飞行层相关变量为更准确的路次命名 3. 新增英雄自动分路均衡分配逻辑 4. 调整渲染排序规则,按Y轴高度决定上下层显示顺序 5. 修复怪物入场动画与刷怪分路逻辑
This commit is contained in:
@@ -123,7 +123,7 @@ export class Monster extends ecs.Entity {
|
||||
* 2) 初始化表现、属性、技能与阵营
|
||||
* 3) 播放下落入场并在落地后启用碰撞与移动
|
||||
*/
|
||||
load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001, is_boss:boolean=false, dropToY:number = pos.y,mon_lv:number=1, flyLaneIndex:number = 0) {
|
||||
load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001, is_boss:boolean=false, dropToY:number = pos.y,mon_lv:number=1, laneIndex:number = 0) {
|
||||
// 怪物默认朝左,表现缩放固定为负向
|
||||
scale=-1
|
||||
// 当前怪物尺寸固定,保留变量便于后续扩展
|
||||
@@ -220,18 +220,7 @@ export class Monster extends ecs.Entity {
|
||||
if (!node || !node.isValid) return;
|
||||
// 落地后锁定最终位置,切换到落地完成状态
|
||||
node.setPosition(pos.x, dropToY, 0);
|
||||
// 如果是飞行怪,可以保持空中状态,这里依然调用 down
|
||||
view.playEnd("down");
|
||||
|
||||
// 飞行怪加一个轻微的上下浮动动效
|
||||
if (flyLaneIndex > 0) {
|
||||
tween(node)
|
||||
.by(1.5, { position: v3(0, 15, 0) }, { easing: "sineOut" })
|
||||
.by(1.5, { position: v3(0, -15, 0) }, { easing: "sineIn" })
|
||||
.union()
|
||||
.repeatForever()
|
||||
.start();
|
||||
}
|
||||
|
||||
move.moving = true;
|
||||
// 落地后启用怪物碰撞分组
|
||||
|
||||
Reference in New Issue
Block a user