国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

創(chuàng)建第一個(gè)XNA程序:Hello XNA

移動(dòng)開(kāi)發(fā)
下面創(chuàng)建一個(gè)簡(jiǎn)單的Windows Phone 7的XNA程序,只是一個(gè)Hello XNA的文本,從屏幕的左上角一直往右下角移動(dòng),通過(guò)該例子來(lái)開(kāi)始Windows Phone 7 XNA的游戲編程。

下面創(chuàng)建一個(gè)簡(jiǎn)單的Windows Phone 7的XNA程序,只是一個(gè)Hello XNA的文本,從屏幕的左上角一直往右下角移動(dòng),通過(guò)該例子來(lái)開(kāi)始Windows Phone 7 XNA的游戲編程。

新建一個(gè)項(xiàng)目后可以看到這樣的一個(gè)項(xiàng)目工程結(jié)構(gòu),如圖所示。

項(xiàng)目工程結(jié)構(gòu)

Content項(xiàng)目是表示游戲的資源文件,相關(guān)游戲的資源就需要在Content目錄下進(jìn)行添加。

看一下Game1.cs這個(gè)主要的類:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using Microsoft.Xna.Framework;  
  5. using Microsoft.Xna.Framework.Audio;  
  6. using Microsoft.Xna.Framework.Content;  
  7. using Microsoft.Xna.Framework.GamerServices;  
  8. using Microsoft.Xna.Framework.Graphics;  
  9. using Microsoft.Xna.Framework.Input;  
  10. using Microsoft.Xna.Framework.Input.Touch;  
  11. using Microsoft.Xna.Framework.Media;  
  12.  
  13. namespace HelloWorldXNA  
  14. {  
  15.     /// <summary> 
  16.     /// 游戲的主要主體類  
  17.     /// </summary> 
  18.     public class Game1 : Microsoft.Xna.Framework.Game  
  19.     {  
  20.         GraphicsDeviceManager graphics;//用于管理圖形設(shè)備  
  21.         SpriteBatch spriteBatch;//游戲的圖形設(shè)備來(lái)畫(huà)2D對(duì)象  
  22.  
  23.         SpriteFont spriteFont1;//字體  
  24.         Viewport viewport;//窗體  
  25.         Vector2 textSize;//字體大小 二維向量  
  26.         Vector2 textPosition;//字體位置  
  27.  
  28.         public Game1()  
  29.         {  
  30.             graphics = new GraphicsDeviceManager(this);  
  31.             Content.RootDirectory = "Content";  
  32.  
  33.             // Frame rate is 30 fps by default for Windows Phone.  
  34.             TargetElapsedTime = TimeSpan.FromTicks(333333);  
  35.  
  36.             // Extend battery life under lock.  
  37.             InactiveSleepTime = TimeSpan.FromSeconds(1);  
  38.         }  
  39.  
  40.         /// <summary> 
  41.         /// 游戲運(yùn)行前的一些初始化  
  42.         /// </summary> 
  43.         protected override void Initialize()  
  44.         {  
  45.             //在這里添加游戲的一些初始化處理  
  46.             base.Initialize();  
  47.         }  
  48.  
  49.         /// <summary> 
  50.         /// 加載游戲資源,LoadContent只會(huì)執(zhí)行一次  
  51.         /// </summary> 
  52.         protected override void LoadContent()  
  53.         {  
  54.             // Create a new SpriteBatch, which can be used to draw textures.  
  55.             spriteBatch = new SpriteBatch(GraphicsDevice);  
  56.  
  57.             // TODO: use this.Content to load your game content here  
  58.             viewport = this.GraphicsDevice.Viewport;//獲取游戲的窗體  
  59.             spriteFont1 = this.Content.Load<SpriteFont>("SpriteFont1");//加載字體資源  
  60.             textSize = spriteFont1.MeasureString("Hello,XNA!");//返回字符創(chuàng)的高度和寬度  
  61.             textPosition = new Vector2(0, 0);  
  62.         }  
  63.  
  64.         /// <summary> 
  65.         /// 游戲退出,回收資源  
  66.         /// </summary> 
  67.         protected override void UnloadContent()  
  68.         {  
  69.             // TODO: Unload any non ContentManager content here  
  70.         }  
  71.  
  72.         /// <summary> 
  73.         /// 繪制游戲前的更新處理  
  74.         /// </summary> 
  75.         /// <param name="gameTime">游戲的當(dāng)前時(shí)間對(duì)象</param> 
  76.         protected override void Update(GameTime gameTime)  
  77.         {  
  78.             // Allows the game to exit  
  79.             if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)  
  80.                 this.Exit();  
  81.  
  82.             // TODO: Add your update logic here  
  83.             if (textPosition.X < viewport.Height)  
  84.             {  
  85.                 textPosition.Y += 10 * (float)gameTime.ElapsedGameTime.TotalSeconds;  
  86.                 textPosition.X += 20 * (float)gameTime.ElapsedGameTime.TotalSeconds;  
  87.             }  
  88.             else  
  89.             {  
  90.                 textPosition.Y -10000 * (float)gameTime.ElapsedGameTime.TotalSeconds;  
  91.                 textPosition.X -20000 * (float)gameTime.ElapsedGameTime.TotalSeconds;  
  92.             }  
  93.  
  94.             base.Update(gameTime);  
  95.         }  
  96.  
  97.         /// <summary> 
  98.         /// 繪制游戲  
  99.         /// </summary> 
  100.         /// <param name="gameTime">游戲的當(dāng)前時(shí)間對(duì)象</param> 
  101.         protected override void Draw(GameTime gameTime)  
  102.         {  
  103.             GraphicsDevice.Clear(Color.CornflowerBlue);  
  104.  
  105.             // TODO: Add your drawing code here  
  106.             spriteBatch.Begin();  
  107.             spriteBatch.DrawString(spriteFont1, "Hello,XNA!", textPosition, Color.Red);  
  108.             spriteBatch.End();  
  109.  
  110.             base.Draw(gameTime);  
  111.         }  
  112.     }  

 

