import javax.swing.*;import java.awt.*;public class BilliardsCode extends JFrame { //载入图片 Image ball =Toolkit.getDefaultToolkit().getImage("images/ball.png"); Image desk =Toolkit.getDefaultToolkit().getImage("images/desk.png"); double x=200; double y=200; double degree=3.14/3; //弧度 3.14=180° 60度 //boolean right=true; //控制小球移动方向 //绘制窗口 public void paint(Graphics g){ System.out.println("窗口被画了一次"); g.drawImage(desk,0,0,null); g.drawImage(ball, (int) x,(int) y,null); x=x+10*Math.cos(degree); y=y+10*Math.sin(degree); //碰到上下边界 if(y>501-70||y<80){ degree= -degree; } //碰到左右边界 if(x>856-70||x<40){ degree= 3.14-degree; }// if(right){// x+=10;// }else {// x-=10;// }//// if(x>856-70){// right=false;// }//// if(x<40){// right=true;// } } //创建窗口 void launchFrame(){ setSize(866,501); setLocation(100,100); setVisible(true); //实现动画,每秒绘制窗口30次 while(true){ repaint(); try { Thread.sleep(40);//一秒1000毫秒,大约一秒绘制1000/40次 } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String[] args) { System.out.println("我的小游戏开始了"); BilliardsCode game=new BilliardsCode(); game.launchFrame(); }}

