/*本文介绍JavaSE实现的FlappyBird游戏
1,JavaSE游戏原理
swing(绘制界面)+多线程(同步)+监听(鼠标监听+键盘监听)
2,三个主要类*/
/**主窗口*/
public class World extends JPanel {
public World() throws IOException {}
public void start(){ }
public void action() throws Exception{}
@Override
public void paint(Graphics g) {}
public static void main(String[] args) throws Exception {}
}
/*World类就是本游戏的主窗口,继承JPanel实现paint方法,JPanel就是绘图的面板,
paint方法里面完成真正的绘图;main方法里面启动该程序,主要是设置JPanel窗口,
以及启动action方法.action方法完成添加鼠标监听,添加键盘监听以及加载主循环
的任务.World()方法完成界面图片的加载,调用start()完成游戏的初始化.*/
/**绘制小鸟*/
public class Bird {
public Bird() throws Exception {}
/** 飞行一步*/
public void step(){}
/**更换小鸟的动画帧图片*/
public void fly(){}
/**绘制小鸟,绘制是并发执行的,要同步避免旋转坐标系对其他绘制方法的影响*/
public synchronized void paint(Graphics g){}
/** 判断鸟是否通过柱子 */
public boolean pass(Column col1, Column col2) {}
/** 检查当前鸟是否碰到柱子 */
public boolean hit(Column col){}
}
/**绘制云*/
public class Ground {
public Ground() throws IOException {}
public void step(){}
public void paint(Graphics g) {}
}
/**绘制柱子*/
public class Column {
public Column(int n) throws IOException { }
public void step(){}
/**绘制柱子*/
public void paint(Graphics g){}
}
/**使用随机变量r来控制柱子的中心位置,如此一来,柱子便是不断变换的效果*/
4,效果图
5,完整源码