2011-08-08 31 views
1

簡單的問題 - 爲什麼如果它是.move()onMouseMoved()內的對象不會移動?我正在嘗試將Breakout作爲iTunes U的Stanford 106A練習的一部分,並且出於某種原因,我無法使用槳來跟蹤鼠標。我是一個Java noob,所以我確定它非常簡單。有人可以看看這段代碼嗎?爲什麼我的對象不能在MouseMoved上移動?

/** Runs the Breakout program. */ 
    public void run() { 
     setupBoard(); 
     addMouseListeners(); 
    } 

    /** Provides the initial GCanvas and blocks for the game */ 
    private void setupBoard(){ 
     this.setSize(APPLICATION_WIDTH,APPLICATION_HEIGHT); 
     addBricks(); 
     paddle = new GRect(PADDLE_WIDTH, PADDLE_HEIGHT); 
     add(paddle, WIDTH/2-PADDLE_WIDTH/2,HEIGHT-PADDLE_Y_OFFSET); 

    } 

    public void MouseMoved(MouseEvent e){ 
     paddle.move(e.getX()-paddle.getX(), 0); 
     } 

    private GRect paddle; 
} 

我不知道是否有paddle是一個實例變量,在這種情況下適當的,因爲它的「價值」不改變(槳總是槳),但如果我只是把它定義爲一個新GRectsetupBoard我在MouseMoved()方法中出錯。

回答

4

你的類有mouseMoved()方法需要實現接口MouseMotionListener,並添加運動偵聽器。此外,事件處理程序是mouseMoved()而不是MouseMoved()。所以,例如:

+0

你說得對大寫,但AFAIK addMouseListeners()同時添加MouseListener和MouseMotionListener。如果您想編輯,我會將您的答案標記爲正確。不敢相信我犯了這樣一個愚蠢的錯誤。 – jefflovejapan

+1

@jefflovejapan - 無需編輯,addMouseListeners是您自定義(框架?)代碼中的一種方法,只有您知道:-)答案在所有部分都是正確的。 – kleopatra

+0

@kleopatra - 夠公平! – jefflovejapan

相關問題