桌球小游戏
目标实现桌球在桌上运动,现阶段没有考虑桌球速度,落袋,和出杆,简单模拟桌球的运动轨迹。
开发工具:IntelliJ IDEA 2018.3.2 x64
所用图片:ball.png、desk.jpg。
import java.awt.*;
import javax.swing.*;
public class BallGame extends JFrame {
/**加载图片*/
Image ball=Toolkit.getDefaultToolkit().getImage("images/ball.png");
Image desk=Toolkit.getDefaultToolkit().getImage("images/desk.jpg");
double x=100;//小球起始横坐标
double y=100;//小球起始纵坐标
double degree=3.14/3;//起始方向弧度等于60
/**画窗口的方法*/
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>500-40-30||y<40+40){
degree= -degree;
}
if(x>856-40-30||x<40){
degree=3.14-degree;
}
}
/**窗口加载*/
void launchFrame(){
setSize(856,500);
setLocation(50,50);
setVisible(true);
/**重画窗口(更新窗口)*/
while(true){
repaint();
try{
Thread.sleep(40);//每40ms重画一次窗口
}catch (Exception e){
e.printStackTrace();
}
}
}
//main方法程序入口
public static void main(String args[]){
System.out.println("小球游戏开始!");
BallGame game=new BallGame();
game.launchFrame();
}
}