程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#開發WPF/Silverlight動畫及游戲系列教程(Game Course):(三十二)(4)

C#開發WPF/Silverlight動畫及游戲系列教程(Game Course):(三十二)(4)

編輯:關於C語言

4)毒:

本示例教程中我將之定義為精靈每秒持續傷血。此效果實現起來更簡單了,只需要在主界面間隔為1秒的輔助線程計時器中對中毒時間是否大於0進行判斷,然後進行相應的傷害處理即可;並且其他的所有附加屬性的時間減少均寫在該方法內:

//同步激發精靈附加屬性效果
for (int i = 0; i < CarrIEr.Children.Count; i++) {
 if (CarrIEr.Children[i] is QXSpirit) {
  QXSpirit spirit = CarrIEr.Children[i] as QXSpirit;
  if (spirit.VLife != 0) {
   for (int j = 0; j < spirit.ExtraTime.Count(); j++) {
     if (spirit.ExtraTime[j] > 0) {
      //中毒則每秒傷血
      if (j == 3) {
        Super.DoInjure(Find(spirit.ExtrASPirit), spirit, spirit.ExtraEffect[j]);
      }
//持續時間減少
      spirit.ExtraTime[j] = spirit.ExtraTime[j] - AuxiliaryThread.Interval.Seconds;
      if (spirit.ExtraTime[j] <= 0) {
       //移除附加屬性效果
       Super.RemoveExtraEffect(spirit, j);
      }
     }
   }
  }
 }
}

測試效果截圖:

5)火:

本示例教程中我將之定義為降低精靈所有防御類屬性值。類似於冰的效果,處理時只需將物理防御力的Buff[9]、隔擋率的Buff[10]、魔法防御力的Buff[12]減少對應的火攻擊值即可:

enemy.Buff[9] = -enemy.ExtraEffect[magic.ExtraAttribute];
enemy.Buff[10] = -enemy.ExtraEffect[magic.ExtraAttribute];
enemy.Buff[12] = -enemy.ExtraEffect[magic.ExtraAttribute];

解除時3者歸0。

測試效果截圖:

-
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved