rendered paste bodyimport java.applet.*;
import java.awt.*;
public class Pong extends Applet implements Runnable {
private Image dbImage;
private Graphics dbGraphics;
private Thread t;
private int ballX = 250;
private int ballY = 150;
private int xModifier = 1;
private int yModifier = 1;
private PongPaddle[] paddles = new PongPaddle[2];
private int[] scores = {0,0};
private final int radius = 15;
public void init() {
setBackground(Color.BLACK);
setSize(500, 300);
t = new Thread(this);
t.start();
// Initialize the two paddles
paddles[0] = new PongPaddle(20, 100, 1, createImage(10, 50));
paddles[1] = new PongPaddle(getSize().width - 40, 100, 2, createImage(10, 50));
resetBall();
}
public void update(Graphics g) {
if (dbImage == null) {
dbImage = createImage(getSize().width, getSize().height);
dbGraphics = dbImage.getGraphics();
}
paint(dbGraphics);
g.drawImage(dbImage, 0, 0, this);
}
public void run() {
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
while(true) {
// Move the ball
ballX += xModifier;
ballY += yModifier;
// Check for a collision with the wall
if ((ballY > getSize().height - radius) || ballY < radius)
yModifier *= -1;
if (ballX > getSize().width - radius) {
// player 1 (right) scored
resetBall();
} else if (ballX < 0) {
// player 2 (left) scored
//System.out.println(ballX);
resetBall();
}
delay(10);
repaint();
}
}
public void resetBall() {
ballX = (int) getSize().width / 2;
ballY = (int) getSize().height / 2;
randomizeDirection();
}
public void randomizeDirection() {
int randNum = (int) (Math.random() * 3) - 1;
//System.out.println(randNum);
if (randNum > 0) {
xModifier = -1;
} else {
xModifier = 1;
}
randNum = (int) (Math.random() * 3) - 1;
if (randNum > 0) {
yModifier = -1;
} else {
yModifier = 1;
}
}
public void paint(Graphics g) {
g.setColor(Color.BLACK);
g.fillRect(0, 0, getSize().width, getSize().height);
g.setColor(Color.WHITE);
g.fillOval(ballX, ballY, radius, radius);
g.drawImage(paddles[0].drawPaddle(), paddles[0].getX(), paddles[0].getY(), this);
g.drawImage(paddles[1].drawPaddle(), paddles[1].getX(), paddles[1].getY(), this);
}
public void delay(int time) {
try {
t.sleep(time);
} catch (InterruptedException ex) {}
}
}
// -----------------------------------------------------------
import java.awt.*;
class PongPaddle {
private int x = 0;
private int y = 0;
private int player;
private Image paddleImg;
private Graphics g;
public PongPaddle(int _x, int _y, int _player, Image img) {
x = _x;
y = _y;
player = _player; // What player number does this represent?
paddleImg = img;
}
public int getX() {return x;}
public int getY() {return y;}
public Image drawPaddle() {
// Return an image with the paddle and the player label
if (g == null) {
g = paddleImg.getGraphics();
}
g.setColor(Color.WHITE);
g.fillRect(0, 0, 15, 50);
g.setColor(Color.BLACK);
g.drawString(Integer.toString(player), 2, 22);
return paddleImg;
}
}