feat: 启用物理调试绘制并调整技能配置与移动逻辑
- 启用PhysicsSystem2D的Aabb调试绘制以辅助碰撞检测 - 将射手英雄的技能由[6002,6100]更新为[6005,6006] - 为SMoveComp添加isHorizontal属性,强制水平移动时保持Y坐标不变 - 技能施放延迟优先使用技能配置的ready值,提高配置灵活性 - 将技能6001和6005的结束类型由animationEnd改为collision,使伤害触发更精确
This commit is contained in:
@@ -12,7 +12,7 @@ const { ccclass, property } = _decorator;
|
||||
@ccclass('Main')
|
||||
export class Main extends Root {
|
||||
start() {
|
||||
// PhysicsSystem2D.instance.debugDrawFlags = EPhysics2DDrawFlags.Aabb
|
||||
PhysicsSystem2D.instance.debugDrawFlags = EPhysics2DDrawFlags.Aabb
|
||||
// |EPhysics2DDrawFlags.Pair
|
||||
// |EPhysics2DDrawFlags.CenterOfMass
|
||||
// |EPhysics2DDrawFlags.Joint
|
||||
|
||||
@@ -213,7 +213,7 @@ export const SkillSet: Record<number, SkillConfig> = {
|
||||
6001: {
|
||||
uuid:6001,name:"空挥",sp_name:"atk_s1",icon:"1026",TGroup:TGroup.Enemy,TType:TType.Frontline,readyAnm:"",endAnm:"",act:"atk",DTType:DTType.single,
|
||||
ap:100,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
|
||||
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
|
||||
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.collision,
|
||||
buffs:[],debuffs:[],info:"对前方目标造成100%攻击的伤害",
|
||||
},
|
||||
6002: {
|
||||
@@ -237,7 +237,7 @@ export const SkillSet: Record<number, SkillConfig> = {
|
||||
6005: {
|
||||
uuid:6005,name:"蓝箭",sp_name:"arrow_blue",icon:"1135",TGroup:TGroup.Enemy,TType:TType.Frontline,readyAnm:"",endAnm:"",act:"atk",DTType:DTType.single,
|
||||
ap:100,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
|
||||
ready:0,EAnm:0,DAnm:9001,RType:RType.linear,EType:EType.animationEnd,
|
||||
ready:0,EAnm:0,DAnm:9001,RType:RType.linear,EType:EType.collision,
|
||||
buffs:[],debuffs:[],info:"对前方单个目标造成100%攻击的伤害",
|
||||
},
|
||||
6006: {
|
||||
|
||||
@@ -156,7 +156,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
buff:[],info:"奥术法师"},
|
||||
|
||||
5003:{uuid:5003,name:"射手",icon:"1001",path:"ha1", fac:FacSet.HERO, kind:2,as:1,ss:5,
|
||||
type:HType.remote,lv:1,hp:180,ap:30,speed:140,skills:[6002,6100],
|
||||
type:HType.remote,lv:1,hp:180,ap:30,speed:140,skills:[6005,6006],
|
||||
rangeType: SkillRange.Long,
|
||||
buff:[],info:"射手"},
|
||||
|
||||
|
||||
@@ -67,7 +67,12 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
|
||||
if (targets.length === 0) return;
|
||||
heroView.playSkillEffect(s_uuid);
|
||||
const isMainSkill = s_uuid === heroAttrs.skill_id;
|
||||
const delay = GameConst.Battle.SKILL_CAST_DELAY;
|
||||
|
||||
// 优先使用技能配置的前摇时间,否则使用全局默认值
|
||||
// 注意:这里仍然是基于时间的延迟,受帧率波动影响。
|
||||
// 若需精确同步,建议在动画中添加帧事件并在 HeroViewComp 中监听。
|
||||
const delay = config.ready > 0 ? config.ready : GameConst.Battle.SKILL_CAST_DELAY;
|
||||
|
||||
heroView.scheduleOnce(() => {
|
||||
if (!heroView.node || !heroView.node.isValid || heroAttrs.is_dead) return;
|
||||
this.applyPrimaryEffect(entity, s_uuid, config, heroView, targets);
|
||||
|
||||
@@ -42,6 +42,9 @@ export class SMoveDataComp extends ecs.Comp {
|
||||
/** 结束类型 */
|
||||
endType: EType = EType.collision;
|
||||
|
||||
/** 是否强制水平移动 */
|
||||
isHorizontal: boolean = true;
|
||||
|
||||
/** 攻击偏移X - 从视图层传递 */
|
||||
atk_x: number = 0;
|
||||
|
||||
@@ -77,6 +80,7 @@ export class SMoveDataComp extends ecs.Comp {
|
||||
this.s_uuid = 0;
|
||||
this.runType = RType.linear;
|
||||
this.endType = EType.collision;
|
||||
this.isHorizontal = true;
|
||||
this.atk_x = 0;
|
||||
this.atk_y = 0;
|
||||
this.isMoving = false;
|
||||
|
||||
@@ -70,6 +70,12 @@ export class SMoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
|
||||
node.position.y + moveComp.atk_y,
|
||||
node.position.z
|
||||
);
|
||||
|
||||
// 如果开启水平移动开关,强制目标Y等于起点Y
|
||||
if (moveComp.isHorizontal) {
|
||||
moveComp.targetPos.y = linearPos.y;
|
||||
}
|
||||
|
||||
moveComp.rePos(linearPos);
|
||||
|
||||
// 设置旋转角度
|
||||
|
||||
Reference in New Issue
Block a user