From 215fcd3a765fa4b8c47d49dbb4af7ba0515de1b5 Mon Sep 17 00:00:00 2001 From: walkpan Date: Sun, 2 Feb 2025 17:18:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=A7=8B=E8=8B=B1=E9=9B=84=E6=8A=80?= =?UTF-8?q?=E8=83=BD=E7=B3=BB=E7=BB=9F=EF=BC=8C=E8=B4=9F=E8=B4=A3=E8=8B=B1?= =?UTF-8?q?=E9=9B=84=E6=8A=80=E8=83=BD=E7=9A=84=E9=87=8A=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...llSystem.ts.meta => GameBootstrap.ts.meta} | 2 +- .../common/ecs/position/BattleMoveComp.ts | 1 - .../common/ecs/position/EcsPositionSystem.ts | 9 - .../script/game/common/ecs/position/MoveTo.ts | 136 ------------- assets/script/game/hero/Hero.ts | 15 +- assets/script/game/hero/Mon.ts | 2 - assets/script/game/skill/EcsSkillSystem.ts | 7 +- assets/script/game/skill/HeroSkillSystem.ts | 26 +++ .../HeroSkillSystem.ts.meta} | 2 +- assets/script/game/skill/ProjectileComp.ts | 79 -------- assets/script/game/skill/SkillAnimation.ts | 55 ------ assets/script/game/skill/SkillSystem.ts | 187 ------------------ assets/script/game/skill/heroSkillsComp.ts | 10 + .../script/game/skill/heroSkillsComp.ts.meta | 9 + 14 files changed, 56 insertions(+), 484 deletions(-) rename assets/script/game/{skill/SkillSystem.ts.meta => GameBootstrap.ts.meta} (70%) delete mode 100644 assets/script/game/common/ecs/position/MoveTo.ts create mode 100644 assets/script/game/skill/HeroSkillSystem.ts rename assets/script/game/{common/ecs/position/MoveTo.ts.meta => skill/HeroSkillSystem.ts.meta} (70%) delete mode 100644 assets/script/game/skill/ProjectileComp.ts delete mode 100644 assets/script/game/skill/SkillAnimation.ts delete mode 100644 assets/script/game/skill/SkillSystem.ts create mode 100644 assets/script/game/skill/heroSkillsComp.ts create mode 100644 assets/script/game/skill/heroSkillsComp.ts.meta diff --git a/assets/script/game/skill/SkillSystem.ts.meta b/assets/script/game/GameBootstrap.ts.meta similarity index 70% rename from assets/script/game/skill/SkillSystem.ts.meta rename to assets/script/game/GameBootstrap.ts.meta index 0462ccf0..d1dbaba0 100644 --- a/assets/script/game/skill/SkillSystem.ts.meta +++ b/assets/script/game/GameBootstrap.ts.meta @@ -2,7 +2,7 @@ "ver": "4.0.23", "importer": "typescript", "imported": true, - "uuid": "c927f5c9-45cb-4400-8734-c706e615e4a4", + "uuid": "8cc0af1b-f8d6-420f-b1c3-9b1f735a843d", "files": [], "subMetas": {}, "userData": {} diff --git a/assets/script/game/common/ecs/position/BattleMoveComp.ts b/assets/script/game/common/ecs/position/BattleMoveComp.ts index eae17a44..5759af08 100644 --- a/assets/script/game/common/ecs/position/BattleMoveComp.ts +++ b/assets/script/game/common/ecs/position/BattleMoveComp.ts @@ -1,6 +1,5 @@ import { ecs } from "../../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; @ecs.register('BattleMove') - export class BattleMoveComp extends ecs.Comp { /** 移动方向:1向右,-1向左 */ direction: number = 1; diff --git a/assets/script/game/common/ecs/position/EcsPositionSystem.ts b/assets/script/game/common/ecs/position/EcsPositionSystem.ts index 7e2c38f7..acebd5ac 100644 --- a/assets/script/game/common/ecs/position/EcsPositionSystem.ts +++ b/assets/script/game/common/ecs/position/EcsPositionSystem.ts @@ -1,17 +1,8 @@ -/* - * @Author: dgflash - * @Date: 2021-08-11 16:41:12 - * @LastEditors: dgflash - * @LastEditTime: 2022-07-25 17:05:02 - */ import { ecs } from "../../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; import { BattleMoveSystem } from "./BattleMoveSystem"; -import { MoveToSystem } from "./MoveTo"; - export class EcsPositionSystem extends ecs.System { constructor() { super(); - this.add(new MoveToSystem()); this.add(new BattleMoveSystem()); } } diff --git a/assets/script/game/common/ecs/position/MoveTo.ts b/assets/script/game/common/ecs/position/MoveTo.ts deleted file mode 100644 index 989c5d03..00000000 --- a/assets/script/game/common/ecs/position/MoveTo.ts +++ /dev/null @@ -1,136 +0,0 @@ -/* - * @Author: dgflash - * @Date: 2021-08-11 16:41:12 - * @LastEditors: dgflash - * @LastEditTime: 2023-01-19 15:27:24 - */ -import { Node, Vec3 } from "cc"; -import { Timer } from "../../../../../../extensions/oops-plugin-framework/assets/core/common/timer/Timer"; -import { Vec3Util } from "../../../../../../extensions/oops-plugin-framework/assets/core/utils/Vec3Util"; -import { ecs } from "../../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; - -/** 向目标移动,移动过程中目标位置变化会自动修正移动目标点,直到未修正前移动到目标点停止 */ -@ecs.register('MoveTo') -export class MoveToComp extends ecs.Comp { - /** 移动节点 */ - node: Node = null!; - /** 移动方向 */ - velocity: Vec3 = Vec3Util.zero; - /** 移动速度(每秒移动的像素距离) */ - speed: number = 0; - /** 目标实体ECS编号、目标位置 */ - target: Vec3 | Node | null = null; - - /** 坐标标(默认本地坐标) */ - ns: number = Node.NodeSpace.LOCAL; - /** 偏移距离 */ - offset: number = 0; - /** 偏移向量 */ - offsetVector: Vec3 | null = null; - /** 移动完成回调 */ - onComplete: Function | null = null; - /** 距离变化时 */ - onChange: Function | null = null; - - reset() { - this.ns = Node.NodeSpace.LOCAL; - this.offset = 0; - this.target = null; - this.offsetVector = null; - this.onComplete = null; - this.onChange = null; - } -} - -@ecs.register('VariableMoveTo') -class VariableMoveToComponent extends ecs.Comp { - /** 延时触发器 */ - timer: Timer = new Timer(); - /** 终点备份 */ - end: Vec3 | null = null; - /** 目标位置 */ - target!: Vec3; - - reset() { - this.end = null; - this.timer.reset(); - } -} - -/** 跟踪移动到目标位置 */ -export class MoveToSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem, ecs.IEntityRemoveSystem, ecs.ISystemUpdate { - filter(): ecs.IMatcher { - return ecs.allOf(MoveToComp); - } - - entityEnter(e: ecs.Entity): void { - e.add(VariableMoveToComponent); - } - - entityRemove(e: ecs.Entity): void { - e.remove(VariableMoveToComponent); - } - - update(e: ecs.Entity) { - let move = e.get(MoveToComp); - let mtv = e.get(VariableMoveToComponent); - let end: Vec3; - - console.assert(move.speed > 0, "移动速度必须要大于零"); - - if (move.target instanceof Node) { - end = move.ns == Node.NodeSpace.WORLD ? move.target.worldPosition : move.target.position; - } - else { - end = move.target as Vec3; - } - - // 目标移动后,重计算移动方向与移动到目标点的速度 - if (mtv.end == null || !mtv.end.strictEquals(end)) { - let target = end.clone(); - if (move.offsetVector) { - target = target.add(move.offsetVector); // 这里的问题 - } - - // 移动方向与移动数度 - let start = move.ns == Node.NodeSpace.WORLD ? move.node.worldPosition : move.node.position; - move.velocity = Vec3Util.sub(target, start).normalize(); - - // 移动时间与目标偏位置计算 - let distance = Vec3.distance(start, target) - move.offset; - - move.onChange?.call(this); - - if (distance - move.offset <= 0) { - this.exit(e); - } - else { - mtv.timer.step = distance / move.speed; - mtv.end = end.clone(); - mtv.target = move.velocity.clone().multiplyScalar(distance).add(start); - } - } - - if (move.speed > 0) { - let trans = Vec3Util.mul(move.velocity, move.speed * this.dt); - move.node.translate(trans, Node.NodeSpace.LOCAL); - } - - // 移动完成事件 - if (mtv.timer.update(this.dt)) { - if (move.ns == Node.NodeSpace.WORLD) - move.node.worldPosition = mtv.target; - else - move.node.position = mtv.target; - - this.exit(e); - } - } - - private exit(e: ecs.Entity) { - let move = e.get(MoveToComp); - move.onComplete?.call(this); - e.remove(VariableMoveToComponent); - e.remove(MoveToComp); - } -} \ No newline at end of file diff --git a/assets/script/game/hero/Hero.ts b/assets/script/game/hero/Hero.ts index 25371810..6b4450a3 100644 --- a/assets/script/game/hero/Hero.ts +++ b/assets/script/game/hero/Hero.ts @@ -7,27 +7,27 @@ import { HeroViewComp } from "./HeroViewComp"; import { BoxSet } from "../common/config/BoxSet"; import { HeroInfo } from "../common/config/heroSet"; import { Talents } from "../common/config/TalentSet"; -import { SkillsComp } from "../skill/SkillSystem"; import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp"; +import { HeroSkillsComp } from "../skill/heroSkillsComp"; /** 角色实体 */ @ecs.register(`Hero`) export class Hero extends ecs.Entity { HeroModel!: HeroModelComp; HeroView!: HeroViewComp; - Skills!: SkillsComp; BattleMove!: BattleMoveComp; + HeroSkills!: HeroSkillsComp; protected init() { this.addComponents( - SkillsComp, - BattleMoveComp + BattleMoveComp, + HeroSkillsComp, + HeroModelComp ); } - destroy(): void { - this.remove(HeroViewComp); + this.remove(HeroViewComp);; super.destroy(); } @@ -35,7 +35,6 @@ export class Hero extends ecs.Entity { load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001,is_call:boolean=false,lv:number=1) { scale = 1 let box_group=BoxSet.HERO - this.addComponents( HeroModelComp); var path = "game/heros/"+HeroInfo[uuid].path; var prefab: Prefab = oops.res.get(path, Prefab)!; var node = instantiate(prefab); @@ -99,13 +98,11 @@ export class Hero extends ecs.Entity { this.add(hv); // 初始化多个技能组件 - const skills = this.get(SkillsComp); // 初始化移动参数 const move = this.get(BattleMoveComp); move.direction = 1; // 向右移动 move.targetX = 800; // 右边界 - console.log("hero_init",skills,move); } diff --git a/assets/script/game/hero/Mon.ts b/assets/script/game/hero/Mon.ts index 1a1da4c4..2317d9ff 100644 --- a/assets/script/game/hero/Mon.ts +++ b/assets/script/game/hero/Mon.ts @@ -16,7 +16,6 @@ import { HeroViewComp } from "./HeroViewComp"; import { BoxSet } from "../common/config/BoxSet"; import { RandomManager } from "../../../../extensions/oops-plugin-framework/assets/core/common/random/RandomManager"; import { HeroInfo } from "../common/config/heroSet"; -import { MoveToComp } from "../common/ecs/position/MoveTo"; import { Talents } from "../common/config/TalentSet"; import { MonModelComp } from "./MonModelComp"; import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp"; @@ -36,7 +35,6 @@ export class Monster extends ecs.Entity { destroy(): void { this.remove(HeroViewComp); - this.remove(MoveToComp); super.destroy(); } diff --git a/assets/script/game/skill/EcsSkillSystem.ts b/assets/script/game/skill/EcsSkillSystem.ts index 07e1c8c8..920e261a 100644 --- a/assets/script/game/skill/EcsSkillSystem.ts +++ b/assets/script/game/skill/EcsSkillSystem.ts @@ -1,11 +1,10 @@ import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; -import { SkillSystem } from "./SkillSystem"; -import { SkillAnimationSystem } from "./SkillAnimation"; +import { HeroSkillSystem } from "./HeroSkillSystem"; export class EcsSkillSystem extends ecs.System { constructor() { super(); - this.add(new SkillSystem()); - this.add(new SkillAnimationSystem()); + this.add(new HeroSkillSystem()); + } } diff --git a/assets/script/game/skill/HeroSkillSystem.ts b/assets/script/game/skill/HeroSkillSystem.ts new file mode 100644 index 00000000..f9bb33e3 --- /dev/null +++ b/assets/script/game/skill/HeroSkillSystem.ts @@ -0,0 +1,26 @@ +import { Node, Vec3 } from "cc"; +import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; +import { HeroViewComp } from "../hero/HeroViewComp"; +import { HeroSkillsComp } from "./heroSkillsComp"; + + +/** 技能系统 */ +@ecs.register('HeroSkillSystem') +export class HeroSkillSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate { + filter(): ecs.IMatcher { + return ecs.allOf(HeroSkillsComp, HeroViewComp); + + } + + update(e: ecs.Entity) { + let skills = e.get(HeroSkillsComp); + let view = e.get(HeroViewComp); + + + } + + +} + + + diff --git a/assets/script/game/common/ecs/position/MoveTo.ts.meta b/assets/script/game/skill/HeroSkillSystem.ts.meta similarity index 70% rename from assets/script/game/common/ecs/position/MoveTo.ts.meta rename to assets/script/game/skill/HeroSkillSystem.ts.meta index 5eda3c7a..363cbcbf 100644 --- a/assets/script/game/common/ecs/position/MoveTo.ts.meta +++ b/assets/script/game/skill/HeroSkillSystem.ts.meta @@ -2,7 +2,7 @@ "ver": "4.0.23", "importer": "typescript", "imported": true, - "uuid": "eb55eb50-dace-4e75-8965-3475c0b11835", + "uuid": "36448c83-0bd9-495b-806d-6e7d640370e3", "files": [], "subMetas": {}, "userData": {} diff --git a/assets/script/game/skill/ProjectileComp.ts b/assets/script/game/skill/ProjectileComp.ts deleted file mode 100644 index 153a5f03..00000000 --- a/assets/script/game/skill/ProjectileComp.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Vec3 } from "cc"; -import { ecs } from "db://oops-framework/libs/ecs/ECS"; -import { HeroViewComp } from "../hero/HeroViewComp"; - -// 投射物组件 -@ecs.register('Projectile') -export class ProjectileComp extends ecs.Comp { - speed: number = 500; // 飞行速度 - direction: Vec3 = Vec3.RIGHT;// 飞行方向 - maxDistance: number = 1000; // 最大射程 - traveled: number = 0; // 已飞行距离 - penetrate: number = 3; // 穿透次数 - targets = new Set(); // 已命中目标 - - reset() { - this.speed = 500; - this.direction.set(Vec3.RIGHT); - this.maxDistance = 1000; - this.traveled = 0; - this.penetrate = 3; - this.targets.clear(); - } -} - -// 投射物系统 -@ecs.register('ProjectileSystem') -export class ProjectileSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate { - filter(): ecs.IMatcher { - return ecs.allOf(ProjectileComp, HeroViewComp); - } - - update(e: ecs.Entity): void { - const proj = e.get(ProjectileComp); - const view = e.get(HeroViewComp); - - // 移动计算 - const delta = proj.direction.multiplyScalar(proj.speed * this.dt); - view.node.position = view.node.position.add(delta); - proj.traveled += delta.length(); - - // 碰撞检测(使用ECS组件检测) - this.checkCollision(e); - - // 超出射程销毁 - if (proj.traveled >= proj.maxDistance) { - e.destroy(); - } - } - - private checkCollision(e: ecs.Entity) { - const proj = e.get(ProjectileComp); - const view = e.get(HeroViewComp); - - // 获取范围内所有敌人 - // const enemies = ecs.getEntities(HeroViewComp).filter(entity => { - // const enemyView = entity.get(HeroViewComp); - // return enemyView.boxGroup !== view.boxGroup && - // Vec3.distance(view.node.position, enemyView.node.position) <= 50; // 碰撞半径 - // }); - - // enemies.forEach(enemy => { - // if (!proj.targets.has(enemy)) { - // this.applyDamage(e, enemy); - // proj.targets.add(enemy); - // proj.penetrate--; - // } - // }); - - if (proj.penetrate <= 0) { - e.destroy(); - } - } - - private applyDamage(projectile: ecs.Entity, target: ecs.Entity) { - const projView = projectile.get(HeroViewComp); - const targetView = target.get(HeroViewComp); - // targetView.takeDamage(projView.attack); - } -} \ No newline at end of file diff --git a/assets/script/game/skill/SkillAnimation.ts b/assets/script/game/skill/SkillAnimation.ts deleted file mode 100644 index 787607a5..00000000 --- a/assets/script/game/skill/SkillAnimation.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { ecs ,} from "db://oops-framework/libs/ecs/ECS"; -import { HeroViewComp } from "../hero/HeroViewComp"; -import { SkillsComp } from "./SkillSystem"; -import { SkillSet } from "../common/config/SkillSet"; -import { Node } from "cc"; - -// 动画组件 -@ecs.register('SkillAnimation') -export class SkillAnimationComp extends ecs.Comp { - prefab: Node | null = null; // 预制体实例 - damageTriggerTime = 0.3; // 伤害触发时间(秒) - elapsed = 0; // 已播放时间 - - reset() { - this.prefab?.destroy(); - this.prefab = null; - this.damageTriggerTime = 0.3; - this.elapsed = 0; - } -} - -// 动画系统 -@ecs.register('SkillAnimationSystem') -export class SkillAnimationSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate { - filter(): ecs.IMatcher { - return ecs.allOf(SkillAnimationComp, HeroViewComp); - } - - update(e: ecs.Entity): void { - const anim = e.get(SkillAnimationComp); - anim.elapsed += this.dt; - - // 伤害触发检测 - // if (!anim.hitted && anim.elapsed >= anim.hitTime) { - // this.applyDamage(e); - // anim.hitted = true; - // } - - // 更新动画状态 - // if (anim.elapsed >= anim.duration) { - // e.remove(SkillAnimationComp); - // } - } - - private applyDamage(e: ecs.Entity) { - const skill = e.get(SkillsComp); - const view = e.get(HeroViewComp); - - // 添加伤害标记组件 - - } - - // 在角色组件中实现目标查找 - -} \ No newline at end of file diff --git a/assets/script/game/skill/SkillSystem.ts b/assets/script/game/skill/SkillSystem.ts deleted file mode 100644 index d5b2a73a..00000000 --- a/assets/script/game/skill/SkillSystem.ts +++ /dev/null @@ -1,187 +0,0 @@ -import { Node, Vec3 } from "cc"; -import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; -import { HeroViewComp } from "../hero/HeroViewComp"; -import { SkillSet } from "../common/config/SkillSet"; -import { SkillAnimationComp } from "./SkillAnimation"; -import { ProjectileComp } from "./ProjectileComp"; - -/** 技能触发组件 */ -@ecs.register('HerosSkills') -export class SkillsComp extends ecs.Comp { - /** 技能ID */ - skillId: number = 0; - /** 目标位置/实体 */ - target: Vec3 | Node | null = null; - /** 当前冷却时间 */ - currentCooldown: number = 0; - - reset() { - this.skillId = 0; - this.target = null; - this.currentCooldown = 0; - } -} - -/** 技能系统 */ -@ecs.register('SkillSystem') -export class SkillSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate { - filter(): ecs.IMatcher { - return ecs.allOf(SkillsComp, HeroViewComp); - } - - update(e: ecs.Entity) { - let skill = e.get(SkillsComp); - let view = e.get(HeroViewComp); - - if (this.canCastSkill(skill, view)) { - this.castSkill(e, skill); - } - } - - private canCastSkill(skill: SkillsComp, view: HeroViewComp): boolean { - return skill.currentCooldown <= 0 && - view.pw >= view.pwm; - } - - private castSkill(entity: ecs.Entity, skill: SkillsComp) { - const skillData = SkillSet[skill.skillId]; - - // // 创建飞弹实体 - // const projectile = ecs.createEntity(); - // const projView = projectile.add(HeroViewComp); - // projView.node = instantiate(skillData.prefab); - // projView.node.setParent(entity.get(HeroViewComp).node.parent); - // projView.node.setPosition(entity.get(HeroViewComp).node.position); - - // // 添加投射物组件 - // projectile.add(ProjectileComp, { - // speed: skillData.speed, - // direction: entity.get(HeroViewComp).node.scale.x > 0 ? Vec3.RIGHT : Vec3.LEFT, - // maxDistance: skillData.range, - // penetrate: skillData.penetrate - // }); - - // 应用冷却时间 - skill.currentCooldown = skillData.cooldown; - - // 根据技能类型处理 - switch(skillData.type) { - case 'damage': - this.handleDamage(entity, skillData); - break; - case 'heal': - this.handleHeal(entity, skillData); - break; - case 'projectile': - this.castProjectileSkill(entity, skillData); - break; - } - - // 播放动画(示例) - // entity.get(HeroViewComp).playAnimation(skillData.anim); - - // 触发完成回调 - entity.remove(SkillsComp); - } - - private handleDamage(entity: ecs.Entity, data: any) { - const view = entity.get(HeroViewComp); - // 实现伤害逻辑... - } - - private handleHeal(entity: ecs.Entity, data: any) { - const view = entity.get(HeroViewComp); - // 实现治疗逻辑... - } - - private castProjectileSkill(entity: ecs.Entity, skillData: any) { - const view = entity.get(HeroViewComp); - - // 创建飞弹实体 - - } - - private exit(e: ecs.Entity) { - e.remove(SkillsComp); - } -} - -// 动画系统 -@ecs.register('SkillAnimationSystem') -export class SkillAnimationSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate { - filter(): ecs.IMatcher { - return ecs.allOf(SkillAnimationComp); - } - - update(e: ecs.Entity): void { - const anim = e.get(SkillAnimationComp); - anim.elapsed += this.dt; - - // 触发伤害检测 - if (anim.elapsed >= anim.damageTriggerTime) { - e.add(DamageLineComp); // 添加伤害区域组件 - e.remove(SkillAnimationComp); - } - } -} - -// 直线型伤害区域组件 -@ecs.register('DamageLine') -export class DamageLineComp extends ecs.Comp { - startPos: Vec3 = new Vec3(); - direction: Vec3 = Vec3.RIGHT; - length: number = 300; - width: number = 50; - - reset() { - this.startPos.set(); - this.direction.set(Vec3.RIGHT); - this.length = 300; - this.width = 50; - } -} - -// 直线伤害系统 -@ecs.register('DamageLineSystem') -export class DamageLineSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate { - filter(): ecs.IMatcher { - return ecs.allOf(DamageLineComp, HeroViewComp); - } - - update(e: ecs.Entity): void { - const line = e.get(DamageLineComp); - const caster = e.get(HeroViewComp); - - // 根据角色朝向调整方向 - line.direction = caster.node.scale.x > 0 ? Vec3.RIGHT : new Vec3(-1, 0, 0); - - // 获取直线区域内的目标 - const targets = this.getTargetsInLine( - caster.node.worldPosition, - line.direction, - line.length, - line.width, - caster.box_group - ); - - // 应用伤害 - targets.forEach(target => { - - }); - - e.remove(DamageLineComp); - } - - private getTargetsInLine(origin: Vec3, dir: Vec3, length: number, width: number, team: number): ecs.Entity[] { - return []; - } - - private isInLine(origin: Vec3, dir: Vec3, target: Vec3, length: number, width: number): boolean { - return false; // 临时返回值保持类型安全 - // const toTarget = target.subtract(origin); - // const projection = Vec3.project(toTarget, dir); - } -} - - - diff --git a/assets/script/game/skill/heroSkillsComp.ts b/assets/script/game/skill/heroSkillsComp.ts new file mode 100644 index 00000000..0454c7af --- /dev/null +++ b/assets/script/game/skill/heroSkillsComp.ts @@ -0,0 +1,10 @@ +import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; +@ecs.register('HeroSkills') +export class HeroSkillsComp extends ecs.Comp { + /** 移动方向:1向右,-1向左 */ + + + reset() { + + } +} \ No newline at end of file diff --git a/assets/script/game/skill/heroSkillsComp.ts.meta b/assets/script/game/skill/heroSkillsComp.ts.meta new file mode 100644 index 00000000..d7fffec6 --- /dev/null +++ b/assets/script/game/skill/heroSkillsComp.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "42bf4f68-80fe-4b71-88d1-89cbaea575cb", + "files": [], + "subMetas": {}, + "userData": {} +}