描述:桌球在球桌中按照一定线路和角度移动,遇到边框会自动弹回。
代码如下:
mport javax.swing.*;
import java.awt.*;
public class Myball02 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;
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>320||y<70){
degree=-degree;
}
//碰到左右边界
if (x>600||x<70){
degree =3.14-degree;
}
}
//创建窗口
void lanchFrame(){
setSize(700,412);
setLocation(100,100);
setVisible(true);
//实现动画每秒25次
while (true){
repaint();
try {
Thread.sleep(40);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
System.out.println("小游戏第一版本");
Myball02 a =new Myball02();
a.lanchFrame();
}
}