Windows Phone 7 XNA也可以喔!
window phonr 7除了可以用silverlight實作以外,也可以用XNA做遊戲喔!!而且作法也很簡單。
首先開啟Windows Phone Game(4.0)專案
要開發WP7必須用XNA 4.0,和以前版本較大的不同就是Content和主程式分離,基本的目錄結構變成這樣
不過使用起來是差不多的!
看一下建構式
1: public Game1()
2: {3: graphics = new GraphicsDeviceManager(this);
4: Content.RootDirectory = "Content";
5: 6: // Frame rate is 30 fps by default for Windows Phone.
7: TargetElapsedTime = TimeSpan.FromTicks(333333); 8: }第7行是設定FPS為30,因為XNA預設的FPS是60,而WP7是30FPS,所以要自己設定。
接著我們隨便選一張圖片拉近Content裡,然後改名字叫Pic。
然後輸入程式碼如下
1: Texture2D picture;2: protected override void LoadContent()
3: {4: spriteBatch = new SpriteBatch(GraphicsDevice);
5: 6: picture = Content.Load<Texture2D>("Pic");
7: } 8: 9: protected override void Draw(GameTime gameTime)
10: { 11: GraphicsDevice.Clear(Color.CornflowerBlue); 12: 13: spriteBatch.Begin();14: spriteBatch.Draw(picture, new Vector2(0, 0), Color.White);
15: spriteBatch.End();16: base.Draw(gameTime);
17: }
第6行載入圖片,第13到15行在原點畫出這張圖,這樣就會在模擬器螢幕上的原點畫出那張圖
這!!好像和我們認知的原點不一樣ㄝ,而且轉方向後圖還會跑到下面。
這是因為現在的智慧手機都可以隨著螢幕的方向讓畫面做改變,
所以遊戲也不一定只能直的玩,因此模擬器一開始是以螢幕在左邊的方式啟動遊戲,
甚麼叫螢幕在左邊的方式呢?
這就要講到DisplayOrientation這個列舉的功能了,
這個列舉有四個值
| Default | 預設值,會自動幫你轉 |
| LandscapeLeft | 螢幕在左邊 |
| LandscapeRight | 螢幕在右邊 |
| Portrait | 螢幕是直的 |
這四種可以用OR做多選,並且最好在建構子的時候設定,那我們就設定為直的試試看囉!
建構子如下
1: public Game1()
2: {3: graphics = new GraphicsDeviceManager(this);
4: Content.RootDirectory = "Content";
5: 6: graphics.SupportedOrientations = DisplayOrientation.Portrait; 7: 8: // Frame rate is 30 fps by default for Windows Phone.
9: TargetElapsedTime = TimeSpan.FromTicks(333333); 10: }那我們來試試看執行結果
哇~這是怎樣!!
原來是XNA預設的大小是寬800、高480,但是我們卻設定只能是直的,
所以畫面會被超出螢幕,我們可以設定遊戲的長寬
把建構子改成下面這樣
1: public Game1()
2: {3: graphics = new GraphicsDeviceManager(this);
4: Content.RootDirectory = "Content";
5: 6: graphics.PreferredBackBufferHeight = 800; 7: graphics.PreferredBackBufferWidth = 480; 8: graphics.SupportedOrientations = DisplayOrientation.Portrait; 9: 10: // Frame rate is 30 fps by default for Windows Phone.
11: TargetElapsedTime = TimeSpan.FromTicks(333333); 12: }跑出來的畫面就會是直的了
基本的貼圖就介紹到這裡,對已經有開發過XNA的人來說,要開發手機遊戲真的是很容易上手啊!
希望喜歡XNA的人可以一起來研究喔!