文章目录
- 前言
- 一、项目设计
-
* 1\. 模块设计
-
* 功能需求
- 游戏状态控制功能模块
- 游戏难度的调整模块
- 游戏界面绘画功能模块
- 玩家游戏控制功能模块
- 2. 实现效果
-
- 二、部分源码
- 项目源码
前言
今天学长向大家分享一个 java项目:
基于Java的飞机大战游戏的设计与实现
项目分享:见文末!
一、项目设计
1. 模块设计
功能需求
飞机大战主要需要我方飞机和敌方飞机,还有子弹,特殊nPC,开始背景,结束背景,以及背景音乐。我方飞机可以随意移动,敌方飞机无规律出现。游戏玩家通过鼠标移动控制飞机移动,我方飞机在游戏开始时就一直能发射子弹,当我方子弹碰到敌方飞机时,敌方飞机消失。当玩家飞机碰到敌方子弹时,生命值减一,直到玩家飞机生命值为一时,游戏结束。
基于Java的飞机大战游戏的设计与实现有以下几个模块:
- (1)游戏状态控制功能模块
- (2)游戏难度的调整模块
- (3)游戏界面绘画功能模块
- (4)玩家游戏控制功能模块
游戏状态控制功能模块
游戏的状态控制包括运行及结束游戏,首先进入游戏的开始页面,在游戏进行时,玩家必须躲避或者击落敌方飞机,玩家飞机的生命值降低为0的时候游戏就会结束,弹出游戏结束界面。
游戏难度的调整模块
玩家玩的时间越长游戏的难度越高,敌方飞机的数量越多、敌方飞机出现的频率越高,玩家保证飞机的存活的难度越高,操作难度相应也高。
游戏界面绘画功能模块
左上角会显示玩家飞机当前生命值,游戏时间,当前分数,其他地方用来输出玩家对我方飞机的控制与敌方飞机的动作显示
玩家游戏控制功能模块
玩家可以通过控制鼠标或者键盘来控制方飞机(Hero airplane)的移动。
2. 实现效果
功能太多,学长这里就不一 一展示了
二、部分源码
源码非常多,文章篇幅有限,这里就不放上来了,仅展示小部分关键代码,有需要的同学到文章末尾链接获取源码
部分代码示例:
游戏初始化代码如下:
*
* 写于3月20日,主要目的:完成游戏的初始化过程
public final void paint(Graphics g) {
g.setColor(this.bgColor);
g.fillRect(x, y, width, height);
g.setColor(this.fgColor);
g.drawRect(x, y, width, height);
this.paintBoxContents(g);
}
private void paintBlock(int x, int y, int blockType, Graphics g) {
int blockX = this.boardX + (this.blockSize * x);
IntblockY=this.boardY+(this.blockSize(y-TetrisConstants.TOP_
VISIBLE_ROW));
if(TetrisConstants.BLOCK_EMPTY != blockType) {
g.setColor(TetrisConstants.COLOR_BLACK);
g.fillRect(blockX + 1, blockY + 1, this.blockSize - 1, this.
blockSize - 1);
this.setColor(blockType, g);
g.fillRect(blockX, blockY, this.blockSize - 1, this.blockSize - 1);
}
else {
g.setColor(TetrisConstants.COLOR_WHITE);
g.fillRect(blockX, blockY, this.blockSize, this.blockSize);
}
}
项目源码
项目分享:见文末!