2011-08-08 3 views
1

Question simple - pourquoi un objet ne bougerait-il pas s'il faisait l'objet de .move() à l'intérieur onMouseMoved()? J'essaie d'écrire Breakout dans le cadre des exercices Stanford 106A sur iTunes U et pour une raison que je ne peux pas obtenir la pagaie pour suivre la souris. Je suis un java noob, donc je suis sûr que c'est quelque chose de très simple. Quelqu'un pourrait-il jeter un oeil à ce code?Pourquoi mon objet ne bouge-t-il pas sur 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; 
} 

Je ne suis pas sûr d'avoir paddle être une variable d'instance est appropriée dans ce cas, étant donné que sa « valeur » ne change pas (la palette est toujours la palette), mais si je définir simplement comme new GRect within setupBoard Je reçois une erreur dans la méthode MouseMoved().

Répondre

4

Votre classe qui a la méthode mouseMoved() doit implémenter l'interface MouseMotionListener et ajouter l'écouteur de mouvement. De plus, le gestionnaire d'événement est mouseMoved() et non MouseMoved(). Ainsi, par exemple:

+0

Vous avez raison à propos de la casse, mais AFAIK addMouseListeners() ajoute à la fois MouseListener et MouseMotionListener. Je vais marquer votre réponse correctement si vous souhaitez modifier. Je ne peux pas croire que j'ai fait une erreur aussi stupide. – jefflovejapan

+1

@jefflovejapan - rien à éditer, addMouseListeners est une méthode dans votre code personnalisé (framework?) Que vous seul connaissez :-) La réponse est correcte dans toutes les parties. – kleopatra

+0

@kleopatra - assez bien! – jefflovejapan

Questions connexes