java - Can I get booleans to work between classes -


ok want make pong, have basic code want add option change colour of paddles

    main.java:          import java.awt.*; import java.awt.event.keyadapter; import java.awt.event.keyevent; import java.awt.event.mouseadapter; import java.awt.event.mouseevent; import javax.swing.*;  public class main extends jframe {      int x, y;      //double buffering     image dbimage;     graphics dbg;     image ball;      boolean gamestarted = false;     boolean options = false;     boolean p1colouroption = false;     boolean p2colouroption = false;     boolean p1red = false;     boolean p2red = false;     boolean p1white = true;     boolean p2white = true;     boolean p1yellow = false;     boolean p2yellow = false;     boolean p1green = false;     boolean p2green = false;      //ball objects     static ball b = new ball(193, 143);     static ball b1 = new ball(193, 143);      thread ball = new thread(b);     thread p1 = new thread(b.p1);     thread p2 = new thread(b.p2);         //menu buttons     rectangle options = new rectangle (150, 200, 100, 25);     rectangle player1colour = new rectangle (150,150,100,25);     rectangle player2colour = new rectangle (150,100,100,25);     rectangle startbutton = new rectangle(150, 150, 100, 25);     rectangle hbstartbutton = new rectangle(368, 200, 50, 100);     rectangle p1red = new rectangle (150,75,100,25);     rectangle p2red = new rectangle (150,75,100,25);     rectangle p1white = new rectangle (150,125,100,25);     rectangle p2white = new rectangle (150,125,100,25);     rectangle p1yellow  = new rectangle (150,175,100,25);     rectangle p2yellow = new rectangle (150,175,100,25);     rectangle p1green = new rectangle (150,225,100,25);     rectangle p2green = new rectangle (150,225,100,25);     //variables screen size     int     gwidth = 400,     gheight = 300;     //dimension of gwidth*gheight     dimension screensize = new dimension(gwidth, gheight);     int sety;      //create constructor spawn window     public main(){         imageicon = new imageicon("f:/pong/src/ballpic.png");         ball = i.getimage();         this.settitle("pong");         this.setsize(screensize);         this.setresizable(false);         this.setdefaultcloseoperation(jframe.exit_on_close);         this.setvisible(true);         this.setbackground(color.black);         this.addkeylistener(new keyhandler());         this.addmouselistener(new mousehandler());         this.addmousemotionlistener(new mousehandler());         this.setlocationrelativeto(null);           x= 370;         y = 140;     }      public static void main(string[] args){         main m = new main();     }      public void startgame(){         gamestarted = true;          ball.start();         p1.start();         p2.start();      }     public void pausegame(){         gamestarted = false;         options = false;         p1colouroption = false;         p2colouroption = false;     }     public void buttonpressed(){         options = false;         p1colouroption = false;         p2colouroption = false;     }      @override     public void paint(graphics g){         dbimage = createimage(getwidth(), getheight());         dbg = dbimage.getgraphics();         draw(dbg);         g.drawimage(dbimage, 0, 0, this);      }     public void draw(graphics g){         //menu          if(!gamestarted){             if(p1colouroption){                 g.setcolor(color.red);                 g.fillrect(p1red.x, p1red.y, p1red.width, p1red.height);                 g.setfont(new font("arial", font.bold, 12));                 g.setcolor(color.black);                 g.drawstring("red", p1red.x+10, p1red.y+15);                 g.setcolor(color.white);                 g.fillrect(p1white.x,p1white.y,p1white.width,p1white.height);                 g.setcolor(color.black);                 g.drawstring("white",p1white.x+10, p1white.y+15);                 g.setcolor(color.yellow);                 g.fillrect(p1yellow.x,p1yellow.y,p1yellow.width,p1yellow.height);                 g.setcolor(color.black);                 g.drawstring("yellow", p1yellow.x+10, p1yellow.y+15);                 g.setcolor(color.green);                 g.fillrect(p1green.x, p1green.y, p1green.width, p1green.height);                 g.setcolor(color.black);                 g.drawstring("green", p1green.x+10, p1green.y+15);             }             else{               if(options){             g.setcolor(color.white);             g.fillrect(player1colour.x, player1colour.y, player1colour.width, player1colour.height);             g.setfont(new font("arial", font.bold, 12));             g.setcolor(color.black);             g.drawstring("player 1 colour", player1colour.x+10, player1colour.y+15);             g.setcolor(color.white);             g.fillrect(player2colour.x, player2colour.y, player2colour.width,          player2colour.height);             g.setcolor(color.black);             g.drawstring("player 2 colour", player2colour.x+10, player2colour.y+15);         }               else{         g.setfont(new font("arial", font.bold, 26));         g.setcolor(color.white);         g.drawstring("pong", 165, 75);         g.setcolor(color.white);         g.fillrect(startbutton.x, startbutton.y, startbutton.width, startbutton.height);         g.setfont(new font("arial", font.bold, 12));         g.setcolor(color.black);         g.drawstring("start game", startbutton.x+20, startbutton.y+17);         g.setcolor(color.white);         g.fillrect(options.x, options.y, options.width, options.height);         g.setcolor(color.black);         g.drawstring("options", options.x+17, options.y+20);                   }               }             }          else{         //game drawings          b.draw(g);            if(p1red){         g.setcolor(color.red);                b.p1.draw(g);            }            else{                b.p1.draw(g);            }          b.p2.draw(g);            //scores         g.setcolor(color.white);         g.drawstring(""+b.p1score, 125, 50);         g.drawstring(""+b.p2score, 300, 50);          }                 repaint();     }         ////////event listener classes/////////     public class keyhandler extends keyadapter {         int y;         @override         public void keypressed(keyevent e){             b.p1.keypressed(e);             b.p2.keypressed(e);          if(e.getkeycode() == e.vk_p)            pausegame();         }               public void keyreleased(keyevent e){             b.p1.keyreleased(e);             b.p2.keyreleased(e);        }     }     ///////end event listener classes/////   public class mousehandler extends mouseadapter {         @override         public void mousemoved(mouseevent e){          }         @override         public void mousepressed(mouseevent e){              int mx = e.getx();             int = e.gety();                      if(!options){             if(mx > startbutton.x && mx < startbutton.x+startbutton.width &&                > startbutton.y && < startbutton.y+startbutton.height){             startgame();             }             if(mx > options.x && mx < options.x+options.width &&                     > options.y && < options.y+options.height){                 options = true;             }             }             else{             if(mx > player1colour.x && mx < player1colour.x+player1colour.width &&                > player1colour.y && < player1colour.y+player1colour.height){                 p1colouroption = true;             }                 }             if(p1colouroption){             if(mx > p1red.x && mx < p1red.x+p1red.width &&                > p1red.y && < p1red.y+p1red.height){                 p1red = true;                 p1green = false;                 p1yellow = false;                 p1white = false;                 buttonpressed();             }                 }              }            }             } 

paddle.java:

import java.awt.color; import java.awt.graphics; import java.awt.rectangle; import java.awt.event.keyevent;  public class paddle implements runnable {      int x, y, ydirection, id;         boolean p1red = false;     boolean p2red = false;     boolean p1white = true;     boolean p2white = true;     boolean p1yellow = false;     boolean p2yellow = false;     boolean p1green = false;     boolean p2green = false;      rectangle paddle;      public paddle(int x, int y, int id){         this.x = x;         this.y = y;         this.id = id;         paddle = new rectangle(x, y, 10, 50);     }      public void keypressed(keyevent e){         switch(id){             default:                 system.out.println("please enter valid id in paddle constructor");                 break;             case 1:                 if(e.getkeycode() == e.vk_w){                     setydirection(-1);                 }                 if(e.getkeycode() == e.vk_s){                     setydirection(1);                 }                 break;             case 2:                 if(e.getkeycode() == e.vk_up){                     setydirection(-1);                 }                 if(e.getkeycode() == e.vk_down){                     setydirection(+1);                 }                 break;                     }     }     public void keyreleased(keyevent e){         switch(id){             default:                 system.out.println("please enter valid id in paddle constructor");                 break;             case 1:                 if(e.getkeycode() == e.vk_w){                     setydirection(0);                 }                 if(e.getkeycode() == e.vk_s){                     setydirection(0);                 }                 break;             case 2:                 if(e.getkeycode() == e.vk_up){                     setydirection(0);                 }                 if(e.getkeycode() == e.vk_down){                     setydirection(0);                 }                 break;                     }     }      public void setydirection(int ydir){         ydirection = ydir;     }      public void move(){         paddle.y += ydirection;         if(paddle.y <= 15)             paddle.y = 225;         if(paddle.y >= 250)             paddle.y = 25;     }      public void draw(graphics g){         switch(id){             default:                 system.out.println("please enter valid id in paddle constructor");                 break;             case 1:                 if(p1white){                 g.setcolor(color.white);                 }                 if(p1green){                     g.setcolor(color.green);                 }                 if(p1red){                     g.setcolor(color.red);                 }                 if(p1yellow){                     g.setcolor(color.yellow);                 }                 g.fillrect(paddle.x, paddle.y, paddle.width, paddle.height);                 break;             case 2:                 if(p2white){                 g.setcolor(color.white);                 }                 if(p2green){                     g.setcolor(color.green);                 }                 if(p2red){                     g.setcolor(color.red);                 }                 if(p2yellow){                     g.setcolor(color.yellow);                 }                 g.fillrect(paddle.x, paddle.y, paddle.width, paddle.height);                 break;         }     }      @override     public void run() {         try{             while(true){                 move();                 thread.sleep(8);             }         }catch(exception e){system.err.println(e.getmessage());}     }  } 

so there anyway boolean in main.java trigger booleans in paddle.java

you can this. pretty simple:

public class main extends jframe {  public  boolean p1red = false;  public  boolean p2red = false; } 

and, threads, call p1red , p2red this:

public class paddle implements runnable {    boolean foo;   //...    foo = main.p1red; } 

you don't need create new main() class within threads. call main.p1red code, , accessed.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -