是否可以在VS代码中使用monogame?

时间:2016-12-17 11:58:21

标签: directx visual-studio-code monogame

我正在使用iball笔记本,但我没有足够的内存来安装Visual Studio。我使用VS代码没有问题,我能够创建和创建我的控制台应用程序的可执行文件。我需要学习游戏开发,但每个人都在说我需要为它安装visual studio

然而,我确实在该主题上找到了关于monogame的四分之一,并发现在VS代码中使用Monogame是可能的(至少在Linux上)。

http://community.monogame.net/t/visual-studio-code-and-monogame/2371

请帮帮我。我想知道是否真的可以在windows中编译和运行monogame应用程序。

4 个答案:

答案 0 :(得分:2)

编辑为Monogame的答案发布了正式的dotnet项目模板

我终于开始工作了。

我意识到我所需要的只是创建一个单游戏项目(* .csproj),并在不使用Visual Studio的情况下进行编译/构建。 VS Code只是一个功能丰富的文本编辑器,我需要其他工具集。

MSBuild工具用于编译/构建monogame项目,可作为CLI使用。无需安装Visual Studio就可以使用。 对于C#项目构建,需要dotnet core。执行脚本

dotnet new [Template]

创建一个新项目。我们需要在此处添加用于单人游戏的模板。

根据Monogame团队的最新更新,您可以通过执行安装模板

dotnet new --install "MonoGame.Templates.CSharp"

使用脚本

dotnet new -h

检出所有可用模板。

现在,要生成项目,请使用以下

dotnet new mgwindows

成功执行后,这将生成[FolderName] .csproj,Game1.cs,Program.cs以及monogame项目的其他文件/文件夹。请不要将此csproj安装在.NET Framework(如果我没记错的话,版本是4.5)...,因此它可能不适用于dotnet run命令。 (如果您有点固执,则可能需要将安装了Monogame的文件夹(除其他文件外,还包含Monogame.target文件)复制到dotnet安装的文件夹中。)

换句话说,使用msbuild来构建和运行项目

msbuild

如果程序不包含任何编译时错误,则将成功构建.exe文件,您将看到要执行的输出文件路径。

如果您在Linux上工作,或由于其他原因不使用MSBuild,则不应生成mgwindows项目。您宁可选择

dotnet new desktopgl

可在dotnet核心上运行(即,您可以使用dotnet run命令来执行它)。

答案 1 :(得分:2)

我写了 this(仅限 Windows)解决方案。一步一步教你如何在VSCode的终端安装和运行dotnet with MonoGame。

您需要安装:

  • .NET SDK 5.0
  • .NET Core SDK 3.1
  • .NET 运行时 5.0

您可以在终端中运行 dotnet 并查看它是否有效。

  1. 安装 MonoGame 编辑器:

    dotnet tool install --global dotnet-mgcb-editor
    

    mgcb-editor --register
    
  2. 安装 MonoGame 模板:

    dotnet new --install MonoGame.Templates.CSharp
    
  3. 在所选模板中创建一个新项目:

    dotnet new mgdesktopgl -o ProjectName
    
  4. 使用 cd ProjectName 进入您的项目并将 MonoGame 包添加到其中:

    dotnet add package MonoGame.Framework.DesktopGL --version 3.8.0.1641
    
  5. 最后:

    dotnet run Program.cs
    

答案 2 :(得分:0)

我在Visual Studio上尝试过Monogame并拥有一台Windows PC。所以我可以放心地确认Monogame可以在Windows上运行。回答你的问题。

但是,如果你想在没有Visual Studio的情况下尝试它,那么我认为你不能真正走得太远。因为有一些构建工具需要制作一个体面的工具。你也无法调试它。如果您不能使用Visual Studio,那么您的工作非常有限。

尝试清理您的电脑以腾出一些空间。 Visual Studio真的是一个更好的选择。

答案 3 :(得分:0)

