序:自從QXGame(WPF GAME ENGINE)游戲引擎公布以來,受到很多朋友的熱切關注,於是乎有了寫教程的想法。那麼從今天開始,我將帶領大家一步一步的學會如何使用純C#開發WPF/Silverlight游戲引擎,過程中我會盡量的開源,並對相關小技巧進行解釋和介紹,比較復雜的算法原理我會給大家一條絕對可行的思路,至於如何處理這些復雜的算法,那是仁者見仁,智者見智了,或許您寫的算法比我的更好呢。
多余的話不多說了,最後來句發自肺腑的話吧:本系列教程的書寫編輯花費作者很多心血,沒有功勞也有苦勞哇,所以請需要轉載的朋友們用突出的字體或顏色標明在您的文章開頭,您的大力支持是鼓勵我不斷寫下去的動力。
前言:WPF/Silverlight矢量動畫的描述我就不多說了,關於WPF/Silverlight與Flash的比較網上也是一堆一堆的,這裡只想客觀的告訴讀者下面兩點:
一、WPF開發的是桌面應用程序,自包括Vista在內以後的Windows系列操作系統均大量以之為主流圖形工具,即將全面取代Winform,並且Windows 7將集成.Net3.5+框架,在當今Windows系列操作系統占據90%同類市場的現狀下,這意味著什麼呢?
二、Silverlight基於一個約4M左右的MINI型.NET框架,目前版本2.0,3.0的beta英文版,從發展趨勢看是絕對有與Flash抗衡並且在未來超越它的可能性。Silverlight的優勢更表現在它可以用一切.NET語言例如C#,VB.NET,C++.Net等開發,拓展度與可以參與開發的人群遠遠高於只能用AS開發的Flash。
轉入正題,網上已經有很多關於如何創建WPF/Silverlight動畫的教程,但是均為使用Blend工具制作,或直接寫在xaml代碼內的動畫,這樣往往造成很多朋友誤以為其實WPF/Silverlight不就是MS的Flash?誠然,如果您真的像那些教程裡說的去開發WPF/Silverlight程序,我個人覺得一點意義都沒有。這樣開發出來的東西根本就超越不了Flash,那何苦還要投入如此多的精力來學習它?
所以本系列教程將全方位的以純C#程序語言進行動態創建一切可視化對象,從而構建出一個如QXGame(WPF GAME ENGINE)游戲引擎,這才是我本系列教程希望達到的目的。
(注:本教程使用的開發工具為Visual studio 2008 版本sp1)
好了,那麼我首先介紹第一種動態創建動畫的方法,這也是官方推薦的Storyboard動畫。該類型動畫您可以在網絡上查閱相關資料進行了解,這裡不累述了,那麼我們直接進入主題:
首先我們新建一個WPF項目,接下來打開Window1.xaml進入視圖代碼編輯器,這裡我們這樣寫:
<Window x:Class="WpfApplication1.Window1"
XMLns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
XMLns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="WPFGame">
< Canvas x:Name="CarrIEr" Width="800" Height="600" Background="Silver"
MouseLeftButtonDown="CarrIEr_MouseLeftButtonDown" />
< /Window>