2014-10-19 37 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)