2014-05-25 53 views
1

你如何正確地設置VS 2013的SFML?雖然有幾個地方給了我一些關於如何去做的信息,但除了一件事之外似乎沒有什麼工作:SFML MS2012 Extension。不過,我想知道如何在不需要擴展的情況下從頭開始編寫VS 2013。設置SFML.net 2.1?

這裏是我使用不帶擴展名的當前進程:

1)打開新項目在2013年VS

2)添加引用到SFML庫(DLL)中:SFML-AUDIO-2, afml-graphics-2和sfml-windows-2。

3)通過添加文件添加擴展庫:csfml-audio-2,csfml-graphics-2,csfml-windows-2,libsndfile-1和openal32。

4)創建應用程序。

在擴展和自己做所有事情之間,明顯的區別是程序集信息中的GUID,但是如果我嘗試前面的步驟並將擴展項目中的GUID插入到新項目中,我的嘗試仍然無法工作儘管項目看起來完全一樣。最重要的是,GUID從哪裏來,我怎麼去得到它?

二級問題:XNA是否具有與SFML一樣的所有音頻/圖形/窗口處理功能?如果是的話,最好是切換到XNA比使用SFML.Net更好?

+0

你還有這個問題嗎? –

+0

是的,我是。不知道如何得到這個工作。 – user3519915

回答

3
  1. 在Visual Studio 2012/2013/2015中創建一個新的C#項目。它可以是控制檯應用程序或Windows窗體應用程序。唯一的區別是,Windwos Forms應用程序會生成一個表單,您可以安全地刪除該表單,並且控制檯應用程序會在後臺顯示一個控制檯。
  2. 右鍵單擊在Solution Explorer中的項目,然後點擊添加引用...
  3. 當出現引用管理器窗口,瀏覽到您提取SFML.net存檔的文件夾,然後轉到的lib文件夾 。選擇lib文件夾中的所有.dll文件,然後單擊參考管理器中的'確定'將其添加到您的項目中。
  4. 一旦.dll文件出現在你的項目的參考部分,再次右鍵單擊您的項目,然後單擊添加>現有項目...導航到extlibs文件夾,並添加所有的.dll文件有(您可能必須選擇.dll文件作爲打開對話框中的文件過濾器)
  5. 一旦這些.dll文件出現在解決方案資源管理器上,右鍵單擊它們並選擇屬性(或按Alt-Enter)。在複製到輸出目錄屬性,將其設置爲複製如果更新
  6. SFML.net現在爲您的項目設置。爲了測試它,你可以運行此示例代碼:

    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Threading.Tasks; 
    using System.Windows.Forms; 
    using SFML; 
    using SFML.Graphics; 
    using SFML.Window; 
    
    namespace SFML_Test { 
         static class Program { 
          static void OnClose(object sender, EventArgs e) { 
           // Close the window when OnClose event is received 
           RenderWindow window = (RenderWindow)sender; 
           window.Close(); 
          } 
    
          static void Main() { 
           // Create the main window 
           RenderWindow app = new RenderWindow(new VideoMode(800, 600), "SFML Works!"); 
           app.Closed += new EventHandler(OnClose); 
    
           Color windowColor = new Color(0, 192, 255); 
    
           // Start the game loop 
           while (app.IsOpen()) { 
            // Process events 
            app.DispatchEvents(); 
    
            // Clear screen 
            app.Clear(windowColor); 
    
            // Update the window 
            app.Display(); 
           } //End game loop 
          } //End Main() 
         } //End Program 
        } 
    

它應該輸出這樣的: enter image description here

我已經通過this tutorial建立了我的SFML.Net項目在Visual Studio 2013年和2015年。我用它的一些文本來解答這個問題。

+1

我試過你的方法(從github編譯的最新Sfml.Net)沒有任何編譯器錯誤,但在運行時,我得到System.BadImageException'附加信息:無法加載文件或程序集sfmlnet-graphics-2,Version = 2.4.0.0,Culture = neutral,PublicKeyToken = null'或其依賴項之一。試圖加載格式不正確的程序 –

相關問題