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

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

編輯:關於C語言

本節示例代碼中我為主角賦予了一定的根屬性值從而得出65%的命中與18%的暴擊率。當向敵人發起攻擊時系統會首先進行命中判斷,沒有命中則無任何傷害;如果命中,則在此基礎上再進行暴擊(傷害加倍)判斷,否則則為普通攻擊。接著根據不同的傷害類型通過ShowText()方法(該方法顯示出來的是QXText控件的實例,即第十四節中的BorderText,這裡我重構並Open了)將傷害顯示到游戲畫面中,最後如果有命中還需要讓敵人減去相應的生命值。DoInjure()方法算是最基本的傷害處理方法,在後面的章節中還會有更多更復雜的處理,我們可以通過DoInjure()多態來實現,最終完善游戲的傷害系統。

通常的網絡游戲中,傷害值會顯示在對應的精靈頭頂,並不斷的漸隱上升,最後消失並被系統移除。本節示例游戲中我們可以輕松的在AllMove()中實現此功能:

……

if (obj is QXText) {

 QXText text = obj as QXText;

 if (text.Opacity <= 0) {

   Remove(text);

 } else {

   text.Opacity -= 0.005;

   text.Y -= 0.5;

}

……

每次游戲畫面刷新時,傷害字體透明度-0.005且勻速上升0.5,當透明度由1->0後,游戲便將之移除從而及時的釋放掉資源:

在攻擊的過程中,大家不妨觀察被攻擊的怪物頭上的血條及監視頭像面板中的血條是否都時時更新且保持一致,通過前面幾節的努力,這方面的擴展均是無縫的。

額外的,傷害顯示方式並非只此一種,您完全可以充分的激活自己的大腦細胞做出更多的創新。例如利用第二十六節的彩虹筆刷來美化文字;模仿JS的數字驗證碼來創造出誇張或抽象美的字體;更甚者,您完全可以將文字作成動畫封裝成控件來使用,當暴擊時給予玩家極好的視覺享受等等:

整個過程完美銜接,構建出經典又不失完美的物理攻擊系統。下一節我將對為所有精靈加入簡單AI,使精靈們更加栩栩如生,美妙的虛擬世界在向你招手,敬請關注。

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