
《Java 语言程序设计》大作业报告
题目——大鱼吃小鱼
学 号:
姓 名:
时 间: 年 月 日

一、程序的功能介绍
本游戏是一款以海底为故事背景的动作类游戏。主角为一只海底的可爱鱼,玩家
需要操作主角尽量多吃比自己小的鱼,躲避比自己大的鱼.使自己不被大鱼吃掉。
在此过程中主角还会随着吃到的鱼的数量增加,而体型增大。变大后的主角可食
范围也会跟着加大,这样主角就可以吃掉之前吃不了的鱼
二、开发工具
JDK(Java Development Kit)
JDK 是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的 java
应用程序。JDK 是整个 java 开发的核心,它包含了 JAVA 的运行环境(JVM+Java
系统类库)和 JAVA 工具。
IDEA 集成开发工具
IDEA 全称 IntelliJ IDEA,是 java 编程语言开发的集成环境。IntelliJ 在业界被
公认为最好的 java 开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE
支持、各类版本工具(git、svn 等)、JUnit、CVS 整合、代码分析、 创新的 GUI
设计等方面的功能可以说是超常的。IDEA 是 JetBrains 公司的产品,这家公司
总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它
的旗舰版本还支持 HTML,CSS,PHP,MySQL,Python 等。免费版只支持
Java,Kotlin 等少数语言。
三、小组分工
Xxx 负责 xx 类/模块的编写
Xxx 负责 xx 类/模块的编写
Xxx 负责 xx 类/模块的编写
Xxx 负责 xx 类/模块的编写
四、核心代码
4.1、敌方鱼的父类代码设计

public class Enamy {
//定义图片
Image img;
//定义物体坐标
int x;
int y;
int width;
int height;
//移动速度
int speed;
//方向
int dir = 1;
//类型
int type;
//分值
int count;
//绘制自身方法
public void paintSelf(Graphics g){
g.drawImage(img,x,y,width,height,null);
}
//获取自身矩形用于碰撞检测
public Rectangle getRec(){
return new Rectangle(x,y,width,height);
}
}
说明:定义敌方鱼的父类 Enamy 类,在这个父类中定义属性图片、物体坐标、移动速度、
方向、类型、分值等属性,定义 paintSelf 方法来绘制自身,定义 getRec 方法来实现角色鱼
和敌方鱼直接的碰撞检查
4.2、四种不同的敌方鱼代码设计
class Enamy_1_L extends Enamy{
Enamy_1_L(){
this.x = -45;
this.y = (int)(Math.random()*700+100);
this.width = 45;
this.height = 69;
this.speed = 10;
this.count = 1;
this.type = 1;
this.img = GameUtils.enamy1_img;
}
}
class Enamy_1_R extends Enamy_1_L{
Enamy_1_R(){

this.x = 1400;
dir = -1;
this.img =GameUtils.enamyr_img;
}
}
class Enamy_2_L extends Enamy{
Enamy_2_L(){
this.x = -100;
this.y = (int)(Math.random()*700+100);
this.width = 100;
this.height = 100;
this.speed = 5;
this.count = 2;
this.type = 2;
this.img =GameUtils.enamyl_2img;
}
}
class Enamy_2_R extends Enamy_2_L{
Enamy_2_R(){
this.x = 1400;
dir = -1;
this.img = GameUtils.enamyr_2img;
}
}
class Enamy_3_L extends Enamy{
Enamy_3_L(){
this.x =-300;
this.y = (int)(Math.random()*700+100);
this.width = 300;
this.height = 150;
this.speed = 20;
this.count = 3;
this.type = 3;
this.img =GameUtils.enamyl_3img;
}
@Override
public Rectangle getRec(){
return new Rectangle(x+40,y+30,width-80,height-60);
}
}
class Enamy_3_R extends Enamy_3_L{
Enamy_3_R(){
this.x = 1400;
dir = -1;

this.img =GameUtils.enamyr_3img;
}
}
class Enamy_Boss extends Enamy{
Enamy_Boss(){
this.x = -1000;
this.y = (int)(Math.random()*700+100);
this.width = 200;
this.height = 200;
this.speed = 80;
this.count = 0;
this.type = 10;
this.img = GameUtils.bossimg;
}
说明:定义三种不同的敌方种类鱼和大 Boss,由于在海图地图中敌方鱼会从左右两边随机
出现,所以这里的三种鱼都分左右,并分别在它们的构造方法中定义它们初始化时的坐标位
置和速度等属性
4.3、游戏工具类代码设计
package com.sxt;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;
public class GameUtils {
//方向
static boolean UP =false;
static boolean DOWN =false;
static boolean LEFT =false;
static boolean RIGHT =false;
//分数
static int count = 60;
//关卡等级
static int level = 0;
//敌方鱼类集合
public static List<Enamy> EnamyList = new ArrayList<>();
//背景图