I have encountered a problem, for which no matter how long I study the API's of the class and superclasses, I can not figure out.
Suppose I wish to design a sort of a game where the mouse motion controls the motion of a block that is used to bounce a ball, which then destroys multi colored bricks.
How do you specifically make the block "listen" to the mouse? The below code is what I have attempted to achieve the desired results.
/** Breakout Program*/
public class Breakout extends GraphicsProgram implements MouseMotionListener {
...
/** The Paddle Itself */
private GRect paddle = new GRect(0, HEIGHT-PADDLEBOTTOM_OFFSET, PADDLEWIDTH, PADDLEHEIGHT);
...
/** Run the Breakout program. */
public void run() {
paddle.setFillColor(Color.BLACK);
paddle.setFilled(true);
add(paddle);
paddle.addMouseListener(this);
...
}
/** Move the horizontal middle of the paddle to the x-coordinate of the mouse position -
* -but keep the paddle completely on the board. */
public void mouseMoved(MouseEvent e) {
GPoint p= new GPoint(e.getPoint());
double x = p.getX();
paddle.setLocation(x, HEIGHT-PADDLEBOTTOM_OFFSET);
}
}
Any clarification on why/what I am doing incorrectly would be helpful, thanks.