绝对没有理由不能使用Visual Studio Code中的MonoGame。它不是一个最佳的设置,因为你将缺乏调试,并且设置将很困难,但如果你对它没有问题,那么继续。

您已经注意到创建可执行控制台应用程序没有问题。这就是你真正需要做的一切。这里的关键是你必须构建目标.NET4 +或Mono。如果您已经按照指导构建.NET Core应用程序的教程,那么它们将无法与MonoGame一起使用(此时)。如果您正在构建.NET Core,请花一些时间研究如何使用MSBuild或Mono构建Desktop CLR应用程序。如果您需要更多信息,我可以对此进行扩展。您还需要确保知道如何从控制台应用程序引用其他.NET程序集。在继续之前,请先研究一下如何做到这一点。

对于Windows,您可以选择定位MonoGame的DesktopGL(OpenGL)或WindowsDX(DirectX)版本。我自己偏爱DirectX版本。您需要启动和运行两件事:1。MonoGame程序集,以及2. MonoGame管道工具(用于将您的内容编译成.XNB文件,以便将它们导入游戏中)。 / p>

要了解MonoGame的程序集和工具,我能想到的最简单的方法是安装Visual Studio Community Edition,然后下载并安装MonoGame for Visual Studio。这将为您带来所有工具。然后,您需要查看" C:\ Program Files(x86)\ MonoGame \ v3.0 \ Assemblies"适用于相应的程序集和" C:\ Program Files(x86)\ MSBuild \ MonoGame \ v3.0 \ Tools"对于MonoGame管道工具。

如果Visual Studio不允许您安装,因为您的计算机不符合要求,那么您运气不好。组件可以通过nuget拉入。在此处下载最新的nuget.exe:https://dist.nuget.org/index.html,然后运行:nuget.exe install MonoGame.Framework.WindowsDXnuget.exe install MonoGame.Framework.DesktopGL。这将创建一个包含lib文件夹的目录,该文件夹包含一个net40文件夹,其中包含您需要的.DLL文件。对于WindowsDX,我认为您还需要DirectX运行时https://www.microsoft.com/en-us/download/details.aspx?id=34429。对于OpenGL,我认为您需要OpenAL(用于音频)https://www.openal.org/downloads/

获得程序集后,您需要在构建代码时引用它们。正如您所说,您已熟悉创建和运行控制台应用程序,我假设您知道如何执行此操作。只需引用您使用Nuget下载的每个托管.DLL,或从安装中从Assemblies文件夹中提取。

要进行测试,请将其放入.cs文件中,引用构建中的MonoGame程序集,像控制台应用程序一样构建它,然后执行:

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using System;

public class Game1 : Game
{
    GraphicsDeviceManager graphics;

    public Game1()
    {
        graphics = new GraphicsDeviceManager(this);
    }

    protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Color.CornflowerBlue);
    }

    [STAThread]
    static void Main()
    {
        using (var game = new Game1())
        game.Run();
    }
}

你应该得到一个带有矢车菊蓝色背景的窗户。如果您不这样做,那么您就没有正确构建或引用内容,或者您​​错过了依赖项。

现在的诀窍是掌握管道工具和MGCB.exe。如果您能够为Visual Studio安装MonoGame,那么!这些文件位于我上面引用的文件夹中。如果没有,无论出于何种原因,MonoGame项目都不会仅使用安装程序分发这些版本的独立版本。我已经把你需要的内容拿到了GitHub上的虚拟版本中:https://github.com/srakowski/derp/releases/tag/MG。下载Pipeline.zip文件,解压缩,你应该得到你需要的东西。

创建一个空的Content.mgcb文件并使用Pipeline.exe打开它。您应该能够添加和构建内容文件。您需要将这些文件复制到.exe所在的同一目录中。通常,这些文件放在Content文件夹中,Content.RootDirectory = "Content";被添加到Game的构造函数中。

一旦你完成所有这些工作,你就应该自由而清晰地按照自己的心愿创造游戏。如果您遇到麻烦,请告诉我们,我们会解决问题。