Gosu 2D游戏开发编程示例错误

Gosu 2D Game Development Programming Example Error

我目前正在学习 Ruby 所以绝对是一个初学者并且一直在玩 Gosu 2D 游戏开发并且遇到以下代码的问题并且不确定我有什么 missed/done 不正确。

代码是:

require 'rubygems'
require 'gosu'

class MyGame < Gosu::Window
  def initialise
    super 300, 400, false
    self.caption = "Gosu Tutorial Game"
  end

  def update
  end

  def draw
  end
end

window = MyGame.new
window.show

以上代码存储在文件中my_game.rb

当我尝试在命令行键入代码时:

> ruby my_game.rb

我收到以下错误:

my_game.rb:17:in `initialize': wrong # of arguments(0 for 3) (ArgumentError)
    from my_game.rb:17:in `new'
    from my_game.rb:17:in `<main>'

你在初始化时有错别字。

您打算编写 initialize 来为您的游戏提供构造函数并使用 3 个参数调用 Gosu::Window 构造函数(超级)。 但是因为你还没有真正定义 initialize (相反你已经定义了一个不同的 initialise 方法) - MyGame.new 试图调用 Gosu::Window#initialize 接受 3 个参数,但您向 MyGame.new 提供 0 - 这就是错误消息试图传达的内容。

如果您修复拼写错误 initialise -> initialize,MyGame.new 将在不带参数的情况下调用您的构造函数,然后它将通过超级调用提供所需的 3 个参数。