为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA窗体中2个小球怎样能互不干涉反弹移动?

JAVA窗体中2个小球怎样能互不干涉反弹移动?

瑾色羊 2018-03-20 19:57:33
这段代码运行后,两小球距离总是恒定,怎样让他们两个是各自独立,有各自的轨迹?import java.awt.*;public class Rebound{ public static void main(String args[]) { Frame w=new Frame(); w.setSize(800, 800); MyRebound mp=new MyRebound(); w.add(mp);             Thread t=new Thread(mp);       t.start();             w.show();                 }}class MyRebound extends Panel implements Runnable{      int x=(int)(Math.random()*800);       int y=(int)(Math.random()*800);      int i=(int)(Math.random()*800);      int j=(int)(Math.random()*800);      int att=0; public void paint(Graphics g) { g.fillOval(x, y, 50, 50);  g.setColor(Color.yellow); g.fillOval(i, j, 50, 50); } public void run(){       while(true) {       //定义飞行姿态       if(att==0) {       x++;          y++;       i++;      j++;       }       if(att==1) {       x--;       y++;       i--;       j++;       }       if(att==2) {       x--;       y--;       i--;       j--;       }       if(att==3) {       x++;       y--;       i++;       j--;       }                        //改变飞行姿态            if(x>730) {            if (att==0) {             att=1;            }else {                                             att=2;        }  }                      if(y>700) {          if(att==1) {          att=2;          }else {          att=3;          }          }          if(x<0) {          if(att==2) {          att=3;          }else {          att=0;          }          }          if(y<0) {          if(att==3) {          att=0;          }else {          att=1;          }          } //.........................................................................................          if(i>730) {            if (att==0) {             att=1;            }else {                                             att=2;        }  }                      if(j>700) {          if(att==1) {          att=2;          }else {          att=3;          }          }          if(i<0) {          if(att==2) {          att=3;          }else {          att=0;          }          }          if(j<0) {          if(att==3) {          att=0;          }else {          att=1;          }          }          try {                                                       Thread.sleep(5);                                 //线程休眠5毫秒       }catch(Exception e) {}                              //异常处理         repaint();         }    }}
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 1099 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信