描述:桌球在球桌中按照一定线路和角度移动,遇到边框会自动弹回。

代码如下:
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();
}
}
本文介绍了一个使用Java Swing实现的桌球模拟动画程序。该程序通过不断更新小球的位置并检查边界碰撞来模拟桌球在桌面上的运动。通过调整角度和速度参数可以改变小球的运动轨迹。
334

被折叠的 条评论
为什么被折叠?



