排序问题解决,优化小兵线路

This commit is contained in:
2024-09-13 00:51:23 +08:00
parent f80115e251
commit 221d91a795
43 changed files with 11085 additions and 28930 deletions

View File

@@ -61,6 +61,7 @@ export class HeroViewComp extends CCComp {
skill_uuid:number = 9001;
max_skill_uuid:number = 1001;
atk: number = 10; /**攻击力 */
buff_atk: number = 0;
// atk_speed: number = 1;
atk_cd: number = 1.3; /**攻击速度 攻击间隔 */
atk_dis: number = 80;
@@ -86,7 +87,7 @@ export class HeroViewComp extends CCComp {
buff_shields:any=[];
buff_atks:any = [];
dir_y:number = 0;
speek_time:number = 0;
onLoad() {
this.as = this.getComponent(HeroSpine);
// this.BoxRang = this.node.getChildByName("range_box");
@@ -137,9 +138,24 @@ export class HeroViewComp extends CCComp {
this.hp_change(skill.atk);
}
}
}
onEndContact (selfCollider: Collider2D, otherCollider: Collider2D) {
}
onEndContact (selfCollider: Collider2D, otherCollider: Collider2D) { }
onPreSolve (selfCollider: Collider2D, otherCollider: Collider2D) {
if(selfCollider.group == otherCollider.group&&selfCollider.tag==otherCollider.tag){
console.log("onBeginContact tag "+selfCollider.tag+otherCollider.tag)
if(selfCollider.node.position.y < otherCollider.node.position.y){
if(selfCollider.node.getSiblingIndex() < otherCollider.node.getSiblingIndex()){
console.log("onPreSolve",selfCollider.node,otherCollider.node)
console.log("onPreSolve f:"+selfCollider.node.uuid+":"+selfCollider.node.getSiblingIndex()+"/"+otherCollider.node.uuid+":"+otherCollider.node.getSiblingIndex());
selfCollider.node.setSiblingIndex(otherCollider.node.getSiblingIndex()+1)
console.log("onPreSolve b:"+selfCollider.node.uuid+":"+selfCollider.node.getSiblingIndex()+"/"+otherCollider.node.uuid+":"+otherCollider.node.getSiblingIndex());
}
}
}
}
onPostSolve (selfCollider: Collider2D, otherCollider: Collider2D) {
}
@@ -154,6 +170,7 @@ export class HeroViewComp extends CCComp {
this.in_shield(dt);
this.in_stop(dt);
this.in_atk(dt);
this.in_speek(dt);
this.move(dt);
// if(this.m_timer.update(dt)){
// this.move_to()
@@ -221,6 +238,7 @@ export class HeroViewComp extends CCComp {
this.power += power;
if(this.power >= this.power_max&&this.check_enemy_alive()){
this.as.atk()
this.to_speek(smc.skills[this.max_skill_uuid].name)
this.scheduleOnce(()=>{
this.do_max_skill();
},0.5)
@@ -257,7 +275,22 @@ export class HeroViewComp extends CCComp {
let atk = smc.skills[this.max_skill_uuid].atk+this.atk;
let {pos,angle,t_pos}=this.get_enemy_pos()
skill.load(pos,speed,dis,scale,this.node,this.max_skill_uuid,atk,angle,t_pos);
this.tooltip(3,smc.skills[this.max_skill_uuid].name,this.max_skill_uuid);
}
to_speek(words:string,time:number=0.5){
this.speek_time=0.5
this.node.getChildByName("tooltip").active=true
this.node.getChildByName("tooltip").getChildByName("words").getComponent(Label)!.string = words
}
in_speek(dt: number){
if(this.speek_time <= 0){
return;
}
this.speek_time -= dt;
if(this.speek_time <= 0){
this.speek_time = 0;
this.node.getChildByName("tooltip").getChildByName("words").getComponent(Label)!.string = "";
this.node.getChildByName("tooltip").active=false;
}
}
get_enemy_pos(){
let pos = v3(35*this.scale,50)
@@ -320,21 +353,13 @@ export class HeroViewComp extends CCComp {
this.node.getChildByName("top").getChildByName("hp").getComponent(ProgressBar)!.progress = hp_progress;
if(this.hp <= 0){
this.dead();
this.remove_smc_data()
this.is_dead = true;
setTimeout(() => {
this.ent.destroy();
}, 15);
}
}
remove_smc_data(){
if(smc.t_monster.eid == this.ent.eid){
smc.t_monster = {eid:0,pos:v3(0,0,0)}
}
if(smc.t_hero.eid == this.ent.eid){
smc.t_hero = {eid:0,pos:v3(0,0,0)}
}
}
add_hp(hp: number=0){
console.log("hero 加血动画");
this.hp+=hp;
@@ -349,6 +374,9 @@ export class HeroViewComp extends CCComp {
if(time > 0){
let buff={atk:atk,time:time}
this.buff_atks.push(buff);
this.buff_atks.forEach((element: { atk: number; }) => {
this.buff_atk += element.atk
});
}else{
this.atk += atk;
}
@@ -358,10 +386,20 @@ export class HeroViewComp extends CCComp {
let buff=this.buff_atks[i];
buff.time -= dt;
if(buff.time <= 0){
if(buff.atk > 0)this.atk -= buff.atk;
this.buff_atks.splice(i,1);
}else{
this.buff_atk += buff.atk
}
}
if(this.buff_atks.length <= 0){
this.buff_atk = 0
this.buff_icon_change("atk",false)
}else{
this.buff_icon_change("atk",true)
}
}
buff_icon_change(icon:string,value:boolean){
this.node.getChildByName("top").getChildByName("buff").getChildByName(icon).active=value
}
add_shield(shield: number,time:number=0){
this.shield =this.shield_max=shield
@@ -406,7 +444,7 @@ export class HeroViewComp extends CCComp {
pos.y=pos.y+y;
tip.load(pos,type,value,s_uuid,node);
}
/** 静止时间 */
in_stop (dt: number) {
if(this.stop_cd > 0){