GitHub上Java捕鱼达人源码分析(fishlord)

  看到CSDN首页有介绍Java编写的捕鱼达人的文章,于是在GitHub上搜了几个Java编写的开源的仿捕鱼达人的项目,准备学习一下编写思路。本文介绍其中比较简单的一个项目fishlord,GitHub地址为:https://github.com/tengqianan/fishlord,该项目逻辑比较简单,代码实现主要集中在一个文件中。项目下载方式参考之前写的在Eclipse中用git方式下载源码。

程序效果

  首先看看程序的执行效果,如下图所示:
在这里插入图片描述
  程序启动后,鱼在窗口右侧随机出现,从右往左游。网随着鼠标移动(简单程序,没有大炮),网的中心与鱼重叠,点击鼠标即将鱼捕到。每捕获一条鱼,左上角的积分就会变化,同时在窗口右侧会随机位置出现相同类型的一条鱼。

程序分析

  从程序效果可以看出,本项目是捕鱼达人游戏的极度简化版,鱼没有那么多,也没有大炮等刀具。程序主要就四个类,如下图所示:
在这里插入图片描述

  • Fishlord:main函数所在类,主要作用就是创建程序窗口,加载Pool控件。
  • Pool:该类继承自jpanel控件,主要用途有:1)显示背景图片;2)显示网(Net类),网随鼠标移动;3)显示鱼(fish),程序默认初始化9条鱼;4)处理鼠标进入、进出、移动和点击事件;5)在鼠标点击事件中处理捕鱼动作;6)在控件左上角显示积分;7)每80毫秒触发重绘事件。
  • fish:该类继承自thread类。程序资源中有多种类型的鱼,但是程序只用了前9种鱼,每种鱼有9种动作图片,保存在fishimages属性中,然后没50毫秒切换鱼的动作图片,当前动作图片保存在fishimage属性中,并在Pool的paint事件中绘制。鱼的初始x坐标是固定的,在窗口右侧,y坐标和移动速度在fish类的构造函数中随机产生。每当鱼被捕获或是游到了窗口左侧,则重新生成鱼的移动速度和y坐标,x坐标依旧在窗口右侧,鱼的种类不变。
  • Net:主要记录网的图片及网的中心坐标。

  本程序的实现比较简单,距离真正的捕鱼达人的功能还有差距。后续会接着分析功能比较齐全的项目代码。

发布了157 篇原创文章 · 获赞 102 · 访问量 45万+

猜你喜欢

转载自blog.csdn.net/gc_2299/article/details/103843313
今日推荐