運(yùn)行的效果如下:

運(yùn)行效果

對(duì)于新建一個(gè)XNA for WP7的工程,可以看到在它的工程文件中,有:Initialize(), LoadContent(), Update(),Draw()這幾個(gè)主要的函數(shù),那由些也就可以看得出XNA開(kāi)發(fā)游戲的一個(gè)基本架構(gòu)了:

Loading:用來(lái)加載保證游戲可以正常運(yùn)行的所有資源等,這個(gè)狀態(tài)在整個(gè)系統(tǒng)中只在游戲開(kāi)始前運(yùn)行,也就是說(shuō)整個(gè)游戲的生命周期中只運(yùn)行一次。

Update:這個(gè)狀態(tài)是由所設(shè)置的時(shí)間間隔來(lái)驅(qū)動(dòng)的,在每個(gè)時(shí)間間隔里重新計(jì)算游戲中各角色的狀態(tài),以及游戲分值和各種游戲邏輯。一般默認(rèn)為每秒30次(幀),如果設(shè)置間隔過(guò)大,游戲可能無(wú)法啟動(dòng)。

Draw:這個(gè)狀態(tài)也是由所設(shè)置的時(shí)間間隔來(lái)驅(qū)動(dòng)的,用來(lái)繪制各種變化到顯示設(shè)置上。

對(duì)于XNA資源,在創(chuàng)建新的工程時(shí),就一起創(chuàng)建了一個(gè)Content工程,所有的資源(圖片、聲音、視頻、字體、3D造形、紋理等)都要加載到這個(gè)工程中,并被這個(gè)工程編譯為.xnb格式的XNA二進(jìn)制文件,這樣才可以加載到游戲中,并被調(diào)用。

XNA游戲的生命周期如圖所示:

XNA游戲的生命周期

1.GraphicsDeviceManager:在XNA類庫(kù)介紹中提到的該類型是非常重要的。它為開(kāi)發(fā)者提供方法來(lái)管理目標(biāo)設(shè)備的顯卡資源。簡(jiǎn)單地說(shuō)就是調(diào)用顯卡的一個(gè)接口,該對(duì)象的GraphicsDevice屬性代表當(dāng)前目標(biāo)設(shè)備的顯卡。

2.SpriteBatch:該對(duì)象主要的作用是繪制文字和2D圖像。在游戲開(kāi)發(fā)過(guò)程中,它的作用是非常重要的,因?yàn)橛螒蛐枰蟛糠謭D片、文字和聲音等素材資源。所有游戲中需要顯示的畫(huà)面都必須經(jīng)過(guò)SpriteBatch對(duì)象中的Draw方法來(lái)繪制。

3.Initialize( ):該方法用來(lái)初始化游戲程序的變量和對(duì)象。它允許游戲在運(yùn)行之前做一些初始化的工作。可以在此查詢?nèi)魏涡枰姆?wù)和載入與圖形無(wú)關(guān)的內(nèi)容。例如,顯卡設(shè)備、游戲分?jǐn)?shù)設(shè)置等。

4.LoadContent( ):當(dāng)初始化完畢后,程序就進(jìn)入LoadContent,該方法用來(lái)加載游戲的素材,包括游戲的模式、聲音、圖像等。這個(gè)方法在一個(gè)游戲中只會(huì)被調(diào)用一次,并且是加載所有素材的地方。

