我正在用JRuby寫一個遊戲引擎,並且當我使用全局變量時出現問題。我只有這些腳本:爲什麼我的全局變量變爲零?
main.rb的:
$CLASSPATH << "src.rb"
require 'modules'
require 'SceneMenu'
require 'SceneMap'
$game.setScene(SceneMenu.new)
modules.rb:
$game = Java::MyNamespace::Game::getInstance
module MyGame
def self.cache
return $game.cache # << ERROR OCCURS HERE
end
end
SceneMenu.rb:
class SceneMenu
def initialize
@count = 0
end
def update
if @count == 100
$game.setScene(SceneMap.new)
end
@count += 1
end
end
SceneMap.rb:
class SceneMap
def initialize
@logoTexture = MyGame::cache.load("mylogo.png")
end
end
我的問題是,當我啓動遊戲,它始終是好的,但是當我@count
達到100,並創建SceneMap
,時出現錯誤,他說:
undefined method 'cache' for nil:NilClass
雖然我之前叫$game.setScene(...)
。
我根本不修改我的$game
變量,所以我不知道會發生什麼。
有人知道發生了什麼嗎?
你有哪些類型的錯誤? –
如果你的意思是這個消息,它是:'nil:NilClass'的未定義方法'緩存'。否則,你的錯誤是什麼意思? – dooxe
這會因爲你執行兩次getInstance而上升。你也可以使用'$ game.class'來驗證'$ game'的類。 –