今天为大家分享大鱼吃小鱼游戏开发与制作。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步

开发环境

开发语言为Java,开发环境Eclipse或者IDEA都可以。运行主程序,或者执行打开JAR文件即可以运行本程序。

系统框架

利用JDK自带的SWING框架开发,不需要安装第三方JAR包。纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档

主要功能

对FishFrame.java点右键,run as Application,启动大鱼吃小鱼得游戏。

点击enter键,开始玩游戏

通过键盘的上下左右四个方向的键盘控制大鱼的方向,当大鱼和随机游过来的小于发生碰撞的时候,表示吃掉相应的小于,分数加10分。大鱼的战斗力相应增加。

一局游戏最多5分钟,超过5分钟,游戏结束。

屏幕的最顶端显示游戏当前得分和,大鱼的战斗力。随着游戏的不断推进,数字不断进行更新。

实现效果

1 游戏界面1

2 游戏界面2

核心代码

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;import javax.swing.ImageIcon;
import javax.swing.JPanel;public class FishPanel extends JPanel{//标识状态0开始,1运行,2暂停,3是结束public int state=START;public static final int START=0;public static final int RUNNING=1;public static final int PAUSE=2;public static final int GAMEOVER=3;Image bkImg = new ImageIcon("images/bg.jpg").getImage();Image over = new ImageIcon("images/bg.jpg").getImage();Image zan = new ImageIcon("images/bg.jpg").getImage();Image start = new ImageIcon("images/start.png").getImage();myFish fish;Music music;int score=0;int oldzhanli;ArrayList<Fish> fishs = new ArrayList<Fish>();int mini=0,mid=1,big=1,superfish=1;public FishPanel() {fish = new myFish();music = new Music();oldzhanli=fish.zhanli;}public void paint(Graphics g)  {super.paint(g);switch(state) {case START:g.drawImage(start, 0, 0, 1440, 900, 0, 0, 500,300, null);break;case RUNNING:drawBackGround(g);drawMyFish(g);drawFishs(g);g.setColor(Color.white);Font f = new Font("黑体",Font.BOLD,20);g.setFont(f);g.drawString("当前得分:"+score, 15, 20);g.drawString("战斗力:"+fish.zhanli, 200, 20);break;case PAUSE:g.drawImage(zan, 0, 0, null);break;case GAMEOVER://g.drawImage(over, 0, 0, null);break;drawBackGround(g);drawMyFish(g);drawFishs(g);g.drawString("当前得分:"+score, 15, 20);g.setColor(Color.white);Font ff = new Font("黑体",Font.BOLD,50);g.setFont(ff);g.drawString("GAME OVER",600 ,450);}}private void createFish() {if((mini++%400)==0) {fishs.add(new miniFish());}if((mid++%300)==0) {fishs.add(new middleFish());}if((big++%1000)==0) {fishs.add(new bigFish());}if((superfish++%5000)==0) {fishs.add(new superFish());}}private void drawFishs(Graphics g) {// TODO Auto-generated method stubfor(int i=0;i<fishs.size();i++) {fishs.get(i).draw(g);}}private void drawMyFish(Graphics g) {// TODO Auto-generated method stubfish.draw(g);}private void drawBackGround(Graphics g) {// TODO Auto-generated method stubg.drawImage(bkImg, 0, 0, 1440, 900, 0, 0, 2048, 1024, null);}private void changeFish() {// TODO Auto-generated method stubif((index++%10)==0) {fish.move();for(int i=0;i<fishs.size();i++) {fishs.get(i).move();}}}int index=1;public void action() {Timer timer=new Timer();timer.schedule(new TimerTask() {public void run() {if(state==1) {changeFish();createFish();hitFish();outOfBounds();repaint(); }}},20,10);}private void hitFish() {for(int i=0;i<fishs.size();i++) {if(hit(fishs.get(i))) {if(fish.zhanli>=fishs.get(i).zhanli) {switch(fishs.get(i).zhanli) {case 1:score++;break;case 2:score+=5;break;case 3:score+=10;break;case 4:score+=100;break;}fishs.remove(i);music.eat.play();if(score>=3) fish.zhanli=2;    if(score>=20) fish.zhanli=3;if(score>=30) fish.zhanli=4;}else {music.death.play();state=3;music.bgm.stop();}if(fish.zhanli>oldzhanli) {fish.x1=(int) (fish.x1*1.1);fish.y1=(int) (fish.y1*1.1);music.levelup.play();oldzhanli=fish.zhanli;}}}}private void outOfBounds() {for(int i=0;i<fishs.size();i++) {if(fishs.get(i).isMoveLeft) {if(fishs.get(i).x<=0) {fishs.remove(i);}} elseif(fishs.get(i).x>=1440) {fishs.remove(i);}}    }public boolean hit(Fish fishs) {int x=fish.x+(fish.x1-fish.x)/2,y=fish.y+(fish.y1-fish.y)/2;if((x>=fishs.x)&&(x<=fishs.x+fishs.length) ){if((y>=fishs.y)&&(y<=fishs.y+fishs.height)) {return true;}}return false;}public void move(int vk) {switch(vk) {case KeyEvent.VK_RIGHT:fish.moveRight();break;case KeyEvent.VK_LEFT:fish.moveLeft();break;case KeyEvent.VK_UP:fish.fishMoveUp();break;case KeyEvent.VK_DOWN:fish.fishMoveDown();break;case KeyEvent.VK_SPACE:if(state==0) {state=RUNNING; music.bgm.loop();}else if(state==3) {state=RUNNING;fish=new myFish();fishs = new ArrayList<Fish>();music.bgm.loop();} break;case KeyEvent.VK_C:;break;case KeyEvent.VK_P:;break;case KeyEvent.VK_S: break;case KeyEvent.VK_Q: ;break;}}}

项目总结

开发一套系统,最重要的是细心,并不是一定要做到面面俱到,在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。 通过这次系统开发,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。

Java 编写大鱼吃小鱼游戏 窗体程序 完整源码相关推荐

  1. Java 编写斗地主游戏 窗体程序 完整源码

    今天为大家分享斗地主游戏的开发与制作,目前是单机版游戏,后续时间空了,会给大家分享下联机版本的开发与制作.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开 ...

  2. Java 编写潜艇大战游戏 窗体程序 完整源码

    今天为大家分享潜艇大战的开发与制作.整个系统界面漂亮,有完整源码提供,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语言为Java,开发环境Eclipse或者IDEA都可以 ...

  3. Java 编写捕鱼达人游戏 窗体程序 完整源码

    今天为大家分享捕鱼达人游戏的开发与制作,目前是单机版游戏,后续时间空了,会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语言为J ...

  4. Java 编写飞鸽传书系统 窗体程序 完整源码

    今天为大家分享简单的飞鸽传书程序的开发与制作,目前系统已经完成了初步功能,后续会进一步完善.整个系统界面漂亮,有完整源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语言 ...

  5. 「 硬核教学」 ❤️ C语言编写扫雷游戏外挂❤️「 完整源码」

    目录 第一步:使用CE找出棋盘的基址 第二步:使用CE/OD查看该地址的数据 第三步:对比棋盘分析数据的含义 第四步:验证猜想 第五步:编写功能 有没有羡慕学霸们在机房里 潇洒如意地玩着扫雷无限通关, ...

  6. 出自北大教授java项目大鱼吃小鱼游戏开发教学 附带源码和资料

    课程介绍: 大鱼吃小鱼,又称吞食鱼,是一款动作类小游戏.通过不断的吞吃比自己小的鱼类快速成长,最终成为海洋霸主. 本课程讲解一个大鱼吃小鱼游戏的详细开发过程.只要60分钟就可以完成一个你自己亲手开发出 ...

  7. Java 编写在线考试系统-049 窗体程序 完整源码

    今天为大家分享一个java语言编写的在线考试系统-049,目前系统功能已经很全面,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 ...

  8. Java 编写航班查询系统 窗体程序 完整源码

    开发环境 开发语言为Java,开发环境Eclipse或者IDEA都可以.数据库采用:MySQL.运行主程序,或者执行打开JAR文件即可以运行本程序. 系统框架 利用JDK自带的SWING框架开发,需要 ...

  9. Java 公司财务系统 窗体程序 完整源码

    今天为大家分享一个java语言编写的公司财务管理系统,目前系统已经完成了主要功能,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 ...

最新文章

  1. Facebook AI新研究:可解释神经元或许会阻碍DNN的学习
  2. 反射机制(1)认识Class类
  3. OnlineJudge在线判题系统
  4. SAP关于销售来自可选工厂的解决方案
  5. 游戏开发模式一:组件模式(Component)
  6. 使用Backtrace函数打印调用栈 - Debug居家必备
  7. mysql最左_Mysql最左原则
  8. 安全狗远程3389端口修改工具
  9. python 算法库_一个易用又功能强大的 Python遗传算法库
  10. php赋值就变错误了,PHP基础陷阱题(变量赋值)_PHP教程
  11. Oracle DataBase单实例使用ASM案例(2)--Oracle 11g之环境准备
  12. python matplot模块
  13. 使用麦咖啡打造安全系统
  14. PCI及PCIe基本知识
  15. 数学分析与高等代数考研真题详解--苏大卷
  16. 猎人X猎人手游如何在电脑上玩 猎人X猎人手游模拟器教程
  17. audio_policy.conf文件:AUDIO_DEVICE_IN_REMOTE_SUBMIX含义
  18. pytorch 预测手写体数字_深度学习之PyTorch实战(3)——实战手写数字识别
  19. 手把手教你做主成分分析
  20. SpringBoot + Sharding JDBC,一文搞定分库分表、读写分离

热门文章

  1. 3dMax 树的立体贴图
  2. 内存管理-alloc_pages()函数分配内存
  3. Agv、Rgv 车辆控制调度系统开发第八篇-错误纠正
  4. 自问自答-水听器电信号与声谱级的相互转换
  5. 分析位深度与颜色深度的关系和发展策略
  6. 国瀚实业|个人理财需要掌握哪些知识
  7. 2023年进入互联网行业好找工作吗?
  8. 物联网卡助力智能水表实现智慧管理
  9. 一加7Tpro刷鸿蒙,一加7T最新渲染图曝光:果然是潮流圆形后置三摄
  10. 易格售后服务管理系统 v2.0 单机版 绿色