5.Update( ):該方法相當(dāng)于Direct3D中的FrameMove,簡(jiǎn)單地說(shuō)就是在圖形上修改當(dāng)前畫(huà)面。它主要用于游戲執(zhí)行一些邏輯,如:刷新畫(huà)面、檢查碰撞、更新分?jǐn)?shù)、檢測(cè)游戲進(jìn)程、收集輸入數(shù)據(jù)以及播放音頻等。

6.Draw( ):該方法相當(dāng)于Windows編程的Paint或者OnPaint,是系統(tǒng)自動(dòng)繪圖的方法。

游戲程序執(zhí)行完LoadContent后,開(kāi)始進(jìn)入一個(gè)游戲循環(huán),無(wú)論用什么語(yǔ)言編寫(xiě)游戲程序,都需要一個(gè)游戲循環(huán),這也是游戲程序與應(yīng)用程序的***區(qū)別。在XNA游戲項(xiàng)目中,游戲循環(huán)主要由Update和Draw兩個(gè)方法組成。

原文鏈接:http://www.cnblogs.com/linzheng/archive/2011/09/20/2182964.html

【編輯推薦】

  1. XNA游戲開(kāi)發(fā)中橫豎屏的設(shè)置
  2. 詳解Windows Phone XNA 4.0 3D游戲開(kāi)發(fā)
  3. 爆料:C#和XNA可以在iOS和Android平臺(tái)使用
責(zé)任編輯:王曉東 來(lái)源: 博客
相關(guān)推薦

2013-10-30 22:10:28

Clouda程序

2024-03-13 13:53:10

C++程序開(kāi)發(fā)

2011-06-08 10:24:38

Windows Pho 應(yīng)用程序

2011-06-08 10:01:36

Windows Pho 應(yīng)用程序

2010-08-04 13:16:23

Flex項(xiàng)目

2023-06-01 08:24:08

OpenAIChatGPTPython

2023-05-19 08:49:58

SQLAlchemy數(shù)據(jù)庫(kù)

2009-06-26 16:07:43

MyEclipse開(kāi)發(fā)Hibernate程序

2010-07-30 14:50:38

Flex項(xiàng)目

2013-12-26 15:25:15

Android開(kāi)發(fā)安裝開(kāi)發(fā)環(huán)境Hello World

2024-06-07 08:59:35

2011-03-10 10:45:47

Azure“Hello Worl

2012-05-28 15:55:47

XNA 重力感應(yīng)

2012-05-22 14:26:15

XNA 橫豎屏設(shè)置

2011-06-24 13:38:32

QT 編譯 安裝

2022-11-01 07:23:55

Dockernetcore程序

2009-07-17 16:10:42

JRuby入門(mén)教程

2021-04-07 13:38:27

Django項(xiàng)目視圖

2023-09-21 22:43:17

Django框架

2009-03-13 15:23:01

女程序員編程張綺霞
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

