设置SFML.net 2.1?

时间:2014-05-25 12:46:15

标签: c# .net sfml

你怎么去"正确"为VS 2013设置SFML?虽然有几个地方给了我一些如何做的信息,但除了一件事之外,似乎没什么用处:SFML MS2012 Extension。但是,我想知道如何在不需要扩展的情况下从头开始为VS 2013做这件事。

以下是我在没有扩展名时使用的当前流程:

1)在VS 2013中打开新项目。

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更好吗?

1 个答案:

答案 0 :(得分:4)

  1. 在Visual Studio 2012/2013/2015中创建一个新的C#项目。它可以是控制台应用程序或Windows窗体应用程序。唯一的区别是,Windwos Forms应用程序生成一个可以安全删除的表单,控制台应用程序在后台显示一个控制台。
  2. 在解决方案资源管理器中右键单击您的项目,然后单击添加引用...
  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
        }
    
  7. 它应输出: enter image description here

    我已经通过this tutorial在Visual Studio 2013和2015中设置了我的SFML.Net项目。我用了一些文字来回答这个问题。