16 Star 47 Fork 26

雨碎江南 / JavaFishlordGame

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 1.84 KB
一键复制 编辑 原始数据 按行查看 历史
雨碎江南 提交于 2015-04-12 22:47 . init

Java项目——捕鱼达人

需求分析

  • 在鱼池中有很多鱼,鱼各自游动。
  • 有一张渔网,随鼠标移动,点击鼠标可以抓取渔网中的鱼。
  • 抓到鱼进行计分。

功能分析

业务对象模型(“找对象”,理清对象之间的关系)---->数据模型(用合理的数据模型描述对象)----->类的设计(根据对象关系和数据模型设计类)。

业务对象模型——找对象

窗口、鱼池、多条鱼、渔网。

对象之间的关系

这种关联关系可以使用类的属性来描述。

数据模型

绘图的位置

鱼在屏幕上移动实际上就是矩形的左上角的坐标发生了变化。

如何实现捕鱼?

渔网的范围和鱼的范围重叠。——判断一个点是否在矩形范围之内即可。同理:打飞机的游戏也可以依照这种算法实现。

怎样判断是否捕鱼成功

类的设计

类模型

  • 由于每条鱼的行为不一样,所以要继承线程类,实现并发——屏幕上有多条鱼各自移动。
  • 鱼池继承JPannel,并引入自己的新的属性:鱼和鱼池。

类的详细设计

鱼类的详细设计

各个属性的说明如下:

  • step:鱼的移动速度
  • Images:鱼图片的数组
  • Image:当前正在显示的鱼的图片
  • Index:帧

如何实现诸如鱼的摆尾这样的动画效果?

我们只需要将鱼的所有运动的帧放入到一个图片数组,逐帧改变背景图片,由于人眼的视觉暂留,就会产生动画效果。

如何循环显示不同的图片

不断对Index进行自增取余运算,就类似于数据结构中的循环队列那样处理即可。

Java
1
https://gitee.com/gaopengfei/JavaFishlordGame.git
git@gitee.com:gaopengfei/JavaFishlordGame.git
gaopengfei
JavaFishlordGame
JavaFishlordGame
master

搜索帮助