JAVA课程设计飞机大战
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
返回目录
功能分析
1.游戏程序是一项精度要求很高的程序系统,因为其代码利用率 很高。一个实时运 行的最终作品,每秒都会运行成千上万行程序, 绘图事件、键盘事件都会以极高的频率在 后台等待响应,若有丝 毫的差别都将很容易导致程序在运行不久后可能出现严重错误, 甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发 生的事件及意外情况考虑在设计中。 2.游戏中为了美观,适用性强,可能需要采用外部文件引入的图 片贴图,有关贴图, 在 MIDP2.0 中提供了用于增强游戏功能的 game 包,使得解决静态或动态、画面背景、屏 幕刷新的双缓冲 等都有较好的解决方案。
• X_MARK_IMG; • public static Image NUMBER_0_IMG; • public static Image NUMBER_1_IMG; • public static Image NUMBER_2_IMG; • public static Image NUMBER_3_IMG; • public static Image NUMBER_4_IMG; • public static Image NUMBER_5_IMG; • public static Image NUMBER_6_IMG; • public static Image NUMBER_7_IMG; • public static Image NUMBER_8_IMG; • public static Image NUMBER_9_IMG •
• • • • • •
•
• • •
•
• •
•
图像调用类 Images.java: package com.beancore.util; import java.awt.Image; public class Images { public static Image GAME_LOADING_IMG1; public static Image GAME_LOADING_IMG2; public static Image GAME_LOADING_IMG3; public static Image GAME_LOADING_TEXT_IMG; public static Image SHOOT_BACKGROUND_IMG; public static Image MY_PLANE_IMG; public static Image MY_PLANE_FLYING_IMG; public static Image YELLOW_BULLET_IMG; public static Image
• 创建子弹类型类 BulletType.java: • package com.beancore.config; • public enum BulletType { • YELLOW_BULLET, BLUE_BULLET • }
• 创建发射物类型类 CatchableWeaponType.j ava: • package com.beancore.config; • public enum CatchableWeaponType { • BOMB, DOUBLE_LASER • }
• • • •
•
•
•
• • •
设定炸弹类 Bomb.java: package com.beancore.entity; import com.beancore.config.CatchableW eaponType; import com.beancore.ui.GamePlayingPa nel; public class Bomb extends CatchableWeapon { public Bomb(GamePlayingPanel gamePlayingPanel, CatchableWeaponType weaponType) { super(gamePlayingPanel, weaponType); } }
13计科二班
目录
绪论
功能分析
系统设计
制作感言
绪论
游戏应具备的特征
游戏开发背景
游戏应具备的特征
一个游戏应该具有以下特征: 易于学习: 既然游戏面向的是普通消费者,那么他们不可能深 入的学习游戏技巧。保持游戏 的简单是最基本的要求。 可中断性: 用户常常在任务之间有一小段时间。所以一个好的 游戏应该提供短时间的娱乐功能,并且允许用户在游戏 和工作 模式之间顺利切换。 基于订阅:手机游戏的盈利成功取决于他们巨大的使用量。如 果一个手机游戏开发者要赢利的话,重要的是同一个游戏引擎, 多个 标题,基本的故事情节类似。
返回目录
系统设计
主类Main.java: • package com.beancore; • import com.beancore.ui.MainFrame; • public class Main { • public static void main(String args[]) throws InterruptedException { • MainFrame mainFrame; • try { • mainFrame = new MainFrame(); • mainFrame.loadGame(); • } catch (Exception e) { • e.printStackTrace(); • } • } • }
返回目录
Java学习已经近3个多月了,在学习 的过程中,对它有了一些体会。 我本人觉得JAVA不仅是一门计算机 语言,也还同样是人类发明的语言,如 果我们像学习母语一样认真地对待它, 时时刻刻使用它,熟透它,我相信我们 一定能够很好的使用它。而且JAVA应 该比人类语言更容易学习,只要你有一 种必胜学习JAVA心态就一定可以成功。 相信自己,就是胜利。 在JAVA的学习过程中,我们首先要做 到课前、课后认真地复习及预习。上课 听讲,下课自己试着遍一遍简单的小程 序,只有在学习的过程中你才会发现你 的不足与缺点。
• 设定敌舰类型类 EnemyPlaneType.java: • package com.beancore.config; • public enum EnemyPlaneType { • SMALL_ENEMY_PLANE, BIG_ENEMY_PLANE, BOSS_ENEMY_PLANE • }
游戏开发背景
基于游戏应具备的特征,我们小组准备开发一款简单易 懂,便于操作,又兼备可中断性的游戏,于是我们想到了飞 机大战。 作为现代社会的大学生,我们非常了解青年人对游戏的 兴趣和要求,想要使一款游戏受到欢迎,清新好看的画面, 巧妙的情节构思和可提升的操作技巧都是不可或缺的。 我们所设计的飞机大战,因为大家能力有限,所以还有 很多地方需要改进。但是我们始终奉行着以上的原则,希望 以后做出来的成品会越来越好~
• BLUE_BULLET_IMG; • public static Image SMALL_PLANE_IMG; • public static Image BIG_PLANE_IMG; • public static Image BOSS_PLANE_IMG; • public static Image BOMB_IMG; • public static Image DOUBLE_LASER_IMG; • public static Image CAUGHT_BOMB_IMG; • public static Image SMALL_PLANE_FIGHTING_IMG; • } • public static Image SMALL_PLANE_KILLED_IMG; • public static Image • SMALL_PLANE_ASHED_IMG; • public static Image
• LineUnavailableException, UnsupportedAudioFileException, IOException { • File file = new File(filePath); • AudioInputStream audioInputStream = AudioSystem.getAudioInputStrea m(file); • clip = AudioSystem.getClip(); • clip.open(audioInputStream ); • } • public void play() { • clip.setFramePosition(0); • clip.start(); • } • public void loop() { • clip.loop(Clip.LOOP_CONTIN UOUSLY); • } • public void stop() { • clip.stop();}}
• BIG_PLANE_FIGHTING_IMG; • public static Image BIG_PLANE_HITTED_IMG; • public static Image BIG_PLANE_BADDLY_WOUNDED_ IMG; • public static Image BIG_PLANE_KILLED_IMG; • public static Image BIG_PLANE_ASHED_IMG; • public static Image BOSS_PLANE_FIGHTING_IMG; • public static Image BOSS_PLANE_HITTED_IMG; • public static Image BOSS_PLANE_BADDLY_WOUNDE D_IMG; • ; public static Image BOSS_PLANE_KILLED_IMG; • public static Image BOSS_PLANE_ASHED_IMG; • public static Image SCORE_IMG; • public static Image
功能分析
3. 玩家飞机的运行可以通过鼠标响应事件控制,但敌方则因为是 自动运行,就需要 有一定的智能性;敌人飞机的运行算法也要进 行相关的设置,已免游戏过于简单。 4.对于双方的飞机应该赋予不同的速度,同时,程序应该设定敌 人飞机的子弹不与敌人的飞机进行碰撞检测,已增加游戏的可玩 性。 5. 双方的飞机在前进时也需要考虑到是否碰撞到对方飞机,以 免重叠运行,造成许 多物理上不可能的情况,缺乏真实感。每一 次刷新页面、每前进一步都需要进行相关的碰 撞检测。
• • • • • •
• • • • • • •
背景音乐调用类 SoundPlayer.java: package com.beancore.util; import java.io.File; import java.io.IOException; import javax.sound.sampled.AudioInputS tream; import javax.sound.sampled.AudioSyste m; import javax.sound.sampled.Clip; import javax.sound.sampled.LineUnavail ableException; import javax.sound.sampled.Unsupporte dAudioFileException; public class SoundPlayer { private Clip clip; public SoundPlayer(String filePath) throws
源自文库
功能分析
8. Java 是基于虚拟机的半解释型编译系统,其执行效率较 C++ 等完全编译后的程序会低很多,程序如果不进行精简和优化,将 可能导致运行的不流畅。除开发过程中对结构 上的控制、变量的 使用、算法的优化等优化外,还可以使用混淆器(Obfuscator)进 行程序 打包后的优化。 9. 游戏的结束、开始、动态信息画面作为构成一个程序都是必 不可少的重要部分。 良好的用户界面更是吸引用户的硬指标,相 关的美术构图和人性化设置也需要有一定的考 虑。