Java--会移动、反弹的球

package firstpack;
import java.awt.*;

public class MyStar {
    public static void main(String[] args) {
        Frame w = new Frame();
        w.setSize(800, 700);
        w.setBackground(Color.black);
        
        MyPanel mp = new MyPanel();
        w.add(mp);
        
        Thread t = new Thread(mp);
        t.start();
        
        w.setVisible(true);
    }

}

class MyPanel extends Panel implements Runnable {
    
    int x = 30;
    int y = 30;
    int att = 0;//0表示右下,1表示左下,2表示左上,3表示右上
    
    public void paint(Graphics g) {
            g.setColor(Color.red);
            g.fillOval(x, y, 20, 20);
    }
        
    public void run() {
        while(true) {
            //定义飞行姿态
            if(att == 0) {
                x++;
                y++;
            }
            if(att == 1) {
                x--;
                y++;
            }
            if(att == 2) {
                x--;
                y--;
            }
            if(att == 3) {
                x++;
                y--;
            }
            
            //改变飞行姿态
            if(x > 760) {
                if(att == 0) {
                    att = 1;
                }else {
                    att = 2;
                }
            }
            if(y > 670) {
                if(att == 1) {
                    att = 2;
                }else {
                    att = 3;
                }
            }
            if(x < 20) {
                if(att == 2) {
                    att = 3;
                }else {
                    att = 0;
                }
            }
            if (y < 20) {
                if(att == 3) {
                    att = 0;
                }else {
                    att = 1;
                }
            }
            try {
                Thread.sleep(5);
            }catch(Exception e) {
                
            }
            repaint();//重画
        }
        
    }
}

 

posted on 2017-10-07 22:32  可豆豆  阅读(269)  评论(0)    收藏  举报

导航