一、需求分析:

反应速度的快慢、注意力的集中成度都是一个人综合素质的一部分。

而这些都是可能通过后天的训练得到加强的,于是有一款能训练人思维、反应速度的小游戏便十分必要了。

游戏需要包括界面、背景、障碍物、游戏提示、及用户可以操控的飞机等。

二、概要设计:

[img]http://dl.iteye.com/upload/attachment/333949/d0cccbbf-3b71-3468-9caa-4752f16c51e1.bmp[/img]

各个功能通过各自的类来完成。

三、详细设计:

1、游戏中用户形状为三角形,并可根据左右移动的情况改变形状,同时,在用户与障碍物碰撞之后,会产生毁灭效果,程序的可视化效果突出。

2、游戏的背景采用全黑,同时使用多个线程模拟出的灰色不同速率向下移动象素点构造出一种动态的太空效果。

3、游戏对于用户与障碍物的判断采用了点是否在多边形内的面积判断算法。

4、对于游戏的障碍物,采用了图片的方式进行绘制。

5、程序提供了多个可扩展的函数、变量等,方便游戏的升级。

四、程序结构

1、程序结构说明:

本程序采用模块化设计方法,各个功能的实现都有具体的方法,在主函数调用相应的方法即可实现程序的要求。程序的整体性很强。

2、重要数据说明:

本程序中定义long类型的时间变量,用来获取系统时间。

3、函数清单:

/*

* 显示界面并添加对应器件的方法

*/

public void showUI()

/*

* 显示开始的方法

*/

public void showStart()

/*

* 定义一个显示背景的方法

*/

public void showBackground()

/*

* 定义一个显示子弹的方法

*/

public void showBullets()

User类中:

/*

* 定义一个死亡后的效果显示方法

*/

public void deadshow()

//写run方法

public void run()

BackgroundNode类中:

//写run方法

public void run()

BulletThread类中:

//写run方法

public void run()

ShowTime类中:

ShowTime类中:

//写run方法

public void run()

五、调试分析:

1、程序截图:

[img]http://dl.iteye.com/upload/attachment/333951/0670efc3-0740-3250-a5d7-20828d5447d8.bmp[/img]

开始界面。

[img]http://dl.iteye.com/upload/attachment/333953/1ef6001e-e070-385d-b680-32abd5cf2b6b.bmp[/img]

游戏界面

[img]http://dl.iteye.com/upload/attachment/333955/fc75a9c2-8a59-3bc6-9af1-29566380fae5.bmp[/img]

死亡界面1

[img]http://dl.iteye.com/upload/attachment/333958/4ca86a5b-d457-3c9a-a6a3-9a7d152df070.bmp[/img]

死亡界面2

2、程序调试

在调试中发现程序在键盘同时按下两个键的情况下不会产生相应的效果。对KEYACTIONLISTENER中相应的代码进行增添后得到结果。

六、总结:

1、程序设计难点:

本程序的难点在于判断碰撞算法的设计及在保证屏幕不闪下重绘方法的使用。

2、程序设计中的不足:

本程序在动态效果及界面设置等诸多方面还有很大不足,还需要进一步完善。

3、训练体会:

这次训练是我第一次使用到添加键盘方法。并通过自己的学习掌握了键盘方法的使用及多个键同时按下的使用方法;同时,程序还是大量运用到了Jframe里的相关操作,使我对于Jframe的运用更加熟悉,同时,对于其repaint方法的掌握也更加到位;再同时,我运用到了面积判断点是否包含在面内的算法,增加自己的知识面及将数学理论用于实际。

感悟:

1.

纸上得来终觉浅,绝知此事要躬行!

任何看起来很简单的事情,做起来未必简单!

2.

数学真的很重要!

3.

细心是一个程序员必备的素质!

4.

学会解决问题!

