台球小项目
import java.awt.*;
import javax.swing.JFrame;
public class BallGame extends JFrame{
public static void main(String[] args) {
System.out.println("主方法执行");
BallGame bg=new BallGame();
bg.launchFrame();
}
//桌球和桌台的图片
Image ball=Toolkit.getDefaultToolkit().getImage("images/ball.png");
Image desk=Toolkit.getDefaultToolkit().getImage("images/desk.png");
//桌台的起色位置
double x=100;
double y=100;
//桌球移动的起色角度60度角
double degree=3.14/3;
public void paint(Graphics g) {
//绘制一次桌台和桌球
System.out.println("窗口被画一次");
g.drawImage(desk,0,-25,null);
g.drawImage(ball,(int)x,(int)y,null);
//桌球的下一次的坐标位置
x=x+10*Math.cos(degree);
y=y+10*Math.sin(degree);
//到桌球边框后的角度变化
if(y>501-30-60) {//501是桌台的高度,30是球的直径,40是桌边框的高度
degree=-degree;
}
if(x>856-30-40) {
degree=3.14-degree;
}
if(x<20+20) {
degree=3.14-degree;
}
if(y<20+20) {
degree=-degree;
}
}
public void launchFrame() {
setSize(856,501);//设置游戏框的大小
setLocation(50,50); //将框框移到新的位置
setVisible(true);//显示游戏框
while(true) {
repaint();//重新绘制
try {
Thread.sleep(50);//休息50毫秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
桌球的图片