这个小游戏是用java写的,java swing, 源码比较简单,一般都能看懂 ,素材找不到,看着比较low,如果你找到热狗飞机图片,改一下就好




运行结果图:

**

图片素材:

**
https://blog.csdn.net/qq_40456064/article/details/84787388

分为8个class:

1. Bullet.java
2. GetImage.java
3. MyGame.java
4. Plane.java
5. SiCongPlaneFight_Main.java
6. Stone.java
7. Table.java
8. Window.java

程序入口在

SiCongPlaneFight_Main.java

  1. Bullet.java:
/***  子弹类  - 热狗子弹* @ClassName: bullet* @Description: TODO* @author GatesMa* @date 2018年12月3日* @Email: gatesma@foxmail.com*/
import java.awt.*;public class Bullet {int x, y;//子弹的坐标Image i;boolean destory = false;Stone stone[];Bullet(Image img, int x,int y, Stone stone[]){this.x = x;this.y = y;this.i = img;this.stone = stone;}void shot() {y -= Table.table*2;}void draw(Graphics g) {g.drawImage(i, x, y, Table.size/2, Table.size, null);ifdestroy();shot();}void ifdestroy() {if(this.y < 0) {destory = true;}for(int i =0;i < stone.length; i++) {if(stone[i] != null) {if(stone[i].x-Table.size/2<this.x&&this.x<(stone[i].x+Table.size/2)&&this.y>stone[i].y-Table.size/2&&this.y<stone[i].y+Table.size/2) {stone[i].live--;destory = true;}}}}
}
  1. GetImage.java
/***  图片导入工具类* @ClassName: GetImage* @Description: TODO* @author GatesMa* @date 2018年12月3日* @Email: gatesma@foxmail.com*/
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;import javax.imageio.ImageIO;public  class GetImage {//此类封装了方法获取图片 private GetImage() {}//工具类封装构造public static BufferedImage get(String path) {URL u= GetImage.class.getClassLoader().getResource(path);//获取到图片的资源BufferedImage b = null;try {b=ImageIO.read(u);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return b;}
}
  1. MyGame.java
/***  图片导入工具类* @ClassName: GetImage* @Description: TODO* @author GatesMa* @date 2018年12月3日* @Email: gatesma@foxmail.com*/
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;import javax.imageio.ImageIO;public  class GetImage {//此类封装了方法获取图片 private GetImage() {}//工具类封装构造public static BufferedImage get(String path) {URL u= GetImage.class.getClassLoader().getResource(path);//获取到图片的资源BufferedImage b = null;try {b=ImageIO.read(u);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return b;}
}
  1. Plane.java
/***  飞机类 - 热狗炮弹* @ClassName: Plane* @Description: TODO* @author GatesMa* @date 2018年12月3日* @Email: gatesma@foxmail.com*/
import java.awt.*;import javax.swing.ImageIcon;public class Plane {int x, y;Image i;boolean destory = false;Stone stone[];double step = Table.table;private boolean left, right, up, down;public boolean isLeft() {return left;}public void setLeft(boolean left) {this.left = left;}public boolean isRight() {return right;}public void setRight(boolean right) {this.right = right;}public boolean isUp() {return up;}public void setUp(boolean up) {this.up = up;}public boolean isDown() {return down;}public void setDown(boolean down) {this.down = down;}Plane(Image bi1,int x,int y,Stone stone[]){this.i = bi1;this.x = x;this.y = y;this.stone = stone;}public void move() {if(MyGame.count >= 2) {step = Table.table / 1.414;}else {step = Table.table;}if(left && x > 0) {this.x -= step;}if(right && x < Table.width - Table.size) {this.x += step;}if(up && y > 0){this.y -= step;}if(down && y < Table.height - Table.size) {this.y += step;}}public void draw(Graphics g) {move();ifdestory();g.drawImage(i, x, y, Table.size, Table.size, null);}private void ifdestory() {for(int i =0;i < stone.length;i++) {if(stone[i] != null) {if(stone[i].x - Table.size/2 < this.x && this.x < (stone[i].x+Table.size/2)&&this.y>stone[i].y-Table.size/2&&this.y<stone[i].y+Table.size/2) {destory=true;}}}}
}
  1. SiCongPlaneFight_Main.java
