CodehighlightingproducedbyActiproCo" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

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

系統(tǒng) 2052 0

當安裝好了VS 2008和XNA GameStudio 3.0后,我們就可以開始學習XNA了。

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

接下來我們將注意力轉移到我們要剖析的重點—— 從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 圖形設備管理器,用于訪問圖形設備的通道。

GraphicsDevice 圖形設備。

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

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

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

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

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

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

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

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

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

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

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

在這個最簡單的例子中,游戲將以默認的 60fps Frame/Second )運行。

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

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

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

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

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

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

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

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

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


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久99中文字幕久久 | 久久精品国产国产 | 一级在线 | 欧洲 | 一级成人a免费视频 | 久久香蕉国产线看精品 | 国产伦精品一区三区视频 | 亚色在线播放 | 日日干夜夜草 | 国产成人精品日本亚洲网站 | 中文字幕亚洲欧美 | 国产手机在线精品 | 欧美最猛性xxxx69交 | 五月桃花网婷婷亚洲综合 | 亚洲天天做日日做天天看2018 | 天天舔天天射天天操 | 日日网站 | 久久在线播放 | 亚洲精品一二三四 | 国产区综合另类亚洲欧美 | 99热免费精品 | 老子影院午夜伦不卡手机 | 欧美同房免姿势108费视频 | 久久a热6 | 99久久精品免费观看国产 | 中文字幕在线观看2023 | baoyu777永久免费视频 | 久久国产乱子伦精品在 | se在线播放| 久久免费看 | 黄色男人的天堂 | 免费夜色污私人影院网站 | 青青久草| 一级毛片高清免费播放 | 久久精品亚洲欧美va | 国产性色视频在线高清 | 亚洲精品一区二区深夜福利 | 天天色天天| www免费视频com| 久久精品亚洲乱码伦伦中文 | 免费看aa | 凹凸精品视频分类国产品免费 |