FlappyBird开发帮助文档
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开发帮助文档的更多相关文章
- Enterprise Solution 2.2 开发帮助文档集合
首先是一个PPT文档,从宏观层面展示Enterprise Soltion的几个功能特色. Enterprise Solution解决方案安装与配置 将源代码解决方案和演示程序在电脑中进行配置,作为了解 ...
- WEB前端开发规范文档(转)
http://codeguide.bootcss.com/ 编写灵活.稳定.高质量的 HTML 和 CSS 代码的规范上面的文档 再结合下面的规范: 无论是从技术角度还是开发视角,对于web前端开发 ...
- Android APP开发需求文档范本
Android APP开发需求文档范本 软件需求文档格式的标准写法 1.引言 1.1 编写目的 • 阐明开发本软件的目的: 1.2 项目背景 • 标识待开发软件产品的名称.代码: • 列出本项目的任 ...
- 网站开发进阶(三十八)Web前端开发规范文档你需要知道的事
Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...
- Web前端开发规范文档你需要知道的事
Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...
- jcseg-1.8.7版本发布 - 多配置适应+完整开发帮助文档
jcseg是使用java开发的一款开源中文分词器, 并且提供了最新版本的lucene和solr分词接口. jcseg 1.8.7版本发布了: 1. 更改了内部设计, 加入JcsegTaskConfig ...
- WEB前端开发规范文档[转]
为新项目写的一份规范文档, 分享给大家. 我想前端开发过程中, 无论是团队开发, 还是单兵做站, 有一份开发文档做规范, 对开发工作都是很有益的. 本文档由本人编写, 部分意见来源于网络, 以此感谢, ...
- app开发需求文档怎么写
我们在开发app前都会做需求分析,这个app开发需求文档怎么写呢?一般可以从这几点入手:确定APP方案的目标,APP方案的受众分析,APP开发方案功能设计,APP的操作系统说明方案,APP是是否是原生 ...
- javadoc 工具生成开发API文档
=====================先来一点成就感===================== package com.springMybatis.dao; import com.springMy ...
随机推荐
- MySql主从搭建详细步骤
环境: linux64位,一台机器两个实例,主库3306端口,从库3307端口 步骤: 一.下载安装 先下载安装mysql,这里使用了5.7.21版本,具体过程不做详细说明,可自行查资料如何下载 二. ...
- Java 平时作业六
编写一个 Java 应用程序,使用 Java 的输入输出流技术将 Input.txt 的内容(Input.txt 为文本 文件)逐行读出, 每读出一行就顺序为其添加行号(从 1 开始,逐行递增),并写 ...
- fdisk -l查看硬盘分区信息及硬盘分区介绍
原文:https://blog.csdn.net/a1809032425/article/details/79692035 linux fdisk 命令和df区别是什么? fdisk工具是分区工具:d ...
- 安装oracle11g client 【INS-30131】执行安装程序验证所需的初始设置失败的解决方法
今天在服务器(操作系统windows server 2008R2)上安装Oracle11g 客户端,弹出“执行安装程序验证所需的初始设置失败”,如上图.网上找了一些方法,简单整理如下,仅供参考. 问题 ...
- 将一个float型转化为内存存储格式的步骤
将一个float型转化为内存存储格式的步骤为: (1)先将这个实数的绝对值化为二进制格式. (2)将这个二进制格式实数的小数点左移或右移n位,直到小数点移动到第一个有效数字的右边. (3)从小数点右边 ...
- Centos7.4 防火墙配置
# service firewalld status; #查看防火墙状态 (disabled 表明 已经禁止开启启动 enable 表示开机自启,inactive 表示防火墙关闭状态 activate ...
- iOS常用算法
1.冒泡排序 冒泡算法是一种基础的排序算法,这种算法会重复的比较数组中相邻的两个元素,如果一个元素比另一个元素大/小,那么就交换这两个元素的位置.重复一直比较到最后一个元素. 1.最差时间复杂度:O( ...
- Python 验证线程是数据共享的
import os import time from threading import Thread # from multiprocessing import Process #通过对全局变量的修改 ...
- JSF的分析
一.JSF的有关定义 JavaServer Faces (JSF) 是一种用于构建Java Web 应用程序的标准框架 它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开发 ...
- java后台常见问题
Java后台面试 常见问题 Nginx负载均衡 轮询.轮询是默认的,每一个请求按顺序逐一分配到不同的后端服务器,如果后端服务器down掉了,则能自动剔除 ip_hash.个请求按访问IP的hash结果 ...