ruby - 创建基于控制台的文本游戏并且无法让光标将一行弹出到正确的位置(Ruby)
问题描述
编辑:使用 Paint gem。
所以我在我用 ruby 制作的基于文本的游戏中重写了商店系统。我正在尝试在单行文本上添加多种颜色。我找到了一种可行的方法,但由于某种原因,第一个字符串(包括项目 ID 和项目名称)一直以 11 个字符连接。
每个项目值都是一个数组。value[0] 包含名称,依此类推。
这是为商店菜单绘制每个项目的代码:
shopbag.each { |id, value|
if id != 0
string1 = "(" + id.to_s + ")" + " " + value[0]; str1 = string1.size
string2 = "ATTACK: #{value[1]}"; str2 = string2.size
string3 = "SPEED: #{value[2]}"; str3 = string3.size
pa string1; pa "\033[1A \033[#{str1}C #{string2}", :red, :bright; pa "\033[1A \033[#{str2}C #{string3}", :green, :bright
end
}
这是它的截图: shop bug(点击查看图片)
请注意,您可以在每个项目之前看到一个字符串大小,因为我在那里有一个打印行来验证大小是否正确。它不在我的代码片段中。如果它工作正常,它会在攻击和速度值之前显示全名。
解决方案
推荐阅读
- java - java - 如何使用mapstruct java将字符串字段转换为hashmap值?
- javascript - 将 javascript fetch POST 请求中的标头和文件传递给烧瓶服务器
- fizzbuzz - What is going on in this solution to the Fizzbuzz question?
- c# - 如何确定 HTTP 响应是否包含没有已知文件结尾(.zip ...)的压缩文件(zip、rar 等)
- azure-iot-hub - 我可以在iothub中按分区查看设备列表吗?
- python - Gstreamer 和 multifilesrc - 获取名称无序的文件
- c# - 将自定义类型序列化为 JSON
- c# - 是否有默认设置使 LINQ 不区分大小写?
- go - 在 GOFIBER 中将 csrf 令牌设置为浏览器后出现 403 CSRF 令牌错误
- python - 向量中缺少几个元素