Hello. I am having trouble with my menu and buttons (which are just pictures that change when you scroll over them). One of my buttons works perfectly, but when I coded the rest in the same way (at least I think so) they dont work. Sorry for the long code. The main part (where it draws the graphic, etc) I hilighted in red. Another problem I am experiencing is that when I set titlemenu to 0 (titlemenu = 0) when declaring and then click start the game doesn't run, but when I set it to 2 initially (titlemenu = 2) then the game runs fine. one thing I should clarify pis pause (when p = 1 a pause menu pops up. en is enemy). Thanks for any help. Again sorry about the long code.

// The "ArrowKeys" class.
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class ArrowKeys2menuprob extends Applet implements KeyListener, Runnable, MouseListener, MouseMotionListener
{
    int x = 50, dx, y = 75, dy, a = 0, score, total, locx, locy, p = 0, mx, my, enx = 500, eny = 500, endx, endy, life = 10, titlemenu = 2;
    double rand, location;
    char m;

    private Image dbImage;
    private Graphics dbg;
    Thread thread;
    Image img, title, background, target, menubg, cont, menu, en, hheart, heart, bheart, titletxt, play, instruct, exit, character, instructions;
    Graphics backg;
    Font pausef, scoref, scoreplay;

    // Place instance variables here

    public void init ()
    {
        rand = Math.random ();
        location = Math.random () * 700 + 10;
        locx = (int) Math.round (location);
        location = Math.random () * 500 + 50;
        locy = (int) Math.round (location);
        img = getImage (getDocumentBase (), "bug1right.gif");
        if (rand > .63)
        {
            target = getImage (getDocumentBase (), "flblue.gif");
            score = 5;
        }
        else if (rand > .33)
        {
            target = getImage (getDocumentBase (), "flred.gif");
            score = 2;
        }
        else
        {
            target = getImage (getDocumentBase (), "flyellow.gif");
            score = 1;
        }

        //background = getImage (getDocumentBase (), "hedgelarge.gif");
        addKeyListener (this);
        addMouseListener (this);
        addMouseMotionListener (this);

        pausef = new Font ("Gigi", 30, 35);
        scoref = new Font ("Arial", 30, 70);
        scoreplay = new Font ("Arial", 15, 15);

        exit = getImage (getDocumentBase (), "exitb.gif");
        character = getImage (getDocumentBase (), "charselb.gif");
        play = getImage (getDocumentBase (), "playb.gif");
        instruct = getImage (getDocumentBase (), "instructb.gif");

        instructions = getImage (getDocumentBase (), "instructions.jpg");


        titletxt = getImage (getDocumentBase (), "titletxt.gif");
        title = getImage (getDocumentBase (), "lbugtitle.jpg");
        hheart = getImage (getDocumentBase (), "hheart.gif");
        heart = getImage (getDocumentBase (), "fheart.gif");
        bheart = getImage (getDocumentBase (), "bheart.gif");
        menubg = getImage (getDocumentBase (), "menubg.gif");
        cont = getImage (getDocumentBase (), "contb.gif");
        //target = getImage (getDocumentBase (), "cont2.gif");
        menu = getImage (getDocumentBase (), "menub.gif");
        //target = getImage (getDocumentBase (), "menub2.gif");
        en = getImage (getDocumentBase (), "en.jpg");
        /*
                tile = createImage (1280, 690);
                backg = tile.getGraphics ();
                backg.setColor (Color.white);
        */
        // Place the body of the initialization method here
    } // init method


    public void start ()
    {
        thread = new Thread (this);
        thread.start ();
    }


    public void stop ()
    {
        thread.stop ();
    }


    public void run ()
    {
        if (titlemenu == 2)
        {
            Thread.currentThread ().setPriority (Thread.MIN_PRIORITY);
            while (true)
            {

                // Delay for 20 milliseconds
                try
                {
                    Thread.sleep (20);
                }
                catch (InterruptedException e)
                {
                }

                if (titlemenu == 2)
                {
                    if (dx == -2)
                    {
                        // If you hit an edge, reverse the direction
                        img = getImage (getDocumentBase (), "bug1left.gif");
                        for (int i = 0 ; i < 500000 ; i++)
                            ;


                        repaint ();
                        if (y + 25 > locy && y + 25 < locy + 50 && x < locx + 50)
                        {

                            total += score;
                            rand = Math.random ();
                            location = Math.random () * 700 + 10;
                            locx = (int) Math.round (location);
                            location = Math.random () * 500 + 50;
                            locy = (int) Math.round (location);

                            if (rand > .63)
                            {
                                target = getImage (getDocumentBase (), "flblue.gif");
                                score = 5;
                            }
                            else if (rand > .33)
                            {
                                target = getImage (getDocumentBase (), "flred.gif");
                                score = 2;
                            }
                            else
                            {
                                target = getImage (getDocumentBase (), "flyellow.gif");
                                score = 1;
                            }
                            for (int i = 0 ; i < 1000000 ; i++)
                            {
                            }
                        }
                    }
                    else if (dx == 2)
                    {
                        img = getImage (getDocumentBase (), "bug1right.gif");
                        for (int i = 0 ; i < 500000 ; i++)
                            ;

                        repaint ();
                        if (y + 25 > locy && y + 25 < locy + 50 && x + 50 > locx)
                        {

                            total += score;
                            rand = Math.random ();
                            location = Math.random () * 700 + 10;
                            locx = (int) Math.round (location);
                            location = Math.random () * 500 + 50;
                            locy = (int) Math.round (location);

                            if (rand > .63)
                            {
                                target = getImage (getDocumentBase (), "flblue.gif");
                                score = 5;
                            }
                            else if (rand > .33)
                            {
                                target = getImage (getDocumentBase (), "flred.gif");
                                score = 2;
                            }
                            else
                            {
                                target = getImage (getDocumentBase (), "flyellow.gif");
                                score = 1;
                            }
                            for (int i = 0 ; i < 1000000 ; i++)
                            {
                            }
                        }
                    }
                    else if (dy == -2)
                    {
                        img = getImage (getDocumentBase (), "bug1up.gif");
                        for (int i = 0 ; i < 500000 ; i++)
                            ;

                        repaint ();
                        if (x + 25 > locx && x + 25 < locx + 50 && y < locy + 50)
                        {

                            total += score;
                            rand = Math.random ();
                            location = Math.random () * 700 + 10;
                            locx = (int) Math.round (location);
                            location = Math.random () * 500 + 50;
                            locy = (int) Math.round (location);

                            if (rand > .63)
                            {
                                target = getImage (getDocumentBase (), "flblue.gif");
                                score = 5;
                            }
                            else if (rand > .33)
                            {
                                target = getImage (getDocumentBase (), "flred.gif");
                                score = 2;
                            }
                            else
                            {
                                target = getImage (getDocumentBase (), "flyellow.gif");
                                score = 1;
                            }
                            for (int i = 0 ; i < 1000000 ; i++)
                            {
                            }
                        }
                    }
                    else if (dy == 2)
                    {
                        img = getImage (getDocumentBase (), "bug1down.gif");
                        for (int i = 0 ; i < 500000 ; i++)
                            ;

                        repaint ();
                        if (x + 25 > locx && x + 25 < locx + 50 && y + 50 > locy)
                        {

                            total += score;
                            rand = Math.random ();
                            location = Math.random () * 700 + 10;
                            locx = (int) Math.round (location);
                            location = Math.random () * 500 + 50;
                            locy = (int) Math.round (location);

                            if (rand > .63)
                            {
                                target = getImage (getDocumentBase (), "flblue.gif");
                                score = 5;
                            }
                            else if (rand > .33)
                            {
                                target = getImage (getDocumentBase (), "flred.gif");
                                score = 2;
                            }
                            else
                            {
                                target = getImage (getDocumentBase (), "flyellow.gif");
                                score = 1;
                            }
                            for (int i = 0 ; i < 1000000 ; i++)
                            {
                            }
                        }

                    }
                    if (x + dx < 4)
                    {
                        dx = 0;
                        x = 4;
                    }
                    else if (x + dx > getSize ().width - 54)
                    {
                        dx = 0;
                        x = getSize ().width - 54;
                    }
                    if ((y + dy < 0 + 50))
                    {
                        dy = 0;
                        y = 50;
                    }
                    else if (y + dy > getSize ().height - 54)
                    {
                        dy = 0;
                        y = getSize ().height - 54;
                    }
                    //calculate the new position
                    x += dx;
                    y += dy;

                    if (enx > x)
                    {
                        if (p != 1 && dx != 0 || dy != 0)
                        {
                            endx = -1;
                        }
                        else
                        {
                            endx = 0;
                            endy = 0;
                        }
                    }
                    else if (enx < x)
                    {
                        if (p != 1 && dx != 0 || dy != 0)
                        {
                            endx = 1;
                        }
                        else
                        {
                            endx = 0;
                            endy = 0;
                        }
                    }
                    if (eny < y)
                    {
                        if (p != 1 && dx != 0 || dy != 0)
                        {
                            endy = 1;
                        }
                        else
                        {
                            endx = 0;
                            endy = 0;
                        }
                    }
                    else if (eny > y)
                    {
                        if (p != 1 && dx != 0 || dy != 0)
                        {
                            endy = -1;
                        }
                        else
                        {
                            endx = 0;
                            endy = 0;
                        }
                    }

                    enx += endx;
                    eny += endy;

                    if (endx == 1)
                    {
                        if (enx + 50 >= x && eny < y + 50 && eny + 50 > y)
                        {
                            life -= 1;
                            enx = 20;
                            eny = 75;
                        }
                    }
                    else if (endx == -1)
                    {
                        if (enx <= x + 50 && eny < y + 50 && eny + 50 > y)
                        {
                            life -= 1;
                            enx = 20;
                            eny = 75;
                        }
                    }
                    else if (endy == 1)
                    {
                        if (eny + 50 > y && enx < x + 50 && enx + 50 > x)
                        {
                            life -= 1;
                            enx = 20;
                            eny = 75;
                        }
                    }
                    else if (endy == -1)
                    {
                        if (eny > y + 50 && enx < x + 50 && enx + 50 > x)
                        {
                            life -= 1;
                            enx = 20;
                            eny = 75;
                        }
                    }


                    // reset thread priority
                    Thread.currentThread ().setPriority (Thread.MAX_PRIORITY);

                }
            }
        }
    } // while (true)


    public void paint (Graphics g)
    {
        if (titlemenu == 0)
        {
            g.drawImage (title, 0, 0, 900, 700, this);
            g.drawImage (titletxt, -10, -20, 400, 350, this);
            g.drawImage (play, 50, 300, 100, 50, this);
            g.drawImage (instruct, 50, 500, 100, 50, this);
            g.drawImage (character, 50, 560, 100, 50, this);
            // g.drawImage (exit, 50, 620, 100, 50, this);

            if (mx > 50 && mx < 150 && my < 350 && my > 300)
            {
                play = getImage (getDocumentBase (), "playb2.gif");
                repaint ();
                
            }
            else
            {
                play = getImage (getDocumentBase (), "playb.gif");
                
            }
            if (mx > 50 && mx < 150 && my > 500 && my < 550)
            {
                instruct = getImage (getDocumentBase (), "instructb2.gif");

            }
            else
            {
                instruct = getImage (getDocumentBase (), "instructb.gif");
                

            }
            if (mx > 50 && mx < 150 && my < 610 && my > 560)
            {
                character = getImage (getDocumentBase (), "charselb2.gif");
                

                    repaint ();
                
            }
            else
            {
                character = getImage (getDocumentBase (), "charselb.gif");
                
            }

        }

        if (titlemenu == 1)
        {
            g.drawImage (instructions, 0, 0, 900, 700, this);
            g.drawImage (menu, 700, 550, this);
            if (mx > 700 && mx < 800 && my < 550 && my > 600)
            {
                menu = getImage (getDocumentBase (), "menub2.gif");
                repaint ();
            }
            else {
            menu = getImage (getDocumentBase (), "menub.gif");
            }
        }


        if (titlemenu == 2)
        {
            //backg.drawImage(background, 0, 0, this);
            g.setColor (Color.green);
            g.fillRect (0, 0, 4, 700);
            g.fillRect (896, 0, 4, 700);
            g.fillRect (0, 696, 900, 4);
            g.fillRect (0, 0, 900, 50);
            g.setColor (Color.black);
            g.setFont (scoreplay);
            g.drawString ("Score: " + total, 700, 30);
            g.drawImage (target, locx, locy, 50, 50, this);
            g.drawImage (img, x, y, 50, 50, this);
            g.drawImage (en, enx, eny, 50, 50, this);

            if (p == 1)
            {
                g.drawImage (menubg, 100, 50, 500, 645, this);
                g.drawImage (menu, 240, 530, this);
                g.drawImage (cont, 360, 530, this);
                g.setFont (pausef);
                g.setColor (Color.black);
                g.drawString (" Your Score: ", 260, 200);
                g.setColor (Color.red);
                g.setFont (scoref);
                g.drawString ("" + total, 280, 400);


                if (mx > 360 && mx < 460 && my > 530 && my < 600)
                {
                    cont = getImage (getDocumentBase (), "contb2.gif");
                    g.drawImage (cont, 360, 530, this);
                    repaint ();
                }
                else
                {
                    cont = getImage (getDocumentBase (), "contb.gif");
                    g.drawImage (cont, 360, 530, this);
                }
                if (mx > 240 && mx < 340 && my < 620 && mx > 550)
                {
                    menu = getImage (getDocumentBase (), "menub2.gif");
                    g.drawImage (menu, 240, 530, this);
                    repaint ();
                }
                else
                {
                    menu = getImage (getDocumentBase (), "menub.gif");
                    g.drawImage (menu, 240, 530, this);
                }

                if (life == 0)
                {

                }
            }
            if (total >= 100)
            {

            }
            else if (total >= 75)
            {

            }
            else if (total >= 50)
            {

            }

            if (life == 10)
            {
                g.drawImage (heart, 70, 10, 20, 20, this);
                g.drawImage (heart, 95, 10, 20, 20, this);
                g.drawImage (heart, 120, 10, 20, 20, this);
                g.drawImage (heart, 145, 10, 20, 20, this);
                g.drawImage (heart, 170, 10, 20, 20, this);
            }
            else if (life == 9)
            {
                g.drawImage (heart, 70, 10, 20, 20, this);
                g.drawImage (heart, 95, 10, 20, 20, this);
                g.drawImage (heart, 120, 10, 20, 20, this);
                g.drawImage (heart, 145, 10, 20, 20, this);
                g.drawImage (hheart, 170, 10, 20, 20, this);
            }
            else if (life == 8)
            {
                g.drawImage (heart, 70, 10, 20, 20, this);
                g.drawImage (heart, 95, 10, 20, 20, this);
                g.drawImage (heart, 120, 10, 20, 20, this);
                g.drawImage (heart, 145, 10, 20, 20, this);
                g.drawImage (bheart, 170, 10, 20, 20, this);
            }
            else if (life == 7)
            {
                g.drawImage (heart, 70, 10, 20, 20, this);
                g.drawImage (heart, 95, 10, 20, 20, this);
                g.drawImage (heart, 120, 10, 20, 20, this);
                g.drawImage (hheart, 145, 10, 20, 20, this);
                g.drawImage (bheart, 170, 10, 20, 20, this);
            }
            else if (life == 6)
            {
                g.drawImage (heart, 70, 10, 20, 20, this);
                g.drawImage (heart, 95, 10, 20, 20, this);
                g.drawImage (heart, 120, 10, 20, 20, this);
                g.drawImage (bheart, 145, 10, 20, 20, this);
                g.drawImage (bheart, 170, 10, 20, 20, this);
            }
            else if (life == 5)
            {
                g.drawImage (heart, 70, 10, 20, 20, this);
                g.drawImage (heart, 95, 10, 20, 20, this);
                g.drawImage (hheart, 120, 10, 20, 20, this);
                g.drawImage (bheart, 145, 10, 20, 20, this);
                g.drawImage (bheart, 170, 10, 20, 20, this);
            }
            else if (life == 4)
            {
                g.drawImage (heart, 70, 10, 20, 20, this);
                g.drawImage (heart, 95, 10, 20, 20, this);
                g.drawImage (bheart, 120, 10, 20, 20, this);
                g.drawImage (bheart, 145, 10, 20, 20, this);
                g.drawImage (bheart, 170, 10, 20, 20, this);
            }
            else if (life == 3)
            {
                g.drawImage (heart, 70, 10, 20, 20, this);
                g.drawImage (hheart, 95, 10, 20, 20, this);
                g.drawImage (bheart, 120, 10, 20, 20, this);
                g.drawImage (bheart, 145, 10, 20, 20, this);
                g.drawImage (bheart, 170, 10, 20, 20, this);
            }
            else if (life == 2)
            {
                g.drawImage (heart, 70, 10, 20, 20, this);
                g.drawImage (bheart, 95, 10, 20, 20, this);
                g.drawImage (bheart, 120, 10, 20, 20, this);
                g.drawImage (bheart, 145, 10, 20, 20, this);
                g.drawImage (bheart, 170, 10, 20, 20, this);
            }
            else if (life == 1)
            {
                g.drawImage (hheart, 70, 10, 20, 20, this);
                g.drawImage (bheart, 95, 10, 20, 20, this);
                g.drawImage (bheart, 120, 10, 20, 20, this);
                g.drawImage (bheart, 145, 10, 20, 20, this);
                g.drawImage (bheart, 170, 10, 20, 20, this);
            }
            else if (life == 0)
            {

                g.drawImage (bheart, 70, 10, 20, 20, this);
                g.drawImage (bheart, 95, 10, 20, 20, this);
                g.drawImage (bheart, 120, 10, 20, 20, this);
                g.drawImage (bheart, 145, 10, 20, 20, this);
                g.drawImage (bheart, 170, 10, 20, 20, this);
            }
            // backg.drawImage( background, 0, 0, this );
            // Place the body of the drawing method here
        }    
    } // paint method 


    public void keyPressed (KeyEvent e)
    {
        if (titlemenu == 2)
        {
            int key = e.getKeyCode ();
            if (key == KeyEvent.VK_RIGHT)
            {
                //backg.drawImage (background, 0, 0, 1280, 960, this);
                if (p != 1)
                {
                    dx = 2;
                    dy = 0;
                    x = x + dx;
                }
            }
            else if (key == KeyEvent.VK_LEFT)
            {
                //backg.drawImage (img, 0, 0, 1280, 960, this);
                if (p != 1)
                {
                    dx = -2;
                    dy = 0;
                    x = x + dx;
                }

            }
            else if (key == KeyEvent.VK_UP)
            {

                //backg.drawImage (img, 0, 0, 1280, 960, this);
                if (p != 1)
                {
                    dy = -2;
                    dx = 0;
                    y = y + dy;
                }
            }
            else if (key == KeyEvent.VK_DOWN)
            {
                //backg.drawImage (img, 0, 0, 1280, 960, this);
                if (p != 1)
                {
                    dy = 2;
                    dx = 0;
                    y = y + dy;
                }
            }
            else if (key == KeyEvent.VK_SPACE)
            {
                dx = 0;
                dy = 0;
                endx = 0;
                endy = 0;
                p = 1;
                repaint ();
            }

        }
    }
    public void keyReleased (KeyEvent e)
    {

    }


    public void keyTyped (KeyEvent e)
    {

    }


    public void update (Graphics g)
    {
        // initialize doublebuffers
        if (dbImage == null)
        {
            dbImage = createImage (this.getSize ().width, this.getSize ().height);
            dbg = dbImage.getGraphics ();
        }

        // save background
        dbg.setColor (getBackground ());
        dbg.fillRect (0, 0, this.getSize ().width, this.getSize ().height);

        // draw foreground on background
        dbg.setColor (getForeground ());
        paint (dbg);

        // Now indicate ready drawn picture Offscreen on the right screen
        g.drawImage (dbImage, 0, 0, this);
    }


    public void mouseEntered (MouseEvent e)
    {
    }


    public void mouseExited (MouseEvent e)
    {
    }


    public void mousePressed (MouseEvent e)
    {

        if (titlemenu == 2 && p == 1)
        {
            if (mx > 360 && mx < 460 && my > 530 && my < 600)
            {
                p = 0;
                repaint ();
            }
            if (mx > 240 && mx < 340 && my > 530 && my < 600)
            {
                titlemenu = 0;
                repaint ();
            }
        }

        if (titlemenu == 1)
        {
            if (mx > 700 && mx < 800 && my > 550 && my < 600)
            {
                titlemenu = 0;
                repaint ();
            }
        }

        if (titlemenu == 0)
        {
            if (mx > 50 && mx < 150 && my < 350 && my > 300)
            {
                //play = getImage (getDocumentBase (), "playb2.gif");
                titlemenu = 2;
                p = 0;
                repaint ();


            }
            else if (mx > 50 && mx < 150 && my > 500 && my < 550)
            {
                titlemenu = 1;
                repaint ();
            }
            else if (mx > 50 && mx < 150 && my < 610 && my > 560)
            {
                //character = getImage (getDocumentBase (), "charselb2.gif");
            }
            else if (mx < 150 && mx > 50 && my < 670 && my > 620)
            {
                //cont = getImage (getDocumentBase (), "exitb2.gif");
            }
            else
            {
                //exit = getImage (getDocumentBase (), "exitb.gif");
                //character = getImage (getDocumentBase (), "charselb.gif");
                //play = getImage (getDocumentBase (), "playb.gif");
                //instruct = getImage (getDocumentBase (), "instructb.gif");
            }
        }

    }
    public void mouseReleased (MouseEvent e)
    {
    }


    public void mouseDragged (MouseEvent e)
    {
    }


    public void mouseMoved (MouseEvent e)
    {
        mx = e.getX ();
        my = e.getY ();
        //repaint ();
       
    }




    public void mouseClicked (MouseEvent e)
    {

    }
} // ArrowKeys class

if needed I can upload a video on my game. outlining the problems. Thanks again

Recommended Answers

All 3 Replies

You may get more help if you mark your old questions as answered, or at least give some feedback as to whether the time people have put into helping you resulted in a solution.

A "thank you" wouldn't go amiss either.

http://www.daniweb.com/forums/thread340200.html

http://www.daniweb.com/forums/thread336148.html

Edit - We dont have a load of images called "playb2.gif" etc etc in appropriate folders. If you want help with such a big program people need to be able to run it. Make a getImage method that uses the string ("playb2.gif" etc) If it cannot find it, make a square image with the string "playb2.gif" drawn on to it, this way anybody can run it easily.

You may also get more help if u use code tags for your posts....

I did use the code tags. they didn't work. I tried fixing it but it didn't work.

Thanks the the help you were trying to give, but I solved everthing.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.