本篇文章給大家分享的是有關(guān)如何基于MonoGame開發(fā)太空大戰(zhàn)小游戲,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
成都創(chuàng)新互聯(lián)是專業(yè)的謝家集網(wǎng)站建設(shè)公司,謝家集接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行謝家集網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
最近突發(fā)奇想,下載了Microsoft Small Basic并編寫了兩個圖形變換的小程序,希望能夠讓兒子對科技產(chǎn)生興趣(當(dāng)然,成為像我一樣的碼農(nóng)可不是我的初衷)。 撿起自己入門電腦編程時學(xué)會的第一門語言 GW Basic,下載完Small Basic后寫的第一個圖形程序就是一個五彩繽紛的小球在屏幕上亂跳的程序,看上去有點(diǎn)像DOS下小球病毒爆發(fā)時的現(xiàn)象(不好意思暴露自己年齡了),而第二個程序則在窗口中顯示了一個可以用鼠標(biāo)控制的飛機(jī)圖案,兒子當(dāng)時看得很認(rèn)真。心想,干脆自己做一款打飛機(jī)的游戲給兒子玩玩吧,考慮到Small Basic在圖形處理方面畢竟還是相對薄弱,所以我就憑著以前對Microsoft XNA的研究經(jīng)驗(yàn),在Visual Studio 2013中借助MonoGame實(shí)現(xiàn)了一款簡單的太空大戰(zhàn)小游戲。
先簡單介紹一下MonoGame吧。它是針對Microsoft XNA 4的開源實(shí)現(xiàn),它能夠支持諸如Xbox360、Windows、Windows Phone、iOS、Android、Mac OS X、Linux、Windows 8 Metro、Windows 10等多種平臺。目前正在完善針對PlayStation Mobile、樹莓派以及PlayStation 4的支持。在圖形系統(tǒng)方面,MonoGame允許開發(fā)者選擇基于OpenGL或者DirectX。您可以到MonoGame的官網(wǎng)介紹網(wǎng)頁上了解更多有關(guān)MonoGame的歷史信息。
在兩年前我曾打算模擬一個類似魂斗羅的游戲,當(dāng)時使用的是Microsoft XNA Game Studio 4,后來由于魂斗羅游戲地圖處理有問題,我也沒有繼續(xù)深究這個游戲了。于是,在之后的一段時間中,我曾經(jīng)也想過業(yè)余時間做個別力所能及的小游戲自娛自樂一下,可惜被告知Microsoft XNA Game Studio已經(jīng)被微軟拋棄了,最后一個支持它的VS版本是Visual Studio 2010,于是經(jīng)過一番搜索,我開始了自己的MonoGame之旅。
剛開始的時候,MonoGame讓我抓狂,因?yàn)樗笔б豁?xiàng)最重要的功能:Content Pipeline。如果你要使用MonoGame,你必須繼續(xù)使用Microsoft XNA Game Studio,并使用XNA的Content Pipeline將所需的材質(zhì)、聲音、動畫、字體等素材編譯成xnb文件,然后再到MonoGame中調(diào)用。這是非常讓人難以接受的,所以,當(dāng)時我也基本打消了繼續(xù)使用MonoGame的念頭。
然而,經(jīng)過開源社區(qū)的努力,新版本的MonoGame已經(jīng)全面支持Content Pipeline了,您可以從MonoGame所創(chuàng)建的解決方案管理器中找到游戲的Content文件,并雙擊它來打開Content編輯器:
應(yīng)該說,使用最新版的MonoGame,已經(jīng)可以滿足開發(fā)中等規(guī)模的游戲需要了,盡管它仍然存在一些程序缺陷(Bugs)。
MonoGame的介紹到此為止,限于篇幅我也就不深入講解了。請您先移步到下面這段視頻,看看我做的Starwar太空大戰(zhàn)游戲是不是像模像樣:
【點(diǎn)擊此處觀看視頻】
怎么樣?還可以吧?不管怎么樣,能夠吸引到小朋友就行。^_^
請【點(diǎn)擊此處】下載游戲的安裝包。注意,在安裝的過程中會提示安裝OpenAL(一套開放的音頻庫),單擊確認(rèn)安裝即可。在安裝完成后,你可以通過開始菜單啟動游戲配置程序以及Starwar太空大戰(zhàn)游戲。
在啟動游戲配置系統(tǒng)時,會出現(xiàn)一個用戶賬戶控制(User Access Control)的對話框,單擊“是(Yes)”即可,然后會打開配置界面:
配置完成單擊確定按鈕后,再進(jìn)入開始菜單選擇Starwar打開游戲即可:
用鼠標(biāo)移動飛機(jī),單擊左鍵發(fā)射激光攻打敵機(jī),游戲任意時刻按ESC鍵退出。
本游戲的源代碼是公開的,地址是:https://github.com/daxnet/Starwar。您可以使用Git客戶端將源代碼克隆到本地,注意,要正確編譯源代碼,您的計算機(jī)需要滿足以下條件:
安裝Visual Studio 2013
安裝MonoGame 3.4
.NET Framework:版本4.0
說明:游戲資源均來自于網(wǎng)絡(luò)。
背景音樂:《沙羅曼蛇》游戲第二關(guān)Remix BGM(來自http://v.youku.com/v_show/id_XNTcyNDUxODAw.html?from=s1.8-1-1.2)
星空背景:來自XNA資源網(wǎng)(http://xnaresources.com/)
子彈發(fā)射、爆破聲效:來自XNA資源網(wǎng)(http://xnaresources.com/)
其它圖片(主機(jī)、敵機(jī)、子彈):來自Bing搜索結(jié)果
游戲基于Visual C#采用面向?qū)ο笤O(shè)計,在游戲業(yè)務(wù)中,參與游戲的對象統(tǒng)稱為精靈(Sprite),以下是本游戲各種不同類型的精靈類依賴圖:
Sprite:所有精靈類型的基類
LaserSprite:表示激光子彈的精靈
ParallaxStarSprite:表示移動的星星的精靈,在整個游戲過程中,星星精靈會不斷下落,以呈現(xiàn)一種我機(jī)正在向前飛行的效果
BackgroundSprite:星空背景精靈,整個游戲過程中一動不動
EnemySprite:敵機(jī)精靈
SpaceshipSprite:我機(jī)精靈
AnimatedSprite:動畫精靈,會通過給定的一張包含每幀圖片的精靈表(Sprite Sheet)產(chǎn)生動畫效果
SpritePool:精靈庫,用于管理顯示在屏幕上的指定類型的精靈。當(dāng)精靈出現(xiàn)在屏幕上時,精靈的IsActive屬性為true,此時該精靈可以被加到精靈庫中,以便統(tǒng)籌管理;當(dāng)被管理的精靈從屏幕上消失(坐標(biāo)超出屏幕邊界),精靈庫將會釋放該精靈的資源,并將其從庫中移除。精靈庫保證了整個游戲過程中所產(chǎn)生的對象在一定范圍內(nèi)
SpriteGenerator:精靈動態(tài)生成器,用于每隔一定的時間,在屏幕的任意地方產(chǎn)生一個精靈,并讓其以任意速度朝著一定的方向前進(jìn)。比如敵機(jī)和星星,都是由精靈動態(tài)生成器隨機(jī)產(chǎn)生的,產(chǎn)生的精靈會被添加到SpritePool中,由SpritePool托管其生命周期
實(shí)現(xiàn)代碼在此就不貼了。
以上就是如何基于MonoGame開發(fā)太空大戰(zhàn)小游戲,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。