玩别人的游戏永不及自己做游戏来得刺激【好吧,这是课堂上老师教的】

[TOC]

BaiduCloud分享

Images of Fish Game游戏图片
Link链接:https://pan.baidu.com/s/1T2s3lcJR8nF2tXfTylX1PA
Password密码:1xfc

这是一个窗口游戏

package fish_test;
import javax.swing.JFrame;
import org.omg.CORBA.PUBLIC_MEMBER;public class Windows extends JFrame{// 在构造方法中编写创建窗口的逻辑public Windows(){this.setSize(800,500);this.setLocationRelativeTo(null);this.setTitle("鱼鱼鱼!!!  v.1.0_2017/08/31");this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setResizable(false);}
}

池子

package fish_test;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.*;import javax.imageio.ImageIO;
import javax.swing.JPanel;// 鱼、网在水池中的变化public class Pool extends JPanel{BufferedImage bufferedImage ;                               //定义一个变量用于保存读取图片Fish fish;                                                  //声明一条鱼Net net;                                                    //声明一个网Fish[] allFishs;int score = 0;                                              //定义得分public Pool() throws IOException{allFishs = new Fish[20];                            //声明一个鱼群的数组 有11种鱼bufferedImage = ImageIO.read(new File("image/E/bg.jpg"));//使用imageio工具将制定的图片文件//          fish = new Fish();                                      //创建一条鱼int count = 0;for(int i=0; i<(allFishs.length-2)/2; i++){             //创建鱼,只有鲸鱼和水母显示一条,其他2条
//              if(i<18){//                  allFishs[i] = new Fish("image/fish0"+(i+1));
//              }else {//                  allFishs[i] = new Fish("image/fish"+(i+4));
//              }allFishs[count++] = new Fish("image/E/fish0"+(i+1));allFishs[count++] = new Fish("image/E/fish0"+(i+1));}allFishs[count++] = new Fish("image/E/fish13");allFishs[count++] = new Fish("image/E/fish14");net = new Net(); }   public void paint(Graphics g){                              //需要画笔画图片//1.画哪张图;2:图片在窗口中的x坐标;3:图片在窗口中的y坐标;4:图片渲染效果g.drawImage(bufferedImage,0,0,null);for(int i = 0;i<allFishs.length;i++)                    //画鱼    {fish = allFishs[i];g.drawImage(fish.fishImage,fish.x,fish.y,null);}if(net.show == true){                                   //画网    g.drawImage(net.netImage, net.x-net.netImage.getWidth()/2,net.y-net.netImage.getWidth()/2,null);      //使鼠标在网的中心  }g.setColor(Color.yellow);                               //改变画笔颜色g.drawString("当前分数为:"+score+"分", 20, 20);       //得分板}public void action() throws InterruptedException{           //定义一个方法,要不停的刷新 更新图片MouseAdapter adapter = new MouseAdapter() {             //创建一个给鼠标添加监听的工具//4个事件public void mouseMoved(MouseEvent e) {              //若鼠标移动 该方法会被触发System.out.println("鼠标移动鸟");net.x = e.getX();                               //获取鼠标在窗口中的x坐标net.y = e.getY();                               //网与鼠标同步System.out.println("x="+e.getX()+",y="+e.getY());}public void mouseEntered(MouseEvent e) {            //若鼠标进入窗口 该方法会被触发System.out.println("鼠标进入鸟");System.out.println("x="+e.getX()+",y="+e.getY());net.show = true;}public void mouseExited(MouseEvent e) {         //若鼠标退出 该方法会被触发System.out.println("鼠标退出鸟");net.show = false;                               //鼠标退出时网不显示}public void mousePressed() {    catchFish();}private void catchFish() {//拿出所有的鱼和网的坐标进行匹配for(int i = 0;i<allFishs.length;i++){Fish fish = allFishs[i];if(fish.contains(net)){fish.removing();        //如果鱼和网包含==抓到鱼了 鱼重游score = score + fish.fishImage.getWidth(); //根据鱼的大小增加分数}}}};this.addMouseListener(adapter);this.addMouseMotionListener(adapter);//          fish.start();                                           //鱼开始切换不同的图片for(int i = 0;i<allFishs.length;i++)    {allFishs[i].start();}while(true){//通过死循环不停地刷新图片repaint();//重画Thread.sleep(1000/24);//重画的频率和鱼图片切换的频率保持一致}}
}