java一个球左右躲避障碍_java 飞机躲避小游戏分析及实现[源码][附图]相关推荐

  1. JS实现飞机大战小游戏 超详细 附源码和原图

    目录 效果展示 源码 HTML CSS JS 原图 效果展示 HTML+CSS+JS做打飞机小游戏 开始界面 选择你喜欢的飞机开始游戏 按下空格键 开始/暂停  有三种敌机 可以设置飞机生命值,生命值 ...

  2. 编程语言用 Java 开发一个打飞机小游戏(附完整源码)

    编程语言用 Java 开发一个打飞机小游戏(附完整源码) 上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过 ...

  3. 基于JAVA融呗智慧金融微资讯移动平台小程序端计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA融呗智慧金融微资讯移动平台小程序端计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA融呗智慧金融微资讯移动平台小程序端计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技 ...

  4. java整蛊小游戏源码_Java 开发打飞机小游戏(附完整源码)

    上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐.代码 ...

  5. java飞机场模拟程序_java 飞机大战 小游戏源码

    [实例简介] 本项目是一个使用java做的一个飞机大战的小游戏,一个英雄机,初始有三次生命,当打中蜜蜂会有一次生命奖励,当打中敌机会有相应分数奖励,但如果被敌机打中会失去一次生命机会.如果生命都失去, ...

  6. Java 开发打飞机小游戏(附完整源码)

    上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐.代码 ...

  7. java贪吃蛇游戏代码下载_java实现贪吃蛇游戏代码(附完整源码)

    免费资源网,https://freexyz.cn/ 先给大家分享源码,喜欢的朋友点此处下载. 游戏界面 GUI界面 java实现贪吃蛇游戏需要创建一个桌面窗口出来,此时就需要使用java中的swing ...

  8. Java打飞机小游戏(附完整源码)

    写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐.代码写的很 ...

  9. java贪吃蛇代码_java实现贪吃蛇游戏代码(附完整源码)

    先给大家分享源码,喜欢的朋友点此处下载. 游戏界面 GUI界面 java实现贪吃蛇游戏需要创建一个桌面窗口出来,此时就需要使用java中的swing控件 创建一个新窗口 JFrame frame = ...

  10. java如何统计系统浏览人数_java网站如何统计访问量和在线人数实例源码

    java网站如何统计访问量和在线人数实例源码.简言之,如果不用第三方提供的接口 那最好的解决方案应该是当SESSION建立时sessionCreated(),在访问总数和当前在线人数上+1 当SESS ...

最新文章

  1. diy手工制作泡沫小球_废物利用手工DIY教程。一次性筷子变废为宝,手工制作木屋模型...
  2. 未来流媒体工作流的核心技术
  3. HTML基础之bit哥的反客为主之道(9)
  4. 惊了!日本街头出现透明公厕,竟有人排队抢着上!
  5. 洛谷P3273 [SCOI2011] 棘手的操作 [左偏树]
  6. 微信暗黑模式终于来了!这次微信对苹果认怂了?腾讯张军回应...
  7. 用Java实现非阻塞通信
  8. 利用dlib库(Python)实现实时(摄像头)人脸检测以及特征点标定(landmark))
  9. python微信语音转发方法_涨知识,微信语音能转发给别人啊,方法还那么简单
  10. 小米 信号测试软件,如何测试出本地的联通、电信、移动信号网络的强弱?
  11. 计算机c盘丢失,电脑c盘数据丢失怎么恢复图文教程
  12. 基于属性词补全的武器装备属性抽取研究
  13. pk 打包文件_【旅行】同样是旅行,为啥中国人喜欢拉行李箱,老外喜欢背大包?附干货:行李打包锦囊...
  14. ADSL上网全攻略——故障解决
  15. 百度地图显示多个标注点
  16. 【JZOJ 5776】【NOIP2008模拟】小x游世界树 (树)
  17. CSS的文本属性阴影效果
  18. android一键清理任务,Android 一键清理、内存清理功能实现
  19. 深入解读云场景下的网络抖动
  20. 计算机直接切换到桌面,屏幕如何快速切换桌面

热门文章

  1. Oracle的软解析(soft prase)和硬解析(hard prase)
  2. day2 用户体验及用户需求(用户体验五要素、需求、需求收集、需求池)
  3. awesome-git 中文版,收集常用 Git 教程、工具 の 资源库
  4. SpaceSyntax【空间句法】之DepthMapX学习:唠叨(目录)
  5. Ubuntu连接IKEv2
  6. 不规则图片显示(css实现多边形)
  7. vue activated,deactivated生命周期的使用
  8. JVM(6)之 二次标记
  9. Oculus客户端在Win10上面无法安装或者登陆的解决方法
  10. uniapp实现退款理由的界面