c++在控制台中打印形状(cmd)

  • 本文关键字:cmd 打印 控制台 c++ c++
  • 更新时间 :
  • 英文 :


我正在用C++构建一个迷宫游戏,我试图使用形状来识别游戏中的角色,即墙是正方形,三角形是敌人,星形是玩家。如何在控制台cmd中打印这些元素?我一直在研究http://msdn.microsoft.com/en-us/library/windows/desktop/ms682073%28v=vs.85%29.aspx但我想不通。

如果没有办法,那么可以打印svg吗?

这个问题有几种解决方案,每个方案都有自己的缺点和优点。

表情符号(或者更准确地说是Unicode)

这是我对简单游戏和形状的建议,因为它是最容易实现的,并且依赖于底层控制台来完成繁重的任务。还有其他程序最有可能是如何编写的(尽管使用了此处列出的其他字符)

由于windows终端(和linux/macOS)支持Unicode,因此可以使用Unicode字符,例如,⭐,并表示字符。

注意:您可能需要在cpp-中使用setlocale(LC_ALL, "en_US.utf8");启用utf8支持

优点

  1. 易于实现
  2. 不依赖外部库

缺点

  1. 受限于标准文本对齐
  2. 难以调整大小
  3. 需要手动清除字符
  4. 如果控制台大小调整或太小会发生什么

ConPTY

与控制台方法类似,尽管这提供了更多颜色的优势,并能够通过程序设置控制台大小等。

优点

  1. 颜色支持
  2. 能够更简单地控制终端

缺点

  1. 仍然需要选择其他方法才能实际打印
  2. 需要Windows 10

控制台

这是对控制台窗口的控制。你应该使用这样的库https://github.com/Bill-Gray/PDCursesMod以抽象这种方法。

优点

  1. 能够在不离开终端的情况下进行完全控制
  2. 比一个完整的窗口占用更少的资源

缺点

  1. 复杂

Windows

您可以使用Qt和co等框架来实现窗口环境。这种方法提供了最大的灵活性,尽管以复杂性为代价,至少需要几个月的开发时间(从头开始),尽管使用适当的框架/库可以忽略这个问题。

优点

  1. 现在更常见
  2. 大多数控制
  3. 许多库已经可用于游戏

缺点

  1. 资源最密集
  2. 最难从头开始实施
  3. 不是基于终端的(尽管你可以让它看起来像是)

最新更新