狠狠色一日本高清视频| 高清欧美精品xxxxx| 性欧美高清come| 中文字幕精品三区| 亚洲一区二区三区在线视频 | 欧美亚洲图片小说| 国产黄视频在线| 石原莉奈在线亚洲二区| 久久久亚洲国产天美传媒修理工| 超碰caoporn久久| 午夜精品福利一区二区蜜股av| 日本a视频在线观看| 石原莉奈在线亚洲三区| 91久久在线视频| 日韩动漫一区| 中文字幕亚洲情99在线| 青青草原av在线| 日韩欧美在线视频免费观看| 91麻豆福利| 久久久99免费| 少妇人妻无码专区视频| 精品一区二区三区在线播放视频| 国内视频一区二区| 一区二区三区在线| 国产精品视频白浆免费视频| 欧美美女在线直播| 欧美交受高潮1| 成人短视频软件网站大全app| 亚洲精品小视频在线观看| 黄色成人影院| 欧美精品三级在线观看| 国产福利片在线| 在线欧美日韩国产| 国产精品一级伦理| 欧美影院一区二区| √新版天堂资源在线资源| 在线观看日韩电影| 网友自拍视频在线| 欧美日韩黄色一区二区| 色的视频在线免费看| 欧美日韩高清在线| 日本三级在线观看网站| 日韩欧美高清一区| 九色porny丨首页入口在线| 日韩av在线网址| 日韩不卡视频在线观看| 中文字幕视频在线免费欧美日韩综合在线看| 华人av在线| 国产丝袜精品视频| 深夜视频一区二区| 久久av在线看| 九九免费精品视频在线观看| 国产精品高清在线观看| 国产精品久久观看| 国产一区国产精品| 三级亚洲高清视频| 99视频精品全部免费看| 国产69精品久久99不卡| 内射国产内射夫妻免费频道| 国产午夜亚洲精品理论片色戒| 天天干天天爽天天射| 亚洲一区二区三区中文字幕 | 国内成人自拍视频| 2018日日夜夜| 国产精品第一页第二页第三页| 羞羞在线观看网站| 色综合久久久久久久| a视频在线播放| 国产一区二区三区在线观看网站| 国产精一区二区| 国产在线观看精品一区二区三区| 亚洲午夜一级| 亚洲色图都市激情| 国产精品国产三级国产aⅴ中文| 91麻豆精品一二三区在线| 国产成人精品三级麻豆| 国产亚洲黄色片| 国产亚洲综合在线| 老鸭窝av在线| 欧美体内she精视频| 在线电影福利片| 日日摸夜夜添一区| 狼人精品一区二区三区在线| 国产精品精品久久久久久| 最新国产精品| 日本一二三区视频在线| 国产精品水嫩水嫩| 黄上黄在线观看| 亚洲欧美日韩直播| 一区二区三区四区在线看| 国外成人在线视频网站| 成人自拍视频在线| 中文字幕伊人| 日韩丝袜美女视频| 亚洲精品一区二区三区中文字幕| 91精品久久久久久久久久久久久久| 男人的天堂亚洲在线| 久草资源站在线观看| 日本精品一级二级| 素人一区二区三区| 国产色视频一区| 国产成a人亚洲精| 在线免费观看你懂的| 亚洲欧美日韩中文在线| 欧美激情电影| 黄页网站在线观看视频| 欧美日韩一区二区在线播放| 忘忧草在线www成人影院| 国产精品久久久久91| 久久er99热精品一区二区| 欧美h版电影| 亚洲天堂色网站| 伊人久久大香线| 激情网站五月天| 欧美变态凌虐bdsm| 欧美一区二区三区激情视频| 一区二区不卡在线观看| 欧美丝袜一区二区| 日韩在线观看中文字幕| 无遮挡亚洲一区| 亚洲不卡在线观看| 天堂va欧美ⅴa亚洲va一国产| 日本一区二区三区视频在线观看| 亚洲欧洲99久久| 91亚洲视频| 久久伊人一区| 亚洲国产精品久久一线不卡| 精品欧美日韩精品| 免费一区二区三区| 黑人巨大精品欧美一区二区三区 | 欧美精品www在线观看| 日韩理论电影中文字幕| 亚洲自拍三区| 色婷婷一区二区| 国产乱人伦丫前精品视频| 亚洲视频导航| 91国产精品成人| 尤物tv在线精品| 99999精品视频| 亚洲国产日韩欧美在线99| 91精品福利| 成年人羞羞的网站| 久久不射电影网| caoporen国产精品视频| 人在线成免费视频| 日本10禁啪啪无遮挡免费一区二区| 天天射综合影视| 精品国产一区二区三区四区 | 日本成人三级电影| 欧美日韩在线精品| 一本久久精品一区二区| 日韩三区视频| 浓精h攵女乱爱av| 久久在线观看视频| a在线欧美一区| 色综合一本到久久亚洲91| 日本一区网站| 欧美丰满高潮xxxx喷水动漫| 午夜精彩国产免费不卡不顿大片| 日韩日韩日韩日韩| 国产91色在线| ●精品国产综合乱码久久久久| 亚洲91网站| 亚洲欧美在线精品| 久久免费少妇高潮久久精品99| 97se亚洲国产综合在线| 亚洲成人精品综合在线| 国产九色porny| www.亚洲一区| 久久精品亚洲精品国产欧美| 日韩一级特黄| 97公开免费视频| 欧美日韩国产二区| 1024成人网色www| 日本一二区不卡| 四虎精品成人影院观看地址| 91深夜福利视频| 制服丝袜一区二区三区| 日韩av在线免费观看不卡| 黄色软件视频在线观看| 国产精品国产对白熟妇| 欧美黑人xxxx| 有码一区二区三区| 欧美日韩一区二区国产| 人妖欧美1区| 大伊香蕉精品视频在线| 91av在线播放| 欧美综合一区二区| 日韩高清欧美激情| 777午夜精品电影免费看| 男人女人黄一级| 国产成人精品综合| 欧美日韩在线免费视频| 麻豆高清免费国产一区| 国产一区二区三区| 中文在线a在线| 亚洲伊人婷婷| 久久久午夜视频| 666欧美在线视频| 99久久综合色|