小鱼鱼和大鱼鱼

package fish_test;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;import javax.imageio.ImageIO;public class Fish extends Thread{       //每一个任务为一个线程BufferedImage fishImage;                //声明一变量用于保存图片BufferedImage[] allImages ;             //定义一个数组用于保存当前这条鱼的动作Random random;                          //定义一个生产随机数的工具int x=0,y=0;                            //鱼的坐标int speed = 1;                          //鱼的速度public Fish(String fishName) throws IOException {random = new Random();speed = random.nextInt(15)+1;       //  x = random.nextInt(800);y = random.nextInt(500);allImages = new BufferedImage[10];for(int i = 0;i<allImages.length;i++)   //通过循环读取图片{if(i<9){allImages[i] = ImageIO.read(new File(fishName+"_0"+(i+1)+".png")); }else allImages[i] = ImageIO.read(new File(fishName+"_"+(i+1)+".png"));}}public void run() {                 //线程在执行时,编写的逻辑int count = 0;                      //用于不停切换不同的图片:鱼自身动态while(true){                        //死循环fishImage = allImages[count%10];count++;moving();                       //移动try {Thread.sleep(1000/25);      // 1000=1s,图变频率} catch (InterruptedException e) {e.printStackTrace();}   }}private void moving() {x = x - speed;                  //不一样速度
//          x=x-3;                          //allfish一样速度
//          y=y-1;                          //前进方向if(x<0 - fishImage.getWidth()){ //如果这条鱼的整个身体的游出了水池removing();                 //重游}}public void removing() {            //重游x = 800 ;y=random.nextInt(500);speed = random.nextInt(15)+1;}public boolean contains(Net net) {int x_dis = net.x - x ;         //网的x坐标 减去 鱼的x坐标int y_dis = net.y - y ;         //网和鱼之间的距离      if(x_dis > 0 && x_dis < fishImage.getWidth() && y_dis > 0 && y_dis < fishImage.getHeight()){System.out.println("JJJJ");return true ;               //若条件满足则证明抓到鱼了}return false;}
}

捕鱼网

package fish_test;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;import javax.imageio.ImageIO;public class Net {BufferedImage netImage;Random random;int x=0,y=0;boolean show;public Net() throws IOException {random = new Random();x = random.nextInt(800);y = random.nextInt(500);netImage = ImageIO.read(new File("image/E/net09.png"));}
}

准备就绪了

Fire !
不对,Cat Cat Catch吧

package fish_test;
import java.awt.Window;
import java.io.*;
public class GameStart {public static void main(String[] args) throws IOException, InterruptedException {Windows window = new Windows();     //创建一个窗口Pool pool = new Pool();             //创建水池window.add(pool);                   //将水池放入窗口window.setVisible(true);pool.action();                      //执行action方法}}

感觉如何??

  • BaiduCloud分享
  • 这是一个窗口游戏
  • 池子
  • 小鱼鱼和大鱼鱼
  • 捕鱼网
  • 准备就绪了

【Java_Game 附带游戏图片压缩包】捕鱼达人小手手相关推荐

  1. H5 canvas基础入门到捕鱼达人小游戏实现(1)

    为什么学习canvas? 看见别人网页一些非常炫酷的效果,羡慕不已,于是对canvas产生了浓厚的兴趣,所以想仔细学习学习canvas.下面就一起来学习吧,本文为系列文章,最后会编写一个简单版的捕鱼达 ...

  2. 基于c语言Easyx库的捕鱼达人小游戏

