Java 7 for Absolute Beginners

(nextflipdebug5) #1
CHAPTER 12 ■ VIDEO GAMES

// We need to know whether the player can shoot
private boolean readyToShoot;


// We need to know the current step
// when drawing the cursor after a shot
private int currentStep;


// We need to know the maximum steps
// (Changing this value would change
// the timeout between shots, by the way.)
private int maxSteps = 50;


// The constructor
public ShootingGalleryShooter(int width) {


// Add the listeners for mouse clicks and motion
addMouseListener(this);
addMouseMotionListener(this);


// Let the player shoot right away
readyToShoot = true;
currentStep = maxSteps;


// Draw the cursor 20 pixels from the right edge
xPosition = width - 20;
}


public void paintComponent(Graphics g) {
// Let the parent draw itself
// (sets the panel's background color)
super.paintComponent(g);


// Set the cursor's background color
this.setBackground(Color.WHITE);


// Figure out whether the player can shoot
if (currentStep < maxSteps) {
// If not, increment the current step
currentStep++;
readyToShoot = false;
} else {
readyToShoot = true;
}


// Fill two rectangles to show how long
// the player has to wait to shoot again
g.setColor(Color.RED);
g.fillRect(xPosition, yPosition - (maxSteps / 2), 3, currentStep);
g.setColor(Color.YELLOW);
g.fillRect(xPosition, yPosition - (maxSteps / 2) + currentStep, 3, maxSteps -
currentStep);

Free download pdf