Hej, mam taki oto kod w Rubym:
module Actions
attr_accessor :gameField, :blockPositions
@gameField = [[0,1,0,0],
[0,0,0,0],
[1,0,0,0],
[0,0,1,0]]
@blockPositions = [ [15, 15], [115, 15], [215, 15], [315, 15],
[15, 115], [115, 115], [215, 115], [315, 115],
[15, 215], [115, 215], [215, 215], [315, 215],
[15, 315], [115, 315], [215, 315], [315, 315]]
#Tutaj są funkcje...
end
I teraz gdy dodam ten moduł tak jak poniżej
class GameBlock < GameObject
include Actions
#Reszta kodu...
def drawBlocks(surface)
for i in 0..3
for j in 0..3
if gameField[i][j] != 0
drawOnXY(surface, *blockPositions[i][j])
end
end
end
end
end
To zostaję obarczony błędami że w linijce:
if gameField[i][j] != 0
jest taki błąd:
game_block.rb:31:in
block (2 levels) in drawBlocks': undefined method []' for nil:NilClass (NoMethodError)
Dopiero zaczynam swoją przygodę z Rubym i muszę w nim zrobić projekt na zaliczenie, więc nie znam zbytnio smaczków tego języka, jeśli ktoś byłby tak miły i mi to wyjaśnił to będę wielce zobowiązany. Dodam, że próbowałem już zmieniać z gameField na @gameField ale to nic nie pomogło.