排序问题解决,优化小兵线路
This commit is contained in:
@@ -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){
|
||||
|
||||
Reference in New Issue
Block a user