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

问题描述 投票:1回答:3

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

但是我确实找到了关于该主题的monogame论坛,并发现在VS代码中使用Monogame是可能的(至少在Linux上)。

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

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

directx visual-studio-code monogame
3个回答
2
投票

答案编辑为Monogame发布的官方dotnet项目模板

我终于搞定了。

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

MSBuild工具用于编译/构建monogame项目,可作为CLI使用。它可以在不安装Visual Studio的情况下使用。对于C#项目构建,需要dotnet核心。执行脚本

dotnet new [Template]

创建一个新项目。我们需要在这里添加monogame模板。

根据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命令。 (如果你有点顽固,你可能需要在你的dotnet安装文件夹中复制Monogame安装的文件夹(其中包含许多其他文件中的Monogame.target文件)。)

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

msbuild

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

如果您正在使用Linux或有其他原因不使用MSBuild,则不应生成mgwindows项目。你可以选择

dotnet new desktopgl

它适用于dotnet核心(即你可以使用dotnet run命令来执行它)。


0
投票

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

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

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


0
投票

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

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

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

要了解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的构造函数中。

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

© www.soinside.com 2019 - 2024. All rights reserved.