2014-10-19 14 views
-1

的错误是:红宝石古薮,我的脚本获取并使用关键字结束错误

C:/Users/Admin/Desktop/MyFirstSelfMadeGame.rb:18:语法错误,意想不到的keyword_end,期待$结束


代码:

#!/usr/bin/env ruby 

require "gosu" 

class GameWindow < Gosu::Window 

    def initialize(800, 600, false) #Window declaration 
    super 
    self.caption("Pokemon") 
    end 
    def update 

    end 
    def draw 

    end 
    def button_down(id) 
    close if id == Gosu::KbSpace 
    end 


end 

GameWindow.new.show 

感谢答案,我得到这个问题很多。

+0

请张贴完整的错误消息,我不认为它与'rb'开始。你的代码看起来很好。也许错误来自另一个文件。 – pts 2014-10-19 08:32:03

+0

@pts它是目前唯一的文件,但是整个错误是:C:/Users/Admin/Desktop/MyFirstSelfMadeGame.rb:18:语法错误,意外的关键字结束,期待$结束 – 2014-10-19 08:33:41

+0

这仍然不是整个错误,请看我的答案。 – pts 2014-10-19 09:01:41

回答

0

由于PTS说,你不能引用方法定义参数对象

的方法定义的参数应该只包含您在方法中的变量。

如果您想使用默认设置,但有叫“新”的方法,你可以做的时候覆盖的参数选项...

def initialize(width=800, height=600, full_screen=false) 
    super(width, height, full_screen) 

此外,你应该注意的是self.caption是一个getter方法和不带参数

这是错误的

self.caption("Pokemon") # < wrong 

这是正确的

self.caption = "Pokemon" # < right 

看看教程游戏...

https://github.com/jlnr/gosu/wiki/Ruby-Tutorial

+0

标题是问题所在。谢谢! – 2014-10-19 09:20:52

2

不,这不是整个错误,整个错误看起来像:

t.rb:6: syntax error, unexpected tINTEGER, expecting ')' 
    def initialize(800, 600, false) #Window declaration 
        ^
t.rb:21: syntax error, unexpected kEND, expecting $end 

请注意,存在由Ruby解释器报告2个的错误消息。你已经注意到并只发布了第二个,但第一个实际上是相关的。一般来说,如果您收到错误消息,首先找到并修复第一个错误信息是一个很好的经验法则,因为后面的错误信息可能是由第一个错误造成的。

您需要指定函数参数。不正确:

def initialize(800, 600, false) #Window declaration 

正确:

def initialize() 
    super(800, 600, false)