好程序员Java学习路线分享FlappyBird开发帮助文档

好程序员Java学习路线分享FlappyBird开发帮助文档,项目需求:
完成FlappyBird游戏。
1.功能说明:
游戏开始后,间歇性的点击鼠标,让小鸟向上飞,不会掉下来,而且要穿过柱子的空隙,不能碰到柱子,碰到就dead了,穿过一个柱子的一分
2.界面需求:
开始界面:
图片描述java

点击鼠标后开始游戏,游戏时界面:
图片描述程序员

游戏结束时界面:
图片描述app

3.性能规定:
游戏要求每点击一下鼠标,必须实时响应为小鸟向上飞指定的高度,而且小鸟一直有降低的速度,而且柱子也要一直循环的出现,最后使得小鸟可以灵活连贯的的穿梭于柱子之间。
4.开发步骤:
项目包含主程序类Game.java,自定义面板类BirdGame.java,小鸟类:Bird.java,柱子类Column.java,地面类:Ground.java,
(1).建立柱子类Column.java
包含属性:
图片BufferedImage,坐标x,y,图片宽度和高度width,height
柱子个数count(最多初始化两根柱子对象)。
构造方法Column():
图片描述性能

柱子移动方法move():
图片描述学习

(2).建立Ground.java类
构造方法加载图片,初始化坐标(0,500),建立move方法
图片描述spa

(3).建立Bird.java类
构造方法加载图片,初始化坐标(190,220),建立up和down方法
图片描述线程

建立加分addScore(Column c)方法,原理当bird的横坐标等于柱子的横坐标加柱子的宽度时即加一分。
建立地面碰撞方法hitGround方法,原理提示,bird纵坐标和ground纵坐标比较。3d

建立柱子碰撞检测hitColumn方法
图片描述对象

(4).建立BirdGame.java面板类,继承JPanel
state变量表示游戏状态,0表示开始状态,1表示游戏中状态,2表示游戏结束状态。
构造方法加载bg.png,start.png,gameover.png,初始化state=0,初始化ground,bird,column1和column2对象。
重写paint方法public void paint(Graphics g)
利用g.drawImage方法绘制界面
图片描述blog

显示分数图片描述

定义内部类MyMouseAdapter 继承MouseAdapter
重写mousePressed方法public void mousePressed(MouseEvent e)
根据当前游戏状态,更改鼠标点击后状态及对应对象坐标。
建立action方法,添加鼠标监听事件
图片描述

无限循环(while(true))根据不一样游戏状态调用bird,ground,column对象中的方法(利用switch case),而后利用线程延迟实现重复绘制
图片描述

(5).建立Game.java做为运行主类,原理:Main方法中建立JFrame对象,将BirdGame面板实例化后添加进JFrame对象中,最后调用BirdGame对象的action方法。

相关文章
相关标签/搜索