/***  主程序入口* @ClassName: SiCongPlaneFight_Main* @Description: TODO* @author GatesMa* @date 2018年12月3日* @Email: gatesma@foxmail.com*/
public class SiCongPlaneFight_Main {public static void main(String[] args) {// TODO Auto-generated method stubnew MyGame();}}
  1. Stone.java
/*** 障碍物类 - 思聪头像* @ClassName: Stone* @Description: TODO* @author GatesMa* @date 2018年12月3日* @Email: gatesma@foxmail.com*/
import java.awt.*;
import java.util.Random;
public class Stone {int x, y;Image i;Plane p;int live;boolean destory = false;public Stone(Image i, Plane p,int live) {this.x = getRandom();this.y = 0;this.i = i;this.p = p;this.live = live;}int getRandom() {Random r = new Random();return r.nextInt(550) + 20;}void draw(Graphics g) {g.drawImage(i, x, y, 50, 50, null);ifdestory();movegetclose();}private void movegetclose() {y += 2;}void ifdestory() {if(live <= 0) {destory = true;MyGame.score++;}if(this.y > Table.height) {destory = true;}}
}
  1. Table.java

/***  窗口大小存储 * @ClassName: Table* @Description: TODO* @author GatesMa* @date 2018年12月3日* @Email: gatesma@foxmail.com*/
public class Table {public static double table=10; public static int size=50;//飞机和炮弹大小public static int width=600;//窗口的大小public static int height=700;
}
  1. Window.java
/***  失败窗口 - 重开游戏或者退出* @ClassName: Window* @Description: TODO* @author GatesMa* @date 2018年12月3日* @Email: gatesma@foxmail.com*/
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.*;
public class Window extends JFrame{private JTextField t1;private JButton btn1;private JButton btn2;boolean ificansee = true;Window(){super("这么快就结束了???");setBounds((400 + Table.width), (Table.height / 4), 500, 100);setVisible(ificansee);t1 = new JTextField("是否重新开始?");t1.setEnabled(false);btn1 = new JButton("重新开始");btn2 = new JButton("退出");btn1.setBounds(31, 13, 13, 13);btn2.setBounds(31, 13, 13, 13);Container c1 = getContentPane();c1.setLayout(new FlowLayout());//c1.add(t1);c1.add(btn1);c1.add(btn2);addListener();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}private void addListener() {btn1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubMyGame.replay = true;dispose();}});btn2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSystem.exit(0);}});}
}

王思聪吃热狗 - 飞机大战小游戏相关推荐

  1. python 飞机大战小游戏

    飞机大战小游戏,这里需要下载pygame模块 这是需要的素材,需要的自取: 上代码: import time import pygame from pygame.locals import *#检测事 ...

  2. 点击list view中一行内容可以在combox中显示_java版飞机大战小游戏详细教程(零基础小白也可以分分钟学会!)...

    一:游戏展示 飞机大战小游戏我们都玩过,通过移动飞机来打敌机,这里给大家展示一下游戏成果:呜呜呜由于gif只能上传5M大小,所以就不能给大家展示操作了,如果大家有兴趣可以自己自己做出来再玩哟. 这里面 ...

  3. 飞机大战小游戏(超详细)

    偷学Python之最后的项目二:飞机大战小游戏(超详细) 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志.--苏轼 甜甜先说 这次用Python中的pygame模块来完成一个飞机大战的小游戏:基本思 ...

  4. matlab飞机大战小游戏(第二版)

    第一版链接:https://blog.csdn.net/slandarer/article/details/88025006 游戏截图: ------------------------ 游戏动图: ...

  5. 使用小程序制作一个飞机大战小游戏

