CodehighlightingproducedbyActiproCo" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

XNA基礎(chǔ)(01) —— 游戲循環(huán)

系統(tǒng) 1933 0

當安裝好了VS 2008和XNA GameStudio 3.0后,我們就可以開始學(xué)習(xí)XNA了。

首先,在VS 2008中新建一個XNA GameStudio 3.0項目(選擇Windows Game類型),會生成一個最簡單的、可運行的游戲模板。

接下來我們將注意力轉(zhuǎn)移到我們要剖析的重點—— 從Microsoft.Xna.Framework.Game繼承的Game1類,其代碼如下:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> public class Game1 :Microsoft.Xna.Framework. Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;

public Game1()
{
graphics
= new GraphicsDeviceManager ( this );
Content .RootDirectory
= " Content " ;
}

protected override void Initialize()
{
base .Initialize();
}

protected override void LoadContent()
{
spriteBatch
= new SpriteBatch (GraphicsDevice);
}

protected override void UnloadContent()
{
}

protected override void Update( GameTime gameTime)
{
if ( GamePad .GetState(PlayerIndex.One).Buttons.Back == ButtonState .Pressed)
this .Exit();

base .Update(gameTime);
}

protected override void Draw( GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);

base .Draw(gameTime);
}
}

我們簡單解釋一下該類中所用到的重要類型。

GraphicsDeviceManager 圖形設(shè)備管理器,用于訪問圖形設(shè)備的通道。

GraphicsDevice 圖形設(shè)備。

Sprite 精靈,繪制在屏幕上的的 2D 3D 圖像,比如游戲場景中的一個怪獸就是一個 Sprite

SpriteBatch 它使用同樣的方法來渲染 一組 Sprite 對象。

而Microsoft.Xna.Framework. Game 這個基類就像是一個基礎(chǔ)框架,它把整個游戲流程串聯(lián)了起來,即,整個游戲會按如下流程運轉(zhuǎn)。

XNA基礎(chǔ)(01) —— 游戲循環(huán)

該圖中的五個方法正好對應(yīng)著Game1類中的五個方法,它們的作用解釋如下。

Initialize 方法用于初始化與游戲相關(guān)的對象,比如初始化圖形設(shè)備、游戲環(huán)境設(shè)置等。

LoadContent 方法在 Initialize 方法之后調(diào)用,它用于加載游戲所需要的圖形或其它素材,比如模型、圖片、聲音等。

Update Draw 方法構(gòu)成了 游戲循環(huán)

Update 方法用于改變和控制游戲的狀態(tài),主導(dǎo)著游戲邏輯的進行。

Draw 方法用于在屏幕上繪制我們的場景、 Sprite 。要注意的是,我們應(yīng)該盡可能少的在 Draw 方法中處理游戲邏輯——它們應(yīng)該在 Update 方法中被處理。 Draw 方法僅僅負責(zé)繪制。

Update Draw 方法都接受一個 GameTime 類型的參數(shù), GameTime 有什么作用了?這個參數(shù)可以幫助我們依據(jù)實際的游戲時間而不是處理器的速度來決定動畫或其它事件的發(fā)生時刻。

在這個最簡單的例子中,游戲?qū)⒁阅J的 60fps Frame/Second )運行。

UnloadContent 方法在游戲結(jié)束時被調(diào)用,該方法用于卸載在 LoadContent 方法中所加載的素材和那些需你要進行特別處理的善后事宜。

狀態(tài)輪詢與事件監(jiān)聽

寫過 Windows 應(yīng)用程序的朋友都知道,當用鼠標點擊 Form 上的一個 Button 時,會觸發(fā)一個 Click 事件,而我們的應(yīng)用程序通過監(jiān)聽到事件的發(fā)生進而來處理事件。

而在游戲開發(fā)中,我們需要將我們的這種“事件”思維切換到“輪詢”思維。也就是說,游戲中,用戶的鼠標、鍵盤操作并不會觸發(fā)相關(guān)的事件。如果是這樣的話,那我們該如何知道用戶是否按下了鼠標了?答案是我們需要在游戲循環(huán)中(確切的說是在 Update 方法中)不斷地檢測輸入設(shè)備(比如鼠標)的狀態(tài)來進行判斷。

這就是輪詢機制與事件機制的區(qū)別,也是游戲開發(fā)和普通 windows 應(yīng)用開發(fā)需要轉(zhuǎn)換思路的地方。

歸根到底, windows 事件機制也是對輪詢機制(即Windows消息循環(huán))的一個封裝

今天的介紹就到這里,下一節(jié)我們將介紹與渲染相關(guān)的基礎(chǔ)知識。

最后,附上XNA GameStudio 3.0的下載地址: http://creators.xna.com/en-us/xnags_islive

XNA基礎(chǔ)(01) —— 游戲循環(huán)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品美乳一区二区免费 | 国产精品婷婷午夜在线观看 | 欧洲成人全免费视频网站 | 日本成日本片人免费 | 91亚洲精品一区二区福利 | 在线观看视频一区二区 | 毛片毛片毛片毛片毛片 | 美女一区 | 亚洲精品中文字幕在线观看 | 国产精品成人在线观看 | 91精品久久久久久久久久 | √天堂在线 | 天天操天天插 | 免费看黄的视频网站 | 全免费午夜一级毛片一级毛 | 黑人精品欧美一区二区蜜桃 | 毛片大全免费 | 日韩一区二区免费视频 | 国产精品久久久久久吹潮 | 中文字幕日韩理论在线 | 日日干天天摸 | 国产精品久久婷婷六月丁香 | 一区二区三区四区免费看 | 国产九九精品 | 亚洲资源在线播放 | 国产精品一区二区免费 | 久久99精品视香蕉蕉 | 国产97色在线 | 日韩 | 桃色网站入口 | 影音av| 欧美在线观看一区 | 国产一区精品视频 | 性欧美一级毛片在线播放 | 精品一区二区三区在线观看视频 | 亚洲性色成人 | 亚洲国产精品99久久久久久久久 | 成人av免费 | 亚洲国产精品一区二区第一页 | 国内自拍第五一页 | 99久久亚洲精品日本无码 | 欧美成人精品激情在线观看 |