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

好程序员Java培训线分享FlappyBird开发帮助文档,项目需求:

完成FlappyBird游戏。

1. 功能说明:

游戏开始后,间歇性的点击鼠标,让小鸟向上飞,不会掉下来,并且要穿过柱子的空隙,不能碰到柱子,碰到就dead了,穿过一个柱子的一分

2. 界面需求:

开始界面:

bd596eaff61dcd6d524811a8285fd1d9.png

点击鼠标后开始游戏,游戏时界面:

7e6c4fffe44b373c7daf1b674f20cf3a.png

游戏结束时界面:

0bc627f4f427327f5d588ce70e06aa66.png

3. 性能规定:

游戏要求每点击一下鼠标,必须实时响应为小鸟向上飞指定的高度,并且小鸟一直有下降的速度,并且柱子也要一直循环的出现,最后使得小鸟能够灵活连贯的的穿梭于柱子之间。

4. 开发步骤:

项目包含主程序类Game.java,自定义面板类BirdGame.java,小鸟类:Bird.java,柱子类Column.java,地面类:Ground.java,

(1).创建柱子类Column.java

包含属性:

图片BufferedImage,坐标x,y,图片宽度和高度width,height

柱子个数count(最多初始化两根柱子对象)。

构造方法Column():

dc4ec80597984c3dc6f0d3c9dda55924.png

柱子移动方法move():

754778ee813e1df00aeb3465d5732696.png

(2).创建Ground.java类

构造方法加载图片,初始化坐标(0,500),创建move方法

ece088e8d4f949e7cd4257f6a9da6fea.png

(3).创建Bird.java类

构造方法加载图片,初始化坐标(190,220),创建up和down方法

40878826687a9894f8a2e70a8338e510.png

创建加分addScore(Column c)方法,原理当bird的横坐标等于柱子的横坐标加柱子的宽度时即加一分。

创建地面碰撞方法hitGround方法,原理提示,bird纵坐标和ground纵坐标比较。

创建柱子碰撞检测hitColumn方法

6d8d858d0121a7d881843ae7fc54f91a.png

(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方法绘制界面

e1c84006dc1743a7731171d9dd447dd2.png
8a5a253683c9b2d28600b361b818bad9.png

显示分数

定义内部类MyMouseAdapter 继承MouseAdapter

重写mousePressed方法public void mousePressed(MouseEvent e)

根据当前游戏状态,更改鼠标点击后状态及对应对象坐标。

创建action方法,添加鼠标监听事件

26d7f1d9e408554d7fd788b887b3e443.png

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

2068c96a1c59d1079a01e01e583d3629.png

(5).创建Game.java作为运行主类,原理:

Main方法中创建JFrame对象,将BirdGame面板实例化后添加进JFrame对象中,最后调用BirdGame对象的action方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值