最近想写个泡泡龙的游戏,可是遇到几个问题,其中有一个是模拟球的运行轨迹.其实以前也想过类似的问题,最初的时候是用了一个Vista的泡泡屏保然后是玩一个桌球游戏,我都在想着到底怎样计算那球何时与屏幕边沿或者是桌球桌子边沿碰撞以及碰撞后会如何改变方向,怎样运动,于是想到用数学,物理去计算,然后越想越多种情况,越想越复杂,终于觉得不可能做出也就放弃了,今天在网上看到一个类似的不过是用Flash实现的,还给出了代码,而是终于弄明白了该怎样做,改了一下用Java做,代码如下:
import javax.swing.JFrame;
import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.ComponentAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ComponentEvent;
public class Ball extends JFrame{
private int screenWidth,screenHeight;
private BallCanvas canvas = null;
public Ball(){
setTitle("运动的球");
setSize(500,500);
Container pane = this.getContentPane();
screenWidth = this.getWidth();
screenHeight = this.getHeight();
canvas = new BallCanvas(screenWidth, screenHeight);
Thread t =