我现在正在学习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>'
答案 0 :(得分:1)
您在初始化时输入错字。
您打算编写 initialize 来为您的游戏提供构造函数,并使用3个参数调用Gosu :: Window构造函数(super)。 但是,由于您还没有真正定义初始化(相反,您已经定义了一个独特的初始化方法) - MyGame.new尝试调用Gosu :: Window# initialize接受3个参数,但是你向MyGame.new提供0 - 这是错误消息试图传达的内容。
如果您要修复拼写错误初始化 - &gt;初始化时,MyGame.new将调用没有参数的构造函数,然后通过超级调用提供所需的3个参数。