    此文主要基于微信小程序制作一个飞机大战小游戏,上手即用,操作简单. 一.创建小程序 二.页面实现 三.代码块 一.创建小程序 访问微信公众平台,点击账号注册. 选择小程序,并在表单填写所需的各项信息进 ...

  6. C语言—飞机大战小游戏

    哈工大经典C语言大作业-飞机大战小游戏,源码如下,已经通过编译获得评分19+ (满分20)当时还是太菜了呜呜呜. 可以给大家参考一下,好像本来是加了音乐的,但是你们可能没有对应的音乐MP3文件,所以如 ...

  7. 基于Java语言在窗体上实现飞机大战小游戏

    全套资料下载地址:https://download.csdn.net/download/sheziqiong/85594271 项目介绍 飞机大战:用 Java 语言在窗体上实现飞机大战小游戏,运行程 ...

  8. 【Java代码实现飞机大战小游戏】简单理解

    飞机大战 飞机大战小游戏历经10天完成,主要用到的就是我们面向对象部分的知识:类,封装,继承,多态,静态代码块等等内容+swing部分内容.所以即使你是java小白,也不用担心欧! 游戏说明:游戏有3 ...

  9. 【Java】Java基础飞机大战小游戏完整代码

    Java基础飞机大战小游戏完整代码 先来展示一下代码实现结果图 主函数ShootGame 初始化游戏原始背景图片,游戏人物图片,游戏开始结束图片:构建产生敌人算法:产生英雄机算法:发射子弹算法:判断是 ...

  10. Vue 开发一个简略版的飞机大战小游戏

    文章目录 使用 Vue 开发一个简略版的飞机大战小游戏 一.实现思路 二.所需知识点 三.实现步骤 使用 Vue 开发一个简略版的飞机大战小游戏 如题,假设你为了向更多访问你博客的人展示你的技术,你决 ...

最新文章

  1. 怎样生成分布式情况下的唯一标示?必须包含网卡字段,以便不同机器生成的唯一标示肯定不一样...
  2. 月入5万,程序员夫人们过上贵妇生活了吗?
  3. synchronized(xxx.class)
  4. Metadata Service 最高频的应用 - 每天5分钟玩转 OpenStack(164)
  5. [bzoj4881][Lydsy2017年5月月赛]线段游戏
  6. pythonurllib的使用_python re和urllib的使用问题。
  7. 【JZOJ5911】Travel
  8. 10分钟了解JSON Web令牌(JWT) 虫虫搜奇
  9. angular自带的一些api_在Angular软件中执行API请求的正确方式,了解一下
  10. 照着官网来安装openstack pike之glance安装
  11. 邓小铁:博弈论研究中的学术快乐
  12. 【论文翻译】Deep Learning
  13. tp link虚拟服务器设置,TP-Link路由器如何设置UPNP开启【设置步骤】
  14. 让你的系统无懈可击 史上优秀防火墙一览
  15. Android4.1 关于Rotation相关的Configuration整体分析
  16. 合泰单片机点灯c语言程序,ht66f018合泰单片机暖风机的C语言源程序
  17. 园林景观cad_5+ 园林景观设计PSD树木建筑人物鸟瞰图效果图ps后期分层素材库配景A...
  18. (C语言)有一个已排好序的数组,要求输入一个数字后,按原来的排序规律将它插入数组
  19. 自定义view从0到1
  20. 冯诺伊曼计算机釆用二进制,大一新生计算机考试重点复习资料(完整版).docx...

热门文章

  1. Java根据关键字在PDF/Word插入图片
  2. MySQL存储过程和函数的区别
  3. Mac Book Pro桌面隐藏文件
  4. java坦克大战案例_java坦克大战
  5. 前端组件库大合集-必备收藏
  6. UG NX10.0 软件安装教程
  7. Android adb重启手机
  8. 输入身份证自动回填地址,年龄,个人详细信息
  9. 物联网感知-高压直流长距离供电在线实时监测(光纤传感技术)
  10. 银行支付系统大小额(一代支付)、超级网银(二代支付)