Josephs Final Project
<< Ian's Final Project | OldProjectsTrailIndex | Matthew's Final Project >>
public class Ball{ private int xPos,yPos; public int dx = 5, dy = -5; public Ball(){ setPos(250, 140); } public void setPos(int x, int y){ this.xPos = x; this.yPos = y; } public int getX(){ return xPos; } public int getY(){ return yPos; } public void move(){ setPos(this.getX() + dx, this.getY() + dy); } public void reset(){ setPos(250,140); dx = 5; dy = -5; } }
public class PaddleLeft{ private int yPos = 0; final int XPOS = 30; public PaddleLeft(){ setPos(120); } public void setPos(int pos){ this.yPos = pos; if(yPos > 230){ setPos(230); } else if(yPos < 0){ setPos(0); } } public int getPos(){ return yPos; } }
public class PaddleRight{ private int yPos = 0, score; final int XPOS = 460; public PaddleRight(int ballPos){ setPos(ballPos); setScore(0); } public void setPos(int pos){ this.yPos = pos; if(yPos > 230){ setPos(230); } else if(yPos < 0){ setPos(0); } } public int getPos(){ return yPos; } public void setScore(int score){ this.score = score; } public int getScore(){ return this.score; } }
import java.applet.*; import java.awt.event.*; import java.awt.*; import javax.swing.Timer; public class pongMain extends Applet implements MouseMotionListener, ActionListener { Ball ball; PaddleLeft pLeft; PaddleRight pRight; Font newFont = new Font("sansserif", Font.BOLD, 20); Graphics bufferGraphics; Image offscreen; final int WIDTH = 500, HEIGHT = 300; long currentTime; public void init() { setSize(500, 300); ball = new Ball(); pLeft = new PaddleLeft(); pRight = new PaddleRight(ball.getY() - 35); addMouseMotionListener(this); setBackground(Color.green); offscreen = createImage(WIDTH,HEIGHT); bufferGraphics = offscreen.getGraphics(); } public void start(){ currentTime = System.currentTimeMillis(); Timer time = new Timer(15, this); time.start(); while(pRight.getScore() < 10){ } time.stop(); currentTime = System.currentTimeMillis() - currentTime; repaint(); } public void stop(){ } public void paint(Graphics g) { bufferGraphics.clearRect(0,0,WIDTH,HEIGHT); bufferGraphics.setColor(Color.blue); bufferGraphics.fillRect(pLeft.XPOS,pLeft.getPos(),10,70); bufferGraphics.fillRect(pRight.XPOS, pRight.getPos(), 10, 70); bufferGraphics.setColor(Color.white); bufferGraphics.setFont(newFont); bufferGraphics.drawString("Futile", 150, 15); bufferGraphics.drawString(""+ pRight.getScore(),300,15); bufferGraphics.fillRect(240,0,20,300); if(pRight.getScore() == 10){ bufferGraphics.drawString("You Lasted: " + (currentTime/ 1000) + "sec.", 40, 150); } bufferGraphics.setColor(Color.red); bufferGraphics.fillRect(ball.getX(),ball.getY(),10,10); g.drawImage(offscreen,0,0,this); Toolkit.getDefaultToolkit().sync(); } public void update(Graphics g) { paint(g); } public void mouseMoved(MouseEvent evt) { pLeft.setPos(evt.getY()- 35); } public void mouseDragged(MouseEvent evt) { } public void checkCollision(){ if(ball.getY() == 0 || ball.getY() == 290){ ball.dy = (ball.dy * -1); } if((ball.getX() == 40) && hitPaddle()){ ball.dx = (ball.dx * -1); } if(ball.getX() == 460){ ball.dx = (ball.dx * -1); } if(ball.getX() == 0){ pRight.setScore(pRight.getScore() + 1); ball.reset(); } } public boolean hitPaddle(){ boolean didHit = false; if((pLeft.getPos() - 10) <= ball.getY() && (pLeft.getPos() + 70) > ball.getY()){ didHit = true; } return didHit; } @Override public void actionPerformed(ActionEvent arg0) { ball.move(); pRight.setPos(ball.getY() - 35); checkCollision(); repaint(); } }