Thread: Ping pong game
View Single Post
  #3 (permalink)  
Old 03-18-2008, 10:36 PM
adam405 adam405 is offline
Member
 
Join Date: Mar 2008
Posts: 7
adam405 is on a distinguished road
this is what i have, any ideas

Code:
import java.applet.*; import java.awt.*; import java.awt.event.*; import java.util.Random; import java.awt.Graphics; public class FullBall extends Applet implements Runnable { //position of the ball int x_pos = 12; int y_pos = 12; //position of the ball int sliderx_pos = 1; int slidery_pos = 150; //ball size int radius = 5; //size of slider int swidth = 60; int sheight = 1; int realwidth = sliderx_pos + swidth; //balldirection int x_speed = 6; int y_speed = 8; //slider direcion int sliderx_speed = 0; //applet size int appletsize_top = 10; int appletsize_bottom = 160; int appletsize_left = 10; int appletsize_right = 340; //random movement Random rnd = new Random (); //Drawing image off screen private Image dbImage; private Graphics dbg; Thread thread; boolean running = false; // start - method is called after init // and every time the applet is maximized public void start () { // define a new thread running = true; thread = new Thread (this); // start this thread thread.start (); System.out.println("start"); } // A well–behaved Applet stops // its animation when minimized. public void stop() { running = false; if(thread != null) thread.interrupt(); thread = null; System.out.println("stop"); } //run- start the applet game // Implementation of the Runnable interface. public void run () { while (running) { // lower ThreadPriority Thread.currentThread().setPriority(Thread.MIN_PRIORITY); // change direction if ball hits any side if (x_pos < appletsize_left || x_pos > appletsize_right ) { x_speed *= -1; } if (y_pos < appletsize_top) { y_speed *= -1; } if(y_pos > appletsize_bottom ) { y_speed *= -1; } //change direction of slider if (sliderx_pos > appletsize_right - swidth) { sliderx_speed = appletsize_right - swidth; } else if (sliderx_pos < appletsize_left) { sliderx_speed = appletsize_left; } //logic for bouncing off slider else if(x_pos >= sliderx_pos && x_pos <=realwidth && y_pos ==145) { x_speed *= -1; y_speed *= -1; } sliderx_pos = sliderx_speed; x_pos += x_speed; y_pos += y_speed; //repaint applet repaint(); try { // Stop thread for the speed Thread.sleep (50); } catch (InterruptedException ex) { running = false; break; } // set ThreadPriority to maximum value Thread.currentThread().setPriority(Thread.MAX_PRIORITY); } } //create an image off screen and loads it into the applet public void update (Graphics g) { // initialize buffer if (dbImage == null) { dbImage = createImage (this.getSize().width, this.getSize().height); dbg = dbImage.getGraphics (); } // clear screen in background dbg.setColor (getBackground ()); dbg.fillRect (0, 0, this.getSize().width, this.getSize().height); // draw elements in background dbg.setColor (getForeground()); paint (dbg); // draw image on the screen g.drawImage (dbImage, 0, 0, this); } public void paint (Graphics g) { // set color g.setColor (Color.red); // paint a filled colored circle g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius); Graphics2D g2 = (Graphics2D) g; Rectangle box = new Rectangle(sliderx_pos,slidery_pos,swidth,sheight); g2.setColor (Color.blue); g2.draw(box); } //slider key event public boolean keyDown (Event e, int key) { if (key == Event.LEFT) { sliderx_speed = sliderx_pos -20 ; } else if (key == Event.RIGHT) { sliderx_speed = sliderx_pos +20; } sliderx_pos = sliderx_speed; return true; } }
Reply With Quote