它继续说语法错误意外'n'期待:: ['或'。'和语法错误意外的keyword_ensure期望输入结束。我的代码有什么问题?
require 'rubygems'
require 'rubygame'
class
def initialize
@screen = Rubygame::Screen.new [640, 480], 0, [Rubygame::HWSURFACE, Rubygame::DOUBLEBUF]
@screen.title = "Pong"
@queue = Rubygame::EventQueue.new
@clock = Rubygame::Clock.new
@clock.target_framerate = 60
end
def run!
loop do
update
draw
@clock.tick
end
end
def update
end
def draw
end
end
g = Game.new
g.run!
答案 0 :(得分:2)
您没有类名,只有关键字“class”。
答案 1 :(得分:2)
class
应该是:
class Game
那会让你开始。
从风格上讲,Ruby的代码格式错误:
()
是明智的:当你阅读它时它会在视觉上将它区分开来,并且有时候Ruby会误解并认为方法是一个变量,直到它看到一个确定的方法与该名称的变量使用。使用括号括起以下方法的参数:
@screen = Rubygame::Screen.new [640, 480], 0, [Rubygame::HWSURFACE, Rubygame::DOUBLEBUF]
如果尝试将块传递给没有周围参数的方法调用,则可能会遇到调试受伤的世界。 Ruby会被混淆并会抛出错误;只要养成围绕它们的习惯,就可以干净利落地避免这个问题。
答案 2 :(得分:0)
因此,这是一个非常神秘的错误消息,因为您的代码中存在基本的语法错误!
正如其他人所说,问题是缺少类名。也就是第4行,而不是:
class
应该是这样的:
class Game
但为什么呢?我们怎么知道它应该是“游戏”?
在Ruby中,通常在“class”关键字后面加上一个名称。它使用此名称,您可以根据此类定义创建对象。这就是你的程序倒数第二行发生的事情:
g = Game.new
这一行说,“创建一个'Game'类的新实例并将其分配给变量'g'。”为了使这一行真正起作用,需要一个名为的“游戏”类。这是我们对这个类的名称应该是什么的线索。
你在学习Ruby方面显然已经超越了最初的困境。坚持下去!它开始变得更容易,因为你可以获得更多的语法。
祝你好运!