要求: 即使看不太懂,也要照着敲如下游戏代码,至少 5 遍。 要求所有字符和源文件一致。 如果报异常,请细心看所在行和老师代码有何区别。现阶段不需要理解代码的语法功能,只 要按照代码结构输入代码,能够经过调试实现代码的正常运行即可。
下面我们将分以下四个步骤来实现桌球游戏:
第一步:创建项目和窗口。
第二步:加载一个图片。
第三步:实现动画,小球沿着水平方向移动并做边界检测。
第四步:实现小球沿着任意角度飞行(会用到初中学习的三角函数,如果忘记了就 想想你们的体育老师吧)。 【注】 : 图片资源在网上找一个即可。
代码如下:
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame;
public class deskBall extends JFrame {//添加图片的路径
Image desk = Toolkit.getDefaultToolkit().getImage("image/desk.jpg");
private int x = 100; //横坐标
private int y = 100; //纵坐标
private double d = 3.14 / 3; //弧度:小球的运动角度,此处是60度//画窗口的方法:加载小球和桌面
public void paint(Graphics g) {
g.drawImage(desk, 0, 0, null);
g.fillOval(x, y, 20, 20);//根据角度改变小球坐标
x = (int) (x + 10 * Math.cos(d));
y = (int) (y + 10 * Math.sin(d));//264是窗口高度,10是桌子边框,20是小球直径
if (y > 270 - 10 - 20 || y < 10 + 10) {
d = -d;
}//478是窗口宽度,10是桌子边框,20是小球直径
if (x < 10 || x > 480 - 10 - 20) {
d = 3.14 - d;
}
}//窗口加载
void launchFrame() {
setSize(480, 270);
setLocation(400, 50);
setTitle("桌球小游戏");
setVisible(true);
while (true) {
try {
Thread.sleep(50);
} catch (InterruptedException e) {// TODO Auto-generated catch block
e.printStackTrace();
}
repaint();
}
}
// main方法程序执行入
public static void main(String[] args) {
deskBall a = new deskBall();
a.launchFrame();
}
}