0

rubygame 教程有一个基本的屏幕创建部分,后面跟着一个 excersize 来修改代码以允许传递定义屏幕大小的命令行参数。我能够使用谷歌拼凑一些我认为可行的东西:

#! /usr/bin/ruby -w

# require 'rubygame'

screenx = ""
screeny = ""

# Rubygame.init

ARGV.each do |a|
    if a.scan("x=")
            screenx = a["x="] = ""
    end
    if a.scan("y=")
            screeny = a["y="] = ""
    end
end

puts screenx
puts screeny

# screen = Rubygame::Screen.new [screenx, screeny]
# loop {}

如果没有评论,我会收到一大堆我不理解的错误,并且在 Google 上发现的任何结果都很少。

随着评论我得到不同的错误:如果我给它一个无意义的参数,它会输出“字符串不匹配”如果我给它一个格式正确的请求,我会得到“无法修改冻结的字符串”

我不确定这是否是从参数中提取 x 和 y 值的最佳方法。

4

1 回答 1

1

看看OptionParser

options = {}

OptionParser.new do |opts|
  opts.on '-w', '--width WIDTH', 'Screen width' do |width|
    options[:width] = width
  end

  opts.on '-h', '--height HEIGHT', 'Screen height' do |height|
    options[:height] = height
  end
end.parse!

# options is now filled with values

为此有不同的宝石——我是其中一个的作者。然而,由于你的游戏不是一个成熟的命令行应用程序,我认为你真的不需要额外的依赖。

于 2012-06-01T01:18:54.183 回答