Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Java (http://www.go4expert.com/forums/java/)
-   -   mouseListener and MouseMotionListener in Java (http://www.go4expert.com/forums/mouselistener-mousemotionlistener-java-t16310/)

gulliccj 24Feb2009 04:02

mouseListener and MouseMotionListener in Java
 
hello, for a school assignment, i have elected to do Pong, in a standard applet. to come at this, I used a thread, that implements Runnable for the main class. I also need to use MouseListener and MouseMotionListener. But i cannot implement them. How do i get around that. Below i have copied the code. Please help! It is due on friday.

gulliccj 24Feb2009 04:03

Re: mouseListener and MouseMotionListener in Java
 
HTML Code:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;

public class JavaPong extends Applet implements Runnable{


        String color = "WHITE";
        boolean done = false;                                // done
        Point ballPosition;                                        //position
        double ballx, bally;                                // velocity
        int rad;                                                        //balls size
        Rectangle player, computer, walls;        //rectangles
        Thread game;                                                //main executing thread
        Image doublebuffer;                                        //offscreen buffer

        AudioClip wavPong;                                        //sound effect
        boolean hit = false;                                //if ball hit wall or paddle

        Image bgImage;                                                //background image

        boolean start;

        int yourScore,oppScore;

        Point mouse;                                                //Mouses Current Position

        public void run(){
                //infinate game loop
                try{
                        while(!done){
                                testPlayer();
                                tesWalls();
                                updateBall();
                                updatePlayer();
                                playSounds();
                                repaint();
                                Thread.sleep(10);

                        }
                }
                catch(InterruptedException e){
                }
        }

        //init(), then start()

        public void init(){
                String radIns = JOptionPane.showInputDialog(null, "Enter ball Radius: ");//get bal radius
                int radIn = Integer.parseInt(radIns);                                                                        //parse radius
                rad = radIn;                                                                                                                        //ball radius = x;
                ballx = -4.0;
                bally = 4.0;
                ballPosition = new Point(getWidth()/2, getHeight()/2);                                        //set initial ball location

                //create offscreen buffer
                doublebuffer = createImage(getWidth(),getHeight());

                hit = false;

                //paddle dimensions
                int x,y,w,h;

                w = (int)(0.02 * getWidth());
                h = (int)(.35 * getHeight());
                x = w;
                y =        (int)(.50 * getHeight());

                player = new Rectangle(x, y, w, h);

                mouse = new Point(0,0);
                addMouseListener(this);
                addMouseMotionListener(this);



        }



        public void start(){
                wavPong = getAudioClip(getCodeBase(), "pong.wav");
                game = new Thread(this);                        //This is a thread
                game.start();                                                //Thread will in turn execute run()
                bgImage = getImage(getCodeBase(), "JavaPong.png");
        }

        //start MouseListeners

        public void mouseClicked(MouseEvent e){
                if(start = false){
                        startGame();
                }
        }

        public void mouseEntered(MouseEvent e){
        }

        public void mouseExited(MouseEvent e){
        }

        public void mousePressed(MouseEvent e){
        }

        public void mouseReleased(MouseEvent e){
        }

        //MouseMotionListener 2 abstract
        public void mouseDragged(MouseEvent e){

        }
        public void mouseMoved(MouseEvent e){
                mouse.setLocation(0,e.getY());
        }

        void updatePlayer(){
                player.y = mouse.y;
        }

        void startGame(){

        }



        public void paint(Graphics g){

                Graphics dbg = doublebuffer.getGraphics();

                dbg.setColor(new Color(0,100,100));
                dbg.fillRect(0,0,getWidth(),getHeight());

                dbg.drawImage(bgImage, getWidth()/2-bgImage.getWidth(this)/2,getHeight()/2 - bgImage.getHeight(this)/2 , this);

                dbg.setColor(Color.WHITE);
                dbg.fillOval(ballPosition.x-rad,ballPosition.y-rad,rad*2, rad*2);                //draw ball

                dbg.setColor(Color.BLACK);
                dbg.fillRect(player.x-player.width/2, player.y - player.height/2, player.width, player.height);
                dbg.setColor(Color.WHITE);
                dbg.fillRect(player.x-player.width/2+2, player.y - player.height/2+2, player.width-4, player.height-4);

                g.drawImage(doublebuffer, 0, 0, this);
        }

        public void update(Graphics g){
                paint(g);
        }

        public void tesWalls(){
                int top = 0, left = 0, right = getWidth()-1, bottom = getHeight() - 1;

                if((ballPosition.x + ballx - rad) <= left){
                        ballx *= -1;
                }
                if((ballPosition.x + ballx + rad) >
= right){
                        ballx *= -1;
                }
                if((ballPosition.y + bally - rad) <= top){
                        bally *= -1;
                }
                if((ballPosition.y + bally + rad) >
= bottom){
                        bally *= -1;
                }


        }

        void testPlayer(){
                //if ball is moving left

                if(ballx < 0){
                        if((player.x+player.width/2) >
= (ballPosition.x-rad)){
                                if((player.y-player.height/2) < (ballPosition.y +rad) && ((player.y + player.height/2) > (ballPosition.y- rad))){
                                        //reverse direction add 5% more speed
                                        ballx *= -1.05;
                                        bally *= 1.05;
                                        hit = true;
                                }
                        }
                }
        }

        public void updateBall(){
                ballPosition.x += ballx;
                ballPosition.y += bally;
        }

        void playSounds(){
                if(hit){
                        wavPong.play();//play audio
                        hit = false;
                }
        }
}

}

shabbir 24Feb2009 09:56

Re: mouseListener and MouseMotionListener in Java
 
Duplicate of JavaPong. Thread closed.


All times are GMT +5.5. The time now is 03:16.