FlappyBird开发帮助文档

项目需求

完成FlappyBird游戏。

功能说明:

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

界面需求:

开始界面:

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

游戏结束时界面:

性能规定:

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

开发步骤:

项目包含主程序类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方法

(3).创建Bird.java类

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

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

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

创建柱子碰撞检测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方法绘制界面

显示分数

定义内部类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方法。

FlappyBird开发帮助文档的更多相关文章

  1. Enterprise Solution 2.2 开发帮助文档集合

    首先是一个PPT文档,从宏观层面展示Enterprise Soltion的几个功能特色. Enterprise Solution解决方案安装与配置 将源代码解决方案和演示程序在电脑中进行配置,作为了解 ...

  2. WEB前端开发规范文档(转)

    http://codeguide.bootcss.com/  编写灵活.稳定.高质量的 HTML 和 CSS 代码的规范上面的文档 再结合下面的规范: 无论是从技术角度还是开发视角,对于web前端开发 ...

  3. Android APP开发需求文档范本

    Android  APP开发需求文档范本 软件需求文档格式的标准写法 1.引言 1.1 编写目的 • 阐明开发本软件的目的: 1.2 项目背景 • 标识待开发软件产品的名称.代码: • 列出本项目的任 ...

  4. 网站开发进阶(三十八)Web前端开发规范文档你需要知道的事

    Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...

  5. Web前端开发规范文档你需要知道的事

    Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...

  6. jcseg-1.8.7版本发布 - 多配置适应+完整开发帮助文档

    jcseg是使用java开发的一款开源中文分词器, 并且提供了最新版本的lucene和solr分词接口. jcseg 1.8.7版本发布了: 1. 更改了内部设计, 加入JcsegTaskConfig ...

  7. WEB前端开发规范文档[转]

    为新项目写的一份规范文档, 分享给大家. 我想前端开发过程中, 无论是团队开发, 还是单兵做站, 有一份开发文档做规范, 对开发工作都是很有益的. 本文档由本人编写, 部分意见来源于网络, 以此感谢, ...

  8. app开发需求文档怎么写

    我们在开发app前都会做需求分析,这个app开发需求文档怎么写呢?一般可以从这几点入手:确定APP方案的目标,APP方案的受众分析,APP开发方案功能设计,APP的操作系统说明方案,APP是是否是原生 ...

  9. javadoc 工具生成开发API文档

    =====================先来一点成就感===================== package com.springMybatis.dao; import com.springMy ...

随机推荐

  1. Linux内核分析--进程创建,执行,切换

    学号:351 原创作品转载请注明出处本实验来源 https://github.com/mengning/linuxkernel/ 实验要求 从整理上理解进程创建.可执行文件的加载和进程执行进程切换,重 ...

  2. Triangle Count

    Given an array of integers, how many three numbers can be found in the array, so that we can build a ...

  3. Eclipse控制台输出log日志中文乱码

    今天在工作中,调试程序的时候突然发现控制台的log日志,输出的中文全都是乱码. 看到这就在想,这是项目编码还是log.xml编码配置被改掉了呢?于是统统检查了一遍发现所有的编码格式都是统一用的utf- ...

  4. Linux内核数据结构之kfifo详解

    本文分析的原代码版本: 2.6.24.4 kfifo的定义文件: kernel/kfifo.c kfifo的头文件: include/linux/kfifo.h kfifo是内核里面的一个First ...

  5. react Hooks

    useEffect 1.useEffect是didMount和didUpdate和willUnmount三个函数的集合 2.useEffec(fun):fun会在每次组件render之后执行,而fun ...

  6. C++之 自定义数据类型 枚举、结构体、共用体

    1.枚举 枚举类型的声明形式为:   enum  枚举类型名   {  变量值列表 };    变量值列表里都是整型变量,另外不要忘记最后面的分号! 比如,enum  weekday   { sun, ...

  7. Java——重写

    重写面向对象编程的三大特征之一 1.子类重写了父类的方法,则使用子类创建的对象调用该方法时,调用的是重写后的方法,即子类中的方法 2.子类重写父类方法需满足以下条件: (1)方法名和参数列表: 子类重 ...

  8. Java并发知识分享

    volatile的内存语义 从JSR-133(即从JDK1.5开始),volatile变量的写-读可以实现线程之间的通信 当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值刷 ...

  9. 20165214 2018-2019-2 《网络对抗技术》Exp1+ 逆向进阶 Week4

    <网络对抗技术>Exp2 PC平台逆向破解之"MAL_简单后门" Week4 一.实验内容 Task1 自己编写一个64位shellcode.参考shellcode指导 ...

  10. [转载] java多线程总结(三)

    转载自: http://www.cnblogs.com/lwbqqyumidi/p/3821389.html 作者:Windstep 本文主要接着前面多线程的两篇文章总结Java多线程中的线程安全问题 ...