Silverlight C# 遊戲開發:L1 3D世界的建造

來源:互聯網
上載者:User

我們在上一篇介紹了Balder的3D效果,今天我們用一點時間製作第一個3D例子,一起來研究和學習Silverlight的3D世界,本篇的目標效果如下:

前篇連結:Silverlight C# 遊戲開發:Balder的3D世界

在開發之前,我們先將Balder下載,下載方法如下:

進入http://balder.codeplex.com/,點擊右側的DownLoad按鈕,簡單的確認之後就下載下來了,當前的版本是0.8.8.9,所以你看到的ZIP包是Balder_0_8_8_9.zip,將其解壓縮。

目錄包含Silverlight3、Silverlight4、WP7,具體使用那個,要看你的需求,我所使用的環境是VS2010+Silverlight4.0。

那麼好,現在建立一個Silverlight工程,為了更好的複用程式和展示,我們使用控制項方式來一步一步的學習,那麼我們將其約定為Lesson為開頭,這樣只需要找到對應的篇章即可,我會在標題上用“L+數字+內容標題”做區分。

 

現在先將Balder的引擎引用到項目當中:

Balder.dll是主要的引擎架構和程式集,而Ninject是一個.net的輕量級開發架構,Balder使用了其中的一些方法,如果對Ninject有興趣,可以參看和瞭解:http://ninject.org/

現在我們建立一個Silverlight控制項,命名請隨意,我起名為Lesson01。

現在開始創造3D世界了,首先呢,要增加Balder的程式引用,將下屬代碼Using到控制項當中:

Execution當中提供了主要的Game類,Lighting是燈光有關的命名空間,View是視圖,Math內包含了很多3D數學有關的類和方法,至於Geometries是3D模型的命名空間,包含了很多有用的模型。

在建構函式中添加如下代碼:

 

//起初神創造天地。
Game game = new Game() { Width = 800, Height = 600 };
//地是空虛混沌。淵面黑暗。
game.Camera = new Camera();
game.Camera.Position = new Coordinate(100, 150, 100);
game.Camera.Target = new Coordinate(0, 0, 0);
//神說,要有光,就有了光。
game.Children.Add(new OmniLight() { Position = new Coordinate(0,0,0) });
//神創造萬物
game.Children.Add(new Box() { Dimension = new Coordinate(100,100,50),InteractionEnabled = true });

LayoutRoot.Children.Add(game);

 

就是這麼簡單,對於3DGame來說,主要由情境、攝像機、燈光、物體組成,和神創世沒什麼區別,上面的座標資料可以隨便修改,通過調整這些數值來感受3D的世界是一種不錯的享受,現在運行一下看看效果吧。

但是在那之前,要找到MainPage添加一行代碼:

LayoutRoot.Children.Add(new Lesson01());

 

上面的一行是為了將剛才Lesson01的控制項添加到首頁面當中,這隻是我的做法,你可以找到程式的入口,將App的RootVisual換掉,當然了這屬於你的個人喜好。

下面是實際的效果示範,滑鼠按住方體移動,感受一下吧:)


原始碼:點擊這裡下載工程

工程中如果缺少Balder.dll請在這裡快速下載:SL4_Balder.rar

 

推薦Silverlight遊戲開發部落格:深藍色右手 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.