2013-02-07 38 views
0

我使用庫Gosu在Ruby中製作遊戲Pong。現在,我正在努力讓球與董事會互動。我想讓對象互相交互。 (紅寶石)

class Window < Gosu::Window 
    # board size 30 X 298 
    def initialize 
     super 1440,720,false 
     self.caption = "Pong" 
     @Ball = Ball.new(self) 
     @Ball.warp(720,360) 
     @Board1 = Board.new(self,15,360) 
     @Board2 = Board.new(self,1425,360) 
    end 

    def update 
     @Ball.draw 
     @Ball.move 
     @Ball.bounceOffBoard(@Board1,@Board2) 
     ........ 

在最後一行,我試圖通過現場@委員會1到另一個類,以便@Ball知道董事會的cordinate,看它是否應該跳下去。但它不斷拋出我的錯誤,如

Pong.rb:105: formal argument cannot be a constant 
    def bounceOffBoard(Board1,Board2) 

我該怎麼辦?

+0

使用獲得者。這就是他們的目的。 – 2013-02-07 20:41:20

+0

啊我明白了。非常感謝你。 –

回答

2

一開始,不以大寫字母命名實例變量:

@Ball = Ball.new(self) 
@Board1 = Board.new(self,15,360) 
@Board2 = Board.new(self,1425,360) 

應該是:

@ball = Ball.new(self) 
@board1 = Board.new(self,15,360) 
@board2 = Board.new(self,1425,360) 

和:

def bounceOffBoard(Board1,Board2) 

應該是:

def bounceOffBoard(board1, board2)