前面的Flyer01說過,用Silverlight開發遊戲可以通過代碼方式和Blend開發工具完成,Blend的視圖開發環境和Flash的很像,但是更加強調是程式結合,從不怎麼明顯的動畫軸就知道,而Silverlight也不是和Flash一樣離開了開發工具就完全不能開發,我打算通過這個簡陋的例子讓朋友知道,如何只用代碼的方式開發一個Silverlight遊戲。
一,需要一個環境,這個可以在這篇中找到答案Silverlight C# 遊戲開發:Silverlight開發環境
二,建立一個Silverlight工程,然後開始編寫代碼:)
第一開始,我們需要一個視窗來呈現整個遊戲的內容,那麼我需要在XAML中添加如下代碼:
上面的意義是,在一個空間為400x400中加入一個畫布,背景顏色為藍色,至於這方面內容參看這個Silverlight C# 遊戲開發:關於精靈for Silverlight容器
現在,在工程裡添加一個類,如果你喜歡直接添加代碼檔案也不錯,我這個人比較懶,自動的爽些
寫如下代碼,其意義是一個繼承自Canvas的雲彩控制項,在這個控制項中增加一個Image,Image不能繼承不能作為基類,所以我們使用一個Canvas作為容器。
可是,我們的資源在這裡呢?需要準備一套圖片,然後添加到工程當中,在這裡加了一個Src的目錄,如所示:(檔案在下面的附件中可以下載)
現在在MainPage類中添加如下代碼:
運行一下就可以看到效果:
我們看到一個雲彩在頁面當中,這是使用純程式碼形式顯示的第一張圖片,在這個結構中,ClassCloud類是繼承自Canvas的控制項,裡面有一個Image的控制項,雖然說起來很麻煩,但是並不複雜,相信應該能夠很容易理解,但是一個片雲彩沒有什麼意思,我們最終的目的是想讓其飄動起來,但是怎麼做到呢?最主要的,首先是可以控制它的座標:
上面的XY可以直接控制自身的座標,這裡就不用做實驗了……雲彩肯定是一堆雲彩,會有很多個,這樣的話,就需要另外一個容器裝載這些雲彩,為了讓結構清晰,咱們設定一個ClassCloudGroup用來管理這些雲彩,同時,這個也是一個控制項容器:
上面的代碼意思是建立一個容器,指定數量的建立雲彩,只需要在MainPage的建構函式中增加出來,然後添加視窗中,運行效果如下:
現在出現了很多雲彩,隨機分布在藍色背景上, OK,那麼下一步就是讓他們動起來,由於設定的遊戲是向下飛行,那麼雲彩應該向上飄動,因此我們在雲彩組裡加入如下的代碼:
運行效果如下:
為了更加好看,我做了一些特殊處理,詳細參見原始碼吧:點擊這裡下載
代碼上做了一些有趣的修正,可能和上述的代碼不一致,但是有詳細的注釋,相信應該對大家有個協助。
這是遊戲最有魅力的地方,你能通過操作創造一個世界,這是一個單純的簡單背景,那麼下次,咱們一起和飛行員飄落:)