代码之家  ›  专栏  ›  技术社区  ›  Ólafur Waage

有没有比使用console.clear()更好的方法制作控制台游戏?

  •  4
  • Ólafur Waage  · 技术社区  · 15 年前

    我在玩弄游戏循环,并打算做一些游戏作为练习。

    目前我有一个稳定的游戏循环,游戏更新速度尽可能快,渲染每秒更新x次(目前为25次)

    呈现方法基本上是一个draw+console.clear(),在非常高的更新率下,显示变得非常不稳定,因为当console.clear()点击时,它还没有完成绘制。

    有没有更好的方法来做这样的事情?

    我可以将任何数据写入控制台,然后用其他数据替换它吗?

    3 回复  |  直到 15 年前
        1
  •  4
  •   Henk Holterman    15 年前

    假设在每个循环中都再次从左上角编写一个全屏,那么只需将clear()替换为:

     Console.SetCursorPosition(0, 0);
    

    并覆盖上一个屏幕。

        2
  •  3
  •   Zwergner    15 年前

    既然你在C不管怎样,你可能想调查一下 XNA Framework .

    我猜你的问题是由 Console.Clear() 由于XNA使用了类似的方法,因此没有针对这种用途进行优化( Clear() 在A上调用 GraphicsDevice )

    如果您不想尝试使用XNA,那么绘制矩形(纯黑色或灰色或其他)可能会更快,而不是调用 清除() 把屏幕“空白”出来然后画出来。

        3
  •  1
  •   Michał Piaskowski    15 年前

    你可能想看看 ConsoleLibrary

    我没有使用它,但是从文章/演示来看,它似乎可以让你在控制台上做一些整洁的事情。