0

我正在尝试使用 Ruby 制作一个在终端内运行的 roguelike 游戏,但我不确定如何去做。我希望能够单独处理和更新标准 80*24 终端窗口中的每个单元格。我可以使用标准库来做到这一点,还是有什么好的宝石可以做到这一点?

4

2 回答 2

1

您可以使用Gosu

您可以在ruby​​ 工具箱 - 游戏库中找到更多替代方案。

我假设您使用的是linux。要操作终端,您将需要 Ruby 的 ncurses 库绑定。请参阅 ncurses-ruby

文档很少,但这个 github 存储库中有很多示例。

于 2011-08-12T05:18:22.717 回答
1

Curses 可能是最容易实现的,并且可以跨平台广泛使用。Ruby 绑定曾经是标准库的一部分,但现在它是一个 gem gem install curses:. 这是文档中的一个示例:

require "curses"

def show_message(message)
  height = 5
  width  = message.length + 6
  top    = (Curses.lines - height) / 2
  left   = (Curses.cols - width) / 2
  win = Curses::Window.new(height, width, top, left)
  win.box("|", "-")
  win.setpos(2, 3)
  win.addstr(message)
  win.refresh
  win.getch
  win.close
end

Curses.init_screen
begin
  Curses.crmode
  Curses.setpos((Curses.lines - 1) / 2, (Curses.cols - 11) / 2)
  Curses.addstr("Hit any key")
  Curses.refresh
  Curses.getch
  show_message("Hello, World!")
ensure
  Curses.close_screen
end
于 2017-03-22T13:01:57.140 回答