开源的.net控制台应用及游戏开发库

SadConsole 是一个专为 .NET 平台设计的控制台应用和游戏开发库,它提供了一个引擎来模拟控制台和命令提示符样式的图形,简化了基于文本的游戏和应用程序的创建。这个库特别适合用来制作 roguelike 游戏、终端风格的应用程序以及其他需要处理字符网格和ASCII图形的项目,它以通用方式构建,本身不进行任何渲染,需要游戏引擎或其他渲染库才能绘制 SadConsole 游戏。

主要特性

  • 跨平台支持:SadConsole 支持 Windows, Linux 和 macOS,这使得开发者可以轻松地在不同操作系统上运行他们的游戏或应用。
  • 基于 MonoGame:SadConsole 构建在 MonoGame 之上,后者是一个开源的游戏框架,这意味着它可以利用 MonoGame 提供的强大图形能力和工具集。
  • 简单的 API:提供了易于使用的 API 来管理控制台窗口、绘制文本和符号、处理用户输入等。对于想要快速开始而不必深入了解底层细节的新手来说非常友好。
  • 丰富的控件集合:包括按钮、标签、文本框、列表框等各种 UI 控件,可以帮助构建复杂的用户界面。
  • 自定义绘制:允许开发者通过继承 Console 类来自定义绘制逻辑,从而实现更复杂的效果如动画、特殊效果等。
  • 输入处理:提供了一套全面的键盘和鼠标事件处理机制,让开发者能够捕捉用户的交互并做出响应。
  • 集成编辑器:内置了一个简单的文本编辑器控件,可用于创建可编辑的文本区域。
  • 字体和颜色配置:支持多种字体样式,并且可以通过简单的调用来改变文本的颜色和背景色。
  • 扩展性强:由于其模块化设计,SadConsole 可以很容易地被扩展以添加新的功能或修改现有行为。

安装使用

有两种使用SadConsole的方法:

1、使用项目模板来创建SadConsole类型的项目,运行以下命令来安装SadConsole的项目模板

dotnet new --install SadConsole.Templates

模板安装完成后,就可以在新建项目时选择SadConsole类型的项目。

2、直接添加引用:创建一个.net 6以上的控制台项目,之后使用Nuget包管理器添加 SadConsole.Host.MonoGame 和 MonoGame.Framework.DesktopGL 的引用,然后修改项目文件,结构如下:


<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <RootNamespace>SadConsoleGame</RootNamespace>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="MonoGame.Framework.DesktopGL" Version="3.8.1.303" />
    <PackageReference Include="SadConsole.Host.MonoGame" Version="10.0.3" />
  </ItemGroup>
  <ItemGroup>
    <Using Include="SadConsole" />
    <Using Include="SadRogue.Primitives" />
    <Using Include="SadConsole.Console" Alias="Console" />
  </ItemGroup>
</Project>

然后添加一个类,名称随意,此处举例为RootScreen,其中可以加入自定义的界面代码:


class RootScreen : ScreenObject
{
    private ScreenSurface _mainSurface;
    public RootScreen()
    {
        _mainSurface = new ScreenSurface(Game.Instance.ScreenCellsX, Game.Instance.ScreenCellsY);
       
        _mainSurface.FillWithRandomGarbage(_mainSurface.Font);
        
        _mainSurface.Fill(new Rectangle(3, 3, 23, 3), Color.Violet, Color.Black, 0, Mirror.None);
        
        _mainSurface.Print(4, 4, "Hello from SadConsole");
        
        Children.Add(_mainSurface);
    }
}

之后修改Program.cs,在启动时运行RootScreen。


using SadConsole.Configuration;
Settings.WindowTitle = "My SadConsole Game";
Builder gameStartup = new Builder()
    .SetScreenSize(90, 30)
    .SetStartingScreen<RootScreen>();
Game.Create(gameStartup);
Game.Instance.Run();
Game.Instance.Dispose();

之后就可以根据需要编写自己的程序或游戏逻辑进行开发了。

官方源代码的Sample文件夹包含各种示例程序可以参考学习。
官网地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值