王思聪吃热狗 - 飞机大战小游戏
这个小游戏是用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
- 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;}}}}
}
- 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;}
}
- 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;}
}
- 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;}}}}
}
- 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();}}
- 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;}}
}
- 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;
}
- 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);}});}
}
王思聪吃热狗 - 飞机大战小游戏相关推荐
- python 飞机大战小游戏
飞机大战小游戏,这里需要下载pygame模块 这是需要的素材,需要的自取: 上代码: import time import pygame from pygame.locals import *#检测事 ...
- 点击list view中一行内容可以在combox中显示_java版飞机大战小游戏详细教程(零基础小白也可以分分钟学会!)...
一:游戏展示 飞机大战小游戏我们都玩过,通过移动飞机来打敌机,这里给大家展示一下游戏成果:呜呜呜由于gif只能上传5M大小,所以就不能给大家展示操作了,如果大家有兴趣可以自己自己做出来再玩哟. 这里面 ...
- 飞机大战小游戏(超详细)
偷学Python之最后的项目二:飞机大战小游戏(超详细) 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志.--苏轼 甜甜先说 这次用Python中的pygame模块来完成一个飞机大战的小游戏:基本思 ...
- matlab飞机大战小游戏(第二版)
第一版链接:https://blog.csdn.net/slandarer/article/details/88025006 游戏截图: ------------------------ 游戏动图: ...
- 使用小程序制作一个飞机大战小游戏
此文主要基于微信小程序制作一个飞机大战小游戏,上手即用,操作简单. 一.创建小程序 二.页面实现 三.代码块 一.创建小程序 访问微信公众平台,点击账号注册. 选择小程序,并在表单填写所需的各项信息进 ...
- C语言—飞机大战小游戏
哈工大经典C语言大作业-飞机大战小游戏,源码如下,已经通过编译获得评分19+ (满分20)当时还是太菜了呜呜呜. 可以给大家参考一下,好像本来是加了音乐的,但是你们可能没有对应的音乐MP3文件,所以如 ...
- 基于Java语言在窗体上实现飞机大战小游戏
全套资料下载地址:https://download.csdn.net/download/sheziqiong/85594271 项目介绍 飞机大战:用 Java 语言在窗体上实现飞机大战小游戏,运行程 ...
- 【Java代码实现飞机大战小游戏】简单理解
飞机大战 飞机大战小游戏历经10天完成,主要用到的就是我们面向对象部分的知识:类,封装,继承,多态,静态代码块等等内容+swing部分内容.所以即使你是java小白,也不用担心欧! 游戏说明:游戏有3 ...
- 【Java】Java基础飞机大战小游戏完整代码
Java基础飞机大战小游戏完整代码 先来展示一下代码实现结果图 主函数ShootGame 初始化游戏原始背景图片,游戏人物图片,游戏开始结束图片:构建产生敌人算法:产生英雄机算法:发射子弹算法:判断是 ...
- Vue 开发一个简略版的飞机大战小游戏
文章目录 使用 Vue 开发一个简略版的飞机大战小游戏 一.实现思路 二.所需知识点 三.实现步骤 使用 Vue 开发一个简略版的飞机大战小游戏 如题,假设你为了向更多访问你博客的人展示你的技术,你决 ...
最新文章
- 怎样生成分布式情况下的唯一标示?必须包含网卡字段,以便不同机器生成的唯一标示肯定不一样...
- 月入5万,程序员夫人们过上贵妇生活了吗?
- synchronized(xxx.class)
- Metadata Service 最高频的应用 - 每天5分钟玩转 OpenStack(164)
- [bzoj4881][Lydsy2017年5月月赛]线段游戏
- pythonurllib的使用_python re和urllib的使用问题。
- 【JZOJ5911】Travel
- 10分钟了解JSON Web令牌(JWT) 虫虫搜奇
- angular自带的一些api_在Angular软件中执行API请求的正确方式,了解一下
- 照着官网来安装openstack pike之glance安装
- 邓小铁:博弈论研究中的学术快乐
- 【论文翻译】Deep Learning
- tp link虚拟服务器设置,TP-Link路由器如何设置UPNP开启【设置步骤】
- 让你的系统无懈可击 史上优秀防火墙一览
- Android4.1 关于Rotation相关的Configuration整体分析
- 合泰单片机点灯c语言程序,ht66f018合泰单片机暖风机的C语言源程序
- 园林景观cad_5+ 园林景观设计PSD树木建筑人物鸟瞰图效果图ps后期分层素材库配景A...
- (C语言)有一个已排好序的数组,要求输入一个数字后,按原来的排序规律将它插入数组
- 自定义view从0到1
- 冯诺伊曼计算机釆用二进制,大一新生计算机考试重点复习资料(完整版).docx...