Exemple #1
0
 public override void ChangeAttack(ATKSTATETYPE state, Vector2D vct)
 {
     base.ChangeAttack(state, vct);
     //生成一个攻击判定组件
     //1阶技能组件
     if (state == ATKSTATETYPE.First)
     {
         Entities.Players.WriggleCmp1 cmp = new Entities.Players.WriggleCmp1(texturemanager, vct, 50);
         AttackComponents.Add(cmp);
     }
     //2阶技能组件
     if (state == ATKSTATETYPE.Second)
     {
         Entities.Players.WriggleCmp1 cmp = new Entities.Players.WriggleCmp1(texturemanager, vct);
         AttackComponents.Add(cmp);
     }
     //3阶技能组件
     if (state == ATKSTATETYPE.Third)
     {
         Entities.Players.WriggleCmp1 cmp = new Entities.Players.WriggleCmp1(texturemanager, vct);
         AttackComponents.Add(cmp);
     }
     //最终技能组件
     if (state == ATKSTATETYPE.Final)
     {
         Entities.Players.WriggleCmp1 cmp = new Entities.Players.WriggleCmp1(texturemanager, vct);
         AttackComponents.Add(cmp);
     }
 }
Exemple #2
0
 //攻击连击
 public void Attack()
 {
     //第一次
     if (attackState == ATKSTATETYPE.None)
     {
         if (allowAttackRush)
         {
             attackState = ATKSTATETYPE.First;
             //不允许一次较短时间内重复放出基础技能
             allowAttackRush = false;
         }
     }
     //第二次触发一阶攻击
     else if (attackState == ATKSTATETYPE.First)
     {
         attackState = ATKSTATETYPE.Second;
         //攻击态复位
         attackCaculateTime = 0;
     }
     else if (attackState == ATKSTATETYPE.Second)
     {
         attackState = ATKSTATETYPE.Third;
         //攻击态复位
         attackCaculateTime = 0;
     }
     else if (attackState == ATKSTATETYPE.Third)
     {
         attackState = ATKSTATETYPE.Final;
         //攻击态复位
         attackCaculateTime = 0;
     }
     else if (attackState == ATKSTATETYPE.Final)
     {
         attackState        = ATKSTATETYPE.None;
         attackCaculateTime = 0;
     }
     CurrentCharactor.ChangeAttack(attackState, Position);
 }
Exemple #3
0
 //更新连击(产生攻击间隔判定)
 void UpdateAttack(double elapsedTime)
 {
     //如果一直保持某种攻击态,则过一段时间后状态还原
     if (attackState != ATKSTATETYPE.None)
     {
         attackCaculateTime += elapsedTime;
         if (attackCaculateTime > attackRefreshTime)
         {
             attackCaculateTime = 0;
             attackState        = ATKSTATETYPE.None;
         }
     }
     //如果不允许重置攻击,则进行重置记录
     if (allowAttackRush == false)
     {
         attackCDCaculate += elapsedTime;
         if (attackCDCaculate >= attackCD)
         {
             allowAttackRush  = true;
             attackCDCaculate = 0;
         }
     }
 }
Exemple #4
0
 /// <summary>
 /// 切换攻击形态
 /// </summary>
 /// <param name="state">更换的形态状态标记</param>
 /// <param name="vct">技能所要追随的Vector2D组件</param>
 public virtual void ChangeAttack(ATKSTATETYPE state,Vector2D vct)
 {
 }
Exemple #5
0
 public override void ChangeAttack(ATKSTATETYPE state,Vector2D vct)
 {
     base.ChangeAttack(state,vct);
     //生成一个攻击判定组件
     //1阶技能组件
     if (state == ATKSTATETYPE.First)
     {
         Entities.Players.WriggleCmp1 cmp = new Entities.Players.WriggleCmp1(texturemanager, vct,50);
         AttackComponents.Add(cmp);
     }
     //2阶技能组件
     if (state == ATKSTATETYPE.Second)
     {
         Entities.Players.WriggleCmp1 cmp = new Entities.Players.WriggleCmp1(texturemanager, vct);
         AttackComponents.Add(cmp);
     }
     //3阶技能组件
     if (state == ATKSTATETYPE.Third)
     {
         Entities.Players.WriggleCmp1 cmp = new Entities.Players.WriggleCmp1(texturemanager, vct);
         AttackComponents.Add(cmp);
     }
     //最终技能组件
     if (state == ATKSTATETYPE.Final)
     {
         Entities.Players.WriggleCmp1 cmp = new Entities.Players.WriggleCmp1(texturemanager, vct);
         AttackComponents.Add(cmp);
     }
 }
Exemple #6
0
 //更新连击(产生攻击间隔判定)
 void UpdateAttack(double elapsedTime)
 {
     //如果一直保持某种攻击态,则过一段时间后状态还原
     if (attackState != ATKSTATETYPE.None)
     {
         attackCaculateTime += elapsedTime;
         if (attackCaculateTime > attackRefreshTime)
         {
             attackCaculateTime = 0;
             attackState = ATKSTATETYPE.None;
         }
     }
     //如果不允许重置攻击,则进行重置记录
     if (allowAttackRush == false)
     {
         attackCDCaculate += elapsedTime;
         if (attackCDCaculate >= attackCD)
         {
             allowAttackRush = true;
             attackCDCaculate = 0;
         }
     }
 }
Exemple #7
0
 //攻击连击
 public void Attack()
 {
     //第一次
     if (attackState == ATKSTATETYPE.None)
     {
         if (allowAttackRush)
         {
             attackState = ATKSTATETYPE.First;
             //不允许一次较短时间内重复放出基础技能
             allowAttackRush = false;
         }
     }
     //第二次触发一阶攻击
     else if (attackState == ATKSTATETYPE.First)
     {
         attackState = ATKSTATETYPE.Second;
         //攻击态复位
         attackCaculateTime = 0;
     }
     else if (attackState == ATKSTATETYPE.Second)
     {
         attackState = ATKSTATETYPE.Third;
         //攻击态复位
         attackCaculateTime = 0;
     }
     else if (attackState == ATKSTATETYPE.Third)
     {
         attackState = ATKSTATETYPE.Final;
         //攻击态复位
         attackCaculateTime = 0;
     }
     else if (attackState == ATKSTATETYPE.Final)
     {
         attackState = ATKSTATETYPE.None;
         attackCaculateTime = 0;
     }
     CurrentCharactor.ChangeAttack(attackState,Position);
 }
Exemple #8
0
 /// <summary>
 /// 切换攻击形态
 /// </summary>
 /// <param name="state">更换的形态状态标记</param>
 /// <param name="vct">技能所要追随的Vector2D组件</param>
 public virtual void ChangeAttack(ATKSTATETYPE state, Vector2D vct)
 {
 }