技能移动修改

This commit is contained in:
2024-08-21 14:10:17 +08:00
parent 3f18763730
commit 76a7854e94
15 changed files with 161 additions and 104 deletions

View File

@@ -1,8 +1,12 @@
import { _decorator } from "cc";
import { _decorator,v3,Vec3 } from "cc";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
import { Timer } from "../../../../extensions/oops-plugin-framework/assets/core/common/timer/Timer";
import { Skill } from "../skills/Skill";
import { SkillSet } from "../common/config/CardSet";
import { Monster } from "./Monster";
import { MonsterModelComp } from "./MonsterModelComp";
import { MonsterViewComp } from "./MonsterViewComp";
const { ccclass, property } = _decorator;
/** 视图层对象 */
@@ -10,21 +14,47 @@ const { ccclass, property } = _decorator;
@ecs.register('CSkill', false)
export class CSkillComp extends CCComp {
//持续时间
in_time: Timer = new Timer(5)
is_destroy:boolean = false;
camp:number = 1;
private sd:Timer = new Timer(5)
private cd:Timer = new Timer(1)
private is_destroy:boolean = false;
scale:number = 1;
speed:number = 0;
dis:number = 0;
atk:number = 0;
skill_uuid:number = 1001;
/** 视图层逻辑代码分离演示 */
start() {
// var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
// this.on(ModuleEvent.Cmd, this.onHandler, this);
this.sd =new Timer(SkillSet[this.skill_uuid].sd)
this.cd = new Timer(SkillSet[this.skill_uuid].cd)
}
protected update(dt: number): void {
if (this.in_time.update(dt)) {
if (this.sd.update(dt)) {
if (this.is_destroy) {
return
}
this.to_destroy()
}
if (this.cd.update(dt)) {
this.shoot()
}
}
shoot() {
let skill = ecs.getEntity<Skill>(Skill);
let pos = v3(0,0)
let t_pos:Vec3=null
let monsters:any = ecs.query(ecs.allOf(MonsterModelComp));
for (const monster of monsters) {
t_pos= monster.getComponent(MonsterViewComp).get_monster_pos()
}
let scale = this.scale
let dis = SkillSet[this.skill_uuid].dis+this.dis;
let atk = SkillSet[this.skill_uuid].atk+this.atk;
let speed = SkillSet[this.skill_uuid].speed+this.speed;
let sp_name = SkillSet[this.skill_uuid].sp_name
skill.load(pos,speed,dis,scale,this.node,sp_name,atk,t_pos);
}
/** 全局消息逻辑处理 */
// private onHandler(event: string, args: any) {