    基于c语言Easyx库的捕鱼达人小游戏(一) 文章目录 基于c语言Easyx库的捕鱼达人小游戏(一) 主菜单 游戏实现 捕鱼计分 下一阶段 主菜单 (写在前面的话:使用EASY-X库一定要命名为.cp ...

  3. html实现经典捕鱼达人小游戏

    文章目录 1.设计来源 1.1 游戏界面 2.效果和源码 2.1 动态效果 2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_4315 ...

  4. 捕鱼达人小游戏——Java实现

    一.捕鱼达人小游戏,界面如下图: 二.有需要的代码自取: 链接:https://pan.baidu.com/s/1s5G2DwfSMlHoE4STanjKyw 提取码:evbg

  5. 基于java8的捕鱼达人小游戏

    整体框架 #mermaid-svg-kwIdYePfSf2yisnx .label{font-family:'trebuchet ms', verdana, arial;font-family:var ...

  6. Unity-3D捕鱼达人小游戏开发 —— 起因和开始的设置以及准备工作

    起因 假期里的软件实践课,使用Unity-3D写一个游戏,试想也不能太low,但是奈何素材和资源太难找,在论坛上逛到了捕鱼达人的素材,便来试一试 开始 素材毕竟是从网上扒的,我觉得也不好放出来,存在网 ...

  7. H5 canvas基础入门到捕鱼达人小游戏实现(3)-canvas运动入门,渐变,文字渲染,阴影

    上一篇主要讲解了矩形柱状图,弧形和饼图的绘制,但是离我们的目标还是有点远,不要紧,我们基础api都还没有学习完,今天继续. 本节主要内容 - canvas画板制作 - 块的直线运动 - 粒子运动 - ...

  8. java多线程捕鱼达人小游戏

    1.创建弹窗,并设置窗口属性. 2.创建Pool类,继承JPanel类,并重写paint方法. 3.创建Net类, 4.创建Fish类,继承Thread类,重写run方法. 5.刚开始先画一条鱼,一个 ...

  9. Unity-3D捕鱼达人小游戏开发 —— 开始场景

    创建Image 对创建的Canvas进行设置 对Image进行属性修改 按住 option (mac) 或者 alt (win),会发生变化,选择了右下角的那个 拖入背景图 创建LogoImage 在 ...

最新文章

  1. 微信小程序开发(2)_data属性
  2. CentOS7下安装ELK三件套
  3. 推荐系统之冷启动问题
  4. 分库、分表、分区的区别,傻傻分不清?
  5. hub设备_HUB选择困难症?从这里解决
  6. 中国太阳能热水器市场营销模式探析与品牌格局调研报告2022版
  7. Django ModelForm 组件的应用
  8. 手动建立Mysql表实体类技巧
  9. AbstractQueuedSynchronizer的介绍和原理分析
  10. WebAPI(part3)--事件基础
  11. android 将布局多次添加,android – 如何在布局xml中添加循环视图
  12. strtus中action注入spring bean
  13. tnsnames.ora 监听配置文件详解
  14. java 利用Future异步获取多线程任务结果
  15. php 怎么把数组按拼音,php实现数组按拼音顺序排序的方法
  16. MacBook使用U盘重装系统
  17. MSN 与六度分隔理论(转)
  18. mysql按月查询统计(统计近12个月的项目个数)
  19. server sent event
  20. SQL 实验项目3_1-数据更新

热门文章

  1. java利用zxing来生成和解析二维码,支持中文
  2. 工业视觉-西门子-1200与海康相机软件通讯
  3. MTK平台使用代码对GPIO管脚进行设置
  4. Catfish cms4.x审计--挖掘文章处存在的越权
  5. Vue3 文档学习笔记
  6. FZU 2167 大王叫我来巡山呐
  7. qt dependant doesn not exist错误的解决方法
  8. python创建icon图标
  9. oracle rac通讯,连接Oracle RAC 的tnsname.ora设置
  10. 30天自制操作系统——用U盘启动自制系统