Ошибка в Gosu 2D Programming Development Programming
В данный момент я изучаю Ruby, поэтому определенно начинающий и играю в разработку 2D-игр Gosu, и у меня возникают проблемы со следующим кодом, и я не уверен, что я пропустил / сделал неправильно.
Код является:
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 ответ
У вас есть опечатка в инициализации.
Вы намеревались написать инициализацию, чтобы предоставить конструктор для вашей игры и вызвать конструктор Gosu::Window (super) с 3 параметрами. Но так как вы на самом деле не определили инициализацию (вместо этого вы определили отдельный метод инициализации) - MyGame.new пытается вызвать Gosu::Window#initialize, который принимает 3 аргумента, но вы предоставляете 0 для MyGame.new - это то, что сообщение об ошибке пытается передать.
Если вы исправите опечатку initialize -> initialize, MyGame.new вызовет ваш конструктор без аргументов, а затем предоставит необходимые 3 аргумента с помощью супер-вызова.