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

时间:2015-04-02 06:27:23

标签: ruby libgosu

我现在正在学习Ruby,所以绝对是初学者,并且一直在玩Gosu 2D游戏开发,并且遇到以下代码的问题,并且不确定我错过了什么/做错了什么。

代码是:

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>'

1 个答案:

答案 0 :(得分:1)

您在初始化时输入错字。

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

如果您要修复拼写错误初始化 - &gt;初始化时,MyGame.new将调用没有参数的构造函数,然后通过超级调用提供所需的3个参数。