日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

      首頁編程開發(fā)其它知識 → 在Windows 7系統(tǒng)中安裝和配置MonoGame

      在Windows 7系統(tǒng)中安裝和配置MonoGame

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2013/2/26 23:25:19字體大小:A-A+

      作者:西西點擊:0次評論:0次標簽: MonoGame

      • 類型:遠程監(jiān)控大。4.6M語言:中文 評分:5.6
      • 標簽:
      立即下載

      MonoGame是一個 Microsoft XNA 4 Framework 的開源跨平臺實現(xiàn)。 目標是讓為 Xbox 360, Windows & Windows Phone上開發(fā)的XNA游戲移植到 iOS, Android, Mac OS X, Linux 以及 Windows 8 Metro上。OUYA以及PlayStation Mobile 的支持也在計劃中。

      MonoGame是XNA的一個開源實現(xiàn),目前最新的安裝版本是3.0,只需要到http://monogame.codeplex.com/releases/view/100041下載安裝就行了,它支持Visual Studio 2010/2012的開發(fā)模板。事實上使用MonoGame的話是無需安裝XNA的,但現(xiàn)在的問題是目前MonoGame還不支持Content的編譯,比如無法將那些Sprite Font、Texture2D以及Audio編譯成xnb的文件以供MonoGame使用。我的測試平臺是Windows 7的,至于其它平臺下是什么情況我也沒去深究了。本文大致介紹一下在Windows 7下安裝和配置MonoGame遇到的問題以及解決辦法。

      無法加載openal32.dll的問題

      安裝完MonoGame 3.0以后,打開Visual Studio 2012,創(chuàng)建一個MonoGame Windows OpenGL Project:

      創(chuàng)建成功后,直接F5運行,然后就直接報錯:

      明顯是缺少動態(tài)鏈接庫。要解決這個方法其實很簡單,直接到http://connect.creativelabs.com/openal/Downloads/oalinst.zip把OpenAL的安裝包下載下來安裝就行了。

      在MonoGame中使用xnb文件

      上面說過,目前MonoGame還不支持Content Pipeline的編譯功能,但它能夠讀取并使用由XNA所產(chǎn)生的xnb文件。因此只能通過其它方式將資源編譯成xnb文件然后再在MonoGame中引用。一般有兩種方法將Content編譯成xnb文件,但這兩種方法都需要安裝XNA。

      方法一:在安裝了XNA之后,直接使用Visual Studio 2010(XNA默認只支持2010)創(chuàng)建一個Windows Game項目,然后將你需要編譯成xnb的文件加入Content項目后編譯,再將編譯后的xnb文件復制到你的MonoGame項目的Content目錄中

      方法二:到http://xnacontentcompiler.codeplex.com/下載這個工具,這個工具也需要XNA的支持,只不過你可以直接使用這個工具對指定的資源進行編譯,而無需再打開一個Visual Studio 2010。我比較喜歡這種方式

      在將編譯好的xnb文件復制到MonoGame項目的Content目錄中后,記得將Copy to Output Directory設(shè)置為Copy if newer:

      現(xiàn)在,讓我們來寫一段使用Sprite Font的代碼。

      首先定義一個私有字段:

      1SpriteFont font;

      然后,在LoadContent方法中初始化這個font字段:

      /// <summary>
      /// LoadContent will be called once per game and is the place to load
      /// all of your content.
      /// </summary>
      protected override void LoadContent()
      {
      // Create a new SpriteBatch, which can be used to draw textures.
      spriteBatch = new SpriteBatch(GraphicsDevice);

      // TODO: use this.Content to load your game content here
      font = Content.Load<SpriteFont>("font");
      }

      接著修改Draw方法,添加字符串輸出代碼如下:

      /// <summary>
      /// This is called when the game should draw itself.
      /// </summary>
      /// <param name="gameTime">Provides a snaPShot of timing values.</param>
      protected override void Draw(GameTime gameTime)
      {
      GraphicsDevice.Clear(Color.CornflowerBlue);

      // TODO: Add your drawing code here
      spriteBatch.Begin();
      spriteBatch.DrawString(font, "Hello World", Vector2.Zero, Color.Yellow);
      spriteBatch.End();
      base.Draw(gameTime);
      }

      好了,按F5,編譯運行,一切正常!不過在退出游戲的時候,報錯了:

      這是個非常嚴重的問題,從錯誤信息上看,貌似MonoGame 3.0有個很大的缺陷:很有可能是在撤銷已加載的資源時,試圖去刪除一個已經(jīng)被GC回收了的對象所致。

      修復Attempted to read or write protected memory的問題

      一番Google之后,得知最新版本的源代碼中已經(jīng)修復了這個問題,但是還沒有發(fā)布安裝版本。沒轍,直接下載源代碼編譯算球。

      首先下載源代碼,可以使用git,也可以直接到https://github.com/mono/MonoGame下載zip包。我是直接用git clone的最新代碼,然后找到代碼目錄中的MonoGame.Framework.WindowsGL.sln解決方案文件,并用Visual Studio 2012打開以后編譯一下(記得編譯成Release的版本)。最后,將獲得的MonoGame.Framework.dll文件覆蓋到C:\Program Files (x86)\MonoGame\v3.0\Assemblies\WindowsGL目錄下即可。

      現(xiàn)在,我們的“游戲”就可以在Windows 7下完美運行了:

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)
        推薦文章

        沒有數(shù)據(jù)