//1510821001廖益利 |
//练习三 读懂小球撞壁代码,并完善.txt(已完成100%) |
import java.awt.Frame; |
import java.awt.Graphics; |
import java.awt.Panel; |
public class pp{ |
public static void main(String args[]){ |
Frame w = new Frame(); |
MyPanel mp = new MyPanel(); |
w.add(mp); |
Thread th = new Thread(mp); |
th.start(); |
w.setSize( 300 , 400 ); |
w.show(); |
} |
} |
class MyPanel extends Panel implements Runnable{ |
int y= 30 ; |
int x= 30 ; |
int att= 0 ; |
public void paint(Graphics g){ |
//while(true){ |
g.fillOval(x, y, 20 , 20 ); |
//} |
} |
@Override |
public void run() { |
// TODO Auto-generated method stub |
while ( true ){ |
// 定义飞行姿态 |
if (att == 0 ) { |
x++; |
y++; |
} else if (att == 1 ) { |
x--; |
y++; |
} else if (att == 2 ) { |
x--; |
y--; |
} else if (att == 3 ) { |
x++; |
y--; |
} |
// 改变飞行姿态 |
if (x > 260 &&y< 360 ) { //263+20=283,横坐标占用了17个像素,x>263有两种可能,左下或者右上 |
if (att == 0 ) att= 1 ; |
else att= 2 ; |
} else if (x < 260 &&y> 360 ){ |
if (att== 1 ) |
att = 2 ; |
else att= 3 ; |
} else if (x < 0 &&y< 360 ){ |
if (att== 2 ) |
att = 3 ; |
else att= 0 ; |
} else if (x < 270 &&y< 0 ){ |
if (att== 3 ) |
att = 0 ; |
else att= 1 ; |
} |
try { |
Thread.sleep( 8 ) ; |
} catch (Exception e){ |
} |
repaint() ; |
} |
} |
} |