代码之家  ›  专栏  ›  技术社区  ›  nathanchere Jitendra Vyas

有没有.NET的控制台“图形”库?[关闭]

  •  23
  • nathanchere Jitendra Vyas  · 技术社区  · 16 年前

    我的基本目标是写一个克罗兹王国的.NET翻版。对于不熟悉游戏的人:

    http://www.indiefaqs.com/index.php/Kingdom_of_Kroz

    http://www.youtube.com/watch?v=cHwlNAFXpIw

    最初,它被认为是一个快速分散注意力的项目,让我摆脱了最近占用我大部分时间的所有通用企业wcf/wf/linq2sql/etc工作项目。虽然我的努力的结果是可玩的,它看起来像绝对屁股(即使是基于控制台的游戏),因为我重新绘制每帧的所有内容。

    我知道一些替代方法,但在我做的简短测试中,它们仍然没有提供显著的性能或美学效益。如果我能帮助的话,我不想求助于一个“模拟”控制台的库。我宁愿在引擎盖下使用适当的win32控制台API,但如果我能帮助的话,就不要直接使用它。记住这是一个明显的利基用例,什么是“普遍”接受的最佳方法?有没有什么特别优化的控制台“绘图”技术值得注意?我不介意在Pinvoke和编组的海洋中游泳,只要它最终仍然拥有一个快速、响应迅速和高效的控制台用户界面。

    3 回复  |  直到 7 年前
        1
  •  6
  •   siride    15 年前

    http://msdn.microsoft.com/en-us/library/ms682073(v=VS.85).aspx

    您可能需要为其中的一些/许多函数使用p/invoke,但它们应该满足您的需要。您可以在缓冲区中的任意位置写入,并获得基于键的非缓冲输入。通常,您从getStdHandle()开始获取控制台输入和输出“streams”的句柄,然后从上面的列表中调用一个适当的函数来执行一些操作,如writeConsoleOutputCharacter()或peek控制台输入()。

    我曾经写过一个库,用windows控制台和c.fun项目上的普通win32创建一个进程中的窗口系统,但我不知道它现在在哪里。

        2
  •  12
  •   Blue    9 年前

    你可以试试尖刻的诅咒 http://sourceforge.net/projects/curses-sharp/ 或LiPTCOD https://bitbucket.org/libtcod/libtcod

    Curses Sharp是一款“Curses终端控制库的全功能、面向对象、多平台C包装器”。

    libtcod是“…一个免费的、快速的、可移植的、简单的用于roguelike开发人员的API,它提供了高级的真彩色控制台、输入和roguelikes中经常使用的许多其他实用程序。”

        3
  •  -6
  •   Dale K    7 年前

    考虑查看 pdcurses 或 ncurses 图书馆。我在Visual C++中使用它,而当你在指定C语言时,它可能对你有用。它是为游戏机制作的,我在几个项目中使用它。它将消除使用回调刷新屏幕的需要,因为您可以在不刷新屏幕的情况下移动字符(表示为ASCII字符)。