坦克大战Java项目一

《Java小游戏实现》:坦克大战 《Java小游戏实现》:坦克大战前面写了一个简单的聊天小程序,今天开始就写一个坦克大战的游戏,算是对Java相关小知识点的一个应用。这个游戏的完成,我们也是分步完成,逐步累加,一个一个小功能的添加,最后直至完成整个游戏的开发。第一步:写一个界面 public class TankClient extends JFrame{ public static void main(Stri 阅读详情

 

项目功能描述

 

本程序是一个简单的坦克游戏程序,用Java语言编写,在jdk环境下运行。游戏开始时,用户通过键盘操纵坦克移动,转弯和射击,与敌人坦克进行交战,直到消灭所有敌人就可以过关。具体的功能模块以及每个模块的难度和具体实现要求如下图:

 

 任务一  对战界面

要完成坦克大战中敌我双方的对战,首选要完成的就是敌方双方坦克对战的平台。

效果图如下:

 

 代码如下:

 

package tank;

import java.awt.CardLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JSeparator;

public class MenuDemo extends JFrame{
	JMenu gameMenu,editMenu;//菜单,是从菜单栏中显示的一个下拉菜单组件
	JMenuItem startMenuItem,saveMenuItem,openMenuItem,exitMenuItem;//菜单项,菜单中的项目必 
                                                      、、须属于 JMenuItem 或任何它的子类。 
	JMenuBar menuBar;//菜单栏,与顶层窗口相关联的,一个窗口只能有一个菜单栏
	JSeparator separator;//分隔符
	JPanel jpanel,center;
	JLabel jl;
	public MenuDemo(){
		jl=new JLabel("Stage 1");
		separator=new JSeparator();
		gameMenu=new JMenu("游戏(G)");
		gameMenu.setMnemonic(KeyEvent.VK_G);/*setMnemonic() 方法设置当前菜单的快速访问符。
											该符号必须对应键盘上的一个键,
											并且应该使用 java.awt.event.KeyEvent 
											中定义的 VK—XXX 键代码之一指定。
											快速访问符是一种快捷键,通常在按下 Alt 键和某个字                
                                             母时激活。
											例如,常用的 Alt+F 是“文件” 菜单的快速访问符。*/
		editMenu=new JMenu("设置(T)");
		startMenuItem=new JMenuItem("开始(S)");
		saveMenuItem=new JMenuItem("保存");
		menuBar=new JMenuBar();
		exitMenuItem=new JMenuItem("退出(E)");
		exitMenuItem.setMnemonic(KeyEvent.VK_E);
		
		gameMenu.add(startMenuItem);
		gameMenu.add(saveMenuItem);
		gameMenu.add(separator);
		gameMenu.add(exitMenuItem);
		
		menuBar.add(gameMenu);
		menuBar.add(editMenu);
		
		CardLayout card=new CardLayout();
		jpanel=new JPanel();
		center=new JPanel(card);//创建一个卡片布局的容器
		center.add("start",jpanel);//把不同界面的容器均添加到center容器中,用card.show()控制 
 //界面的切换。
		
		card.show(center,"start");
		
		jpanel.setBackground(Color.gray);
		jpanel.add(jl,new FlowLayout(FlowLayout.CENTER));
		
		this.getContentPane().add(center);//初始化一个容器,用来在容器上添加一些控件
			//一个 content pane 是一个包含除菜单条(如果有的话)外所有框架的可视组件的容器。
		
		this.setVisible(true);
		this.setJMenuBar(menuBar);
		this.setSize(550, 500);
		this.setLocationRelativeTo(null);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	}
	public static void main(String[] args) {
		new MenuDemo(); 
	}
}

 

Java小游戏之坦克大战 随着人们对生活质量的要求一天比一天高,为了让人们更好地开掘自身的智慧,游戏就此进入了大众的视野,在人们的生活中有着重要的位置,已然变得必不可少。游戏产业推动高新技术不断升级,极大地促进了经济的增长,推动了“第四产业”的经济腾飞。坦克大战游戏是童年时期经常玩的经典游戏,我们对它都十分了解。游戏通过分析JAVA游戏开发和代码设计,用Eclipse软件开发了坦克大战游戏,运用接口技术,使一个类能够实现多个接口,使用套接字Socket来完成client端和server端的连接。 阅读详情

相关推荐

基于JavaSwing开发的坦克大战游戏源码+素材+文档

本程序是一个简单的坦克游戏程序,用java语言编写,在jdk环境下运行。游戏开始时,用户通过键盘操纵坦克移动,转弯和射击,与敌人坦克进行交战,直到消灭所有敌人就可以过关。本程序包括23个类,2800多行代码,一个数据库和三个gif图片。

Java多线程游戏——坦克大战

System.out.println(Thread.currentThread().getName() + ":启动...");switch(getDirection())//判断方向,加载不同方向对应的坦克图片,设置速度。bufferg.setFont(new Font("楷体",0,50));bufferg.setFont(new Font("楷体",0,30));}else if(getSpeedY() < 0 ){//向下移动。}else if(getSpeedY() > 0 ){//向上移动。

suuijbd的博客 1244

JAVA 实现《坦克大战》游戏-全部源码

# 主要设计 1、要有难度关卡:第一关,第二关,第三关,第四关,第五关;第一关地图最简单,第五关地图最难; 2、坦克要有血条,打多次才会死 3、地图要我有我方坦克四辆(相当于4条命)和多辆敌方坦克 4、我方坦克的炮弹数量是固定的,设置为500 5、地图右边显示基本信息 6、地图上要在砖块,铁块,河流 需要技术指导,写项目程序,等更多服务请私信联系博主

Java多线程实现基础坦克大战【含源码】

坦克大战整个逻辑并不会很难,但是所涉及的内容比较多,一些处理工作也比较繁琐,对于初学者来说这是很好的一个项目。B站韩顺平老师讲得非常好,本人也是看着韩老师的课程一点点摸索处理的,部分实现和老师有所不同,是不错的入门项目!方便的话请给个免费的赞支持一下哦!

Infinity_and_beyond的博客 1万+

【MediaPipe实战】从零构建实时人脸关键点检测与表情分析系统

本文详细介绍了如何使用MediaPipe框架从零构建实时人脸关键点检测与表情分析系统。通过Python代码实现,系统能够精准检测468个3D人脸关键点,并实时分析用户表情,适用于智能交互应用。文章包含环境配置、核心实现、可视化技巧及性能优化等实战内容,帮助开发者快速掌握深度学习在计算机视觉中的应用。

weixin_30836759的博客 73

[Unity]-[UI]-[Image] 关于UI精灵图资源导入设置的详细解释

如果纹理存储了有特定含义的信息,并且您需要着色器中的确切值(例如,平滑度或金属度),请禁用此属性。此选项允许将纹理编码为特定格式(RGBM 或 dLDR,具体取决于平台)并通过后期处理步骤对纹理数据进行处理(推拉式扩张通道)。使用在3D模型的专业法线贴图。通用的纹理类型,一般在Material上的材质图片参数使用,比如漫反射、法线贴图这些。​​Compression​​:ASTC 6x6(移动端)或DXT5(PC)​​Compression​​:BC5(PC)或ASTC 6x6(移动端)

sky_smile_Allen的博客 2171

射击类小游戏——坦克大战(java实现)

项目名称:坦克大战 项目分工:游戏开发

Janice的专栏 9680

如何用python开发“跳一跳”游戏【附源码】

jump_start_time = pygame.time.get_ticks() # 记录跳跃开始时间。jump_duration = current_time - jump_start_time # 计算跳跃持续时间。current_time = pygame.time.get_ticks() # 获取当前时间。jump_velocity = -15 # 设置跳跃的初始速度。# 如果小球跳跃结束,重置跳跃状态。# 根据跳跃持续时间计算跳跃高度。# 移除超出屏幕的障碍物。

helloshili2011的博客 2495

java实现坦克大战

初学者必学的一个小项目,通过编写坦克大战能体会面向对象(oop)的精妙之处,同时也能理解集合,多线程,io流,GUI编程等知识的运用,是一个很好的一个学习体验。最后需要把三张爆炸图片和音乐下载,导入到项目中的同级目录中使用,路径格式等都需要修改。然后我们击败了两个坦克,并记录在游戏中,下次可以继续上局游戏。这里把源码分享给大家,可以自由修改坦克属性,变成。记录类用于和文件交互,实现游戏的记录。定义基本的属性,速度,方向,移动等。用于实现坦克和子弹的绘制。

m0_63138901的博客 4215

SAP Fiori Launchpad 上看不到任何 tile 应该怎么办?

中心UI组件是一个框架,为所有SAPFiori应用程序提供公共基础设施SAPFiorilaunchpad是所有SAPFioriUI的基础,并为SAPFiori应用程序提供基本功能,如登录,界面大小,应用程序之间的导航,和基于角色的应用程序目录。ABAP前端服务器包含所有基础设施组件,用于为客户端生成SAPFiori应用程序特定的UI,并与SAPBusinessSuite后端系统通信。SAPFiori应用程序的处理过程如下首先,客户端加载SAPFiori应用程序的界面。...

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 941

CANoe-vTESTstudio之Test Diagram编辑器

总之,CANoe-vTESTstudio的Test Diagram编辑器提供了一个直观且强大的工具,用于创建和管理测试用例。通过图形化的界面和丰富的功能,测试工程师可以更轻松地编写复杂的测试脚本,并有效地进行测试开发。在上面的示例中,我们创建了一个名为"MyTestCase"的测试用例,并定义了两个测试步骤"Step1"和"Step2"。在上面的示例中,我们在执行"Step1"之后使用条件语句来确定是否执行"Step2"。在每次迭代中,我们创建一个新的测试步骤,并根据迭代次数动态生成相应的日志和验证消息。

TcData的博客 248

Java 实战项目坦克大战,一小时学会制作

相信大家听到这个名字已经安耐不住激动的心了吧!这个游戏有单人模式和双人模式两种模式。玩家通过操控指定按键,控制己方坦克移动方向或发射子弹,游戏中会随机生成敌方坦克并发射子弹,己方坦克击中敌方坦克后,敌方坦克消失,摧毁所有敌方坦克后,游戏胜利。若己方坦克被击中或基地被摧毁,游戏失败。 《坦克大战》是由日本南梦宫Namco游戏公司开发的一款平面射击游戏,于1985年发售。游戏以坦克战斗及保卫基地为主题,属于策略型联机类。 同时也是FC平台上少有的内建关卡编辑器的几个游戏之一,玩家可自己创建独特

N_01040709的博客 303

SAP Retail 补货里的 Requirement Groups,站点和商品太多时,主数据维护如何做减法

SAP Retail补货主数据设计中,Requirement Groups(需求组)是常被低估但至关重要的分类机制。它通过将具有相同补货需求的接收方(如门店)按商品分类(Merchandise Category)分组,大幅降低主数据维护量。在大型零售场景中(如800家门店、6万商品),直接维护每个门店和商品的组合参数会导致维护量失控。Requirement Groups允许企业按品类特性(如乳制品、饮料等)为不同门店组设置统一补货参数,并随业务变化灵活调整。该机制与商品分类紧密绑定,不同于MRP Group

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 68

【Java游戏项目】在一小时内用Java做出经典游戏坦克大战

坦克大战是一款很棒的坦克游戏,游戏中的画面很真实在特效上使用了景深和动态模糊的效果简直使得这款游戏变得更加的出色给力,并且对游戏中的效果全市的更是非常的到位所以对于这款游戏真的是非常的喜欢。有着一种很版的感觉吧。并且感觉很有次时代的效果推荐! 游戏的画面制作的虽说不是十分的精美,但是却很有真实的感觉,在这个游戏里,你经历的将是一场混沌的坦克大战,空中不断飞出的炸弹,随时可能降落到你的坦克下,想要进行攻击同样要保护好自己,不仅需要好眼力,还要进行更准确的攻击才行,来挑战下首脑合作的小游戏吧。 该游戏有

deppbluesky的博客 2786

Python爬招聘网站:Selenium+ActionChains破解滑动验证码,批量采集岗位数据(新手可跑)

通过本文实战,你不仅学会了用Selenium+ActionChains破解滑动验证码,还掌握了爬虫的核心优化思路——“模拟人类行为”是突破反爬的关键。这套逻辑不仅适用于招聘网站,还能迁移到其他有滑动验证码的平台(如电商、资讯网站)。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1185

【数据结构】期末考试复习(考点+例题)

1.线性表定义及其存储实现:顺序表和链接表,优缺点分析(顺序存储可随 机访问,链式存储可灵活利用空间),相关操作的时间复杂度。 2.链表的插入删除操作 3.两种特殊的线性表及其应用:栈、队列 4.栈、队列上的(插入/删除)操作及其特点 5.循环队列满和空的条件 6.能够定义线性表、栈、队列的数据存储结构,能够实现相关操作的算法并 分析时间复杂度(例如插入、删除及其它应用等) 7.理解线性结构的应用( 如根据要求能灵活定义线性表结构,能根据线性表 的插入、删除操作解决实际问题) 二叉树基本概念与性质(高

Molly 的博客 9366

Java学习总结之坦克大战项目(一)

这个项目呢,我仍然是边看马士兵老师的Java教程的坦克大战视频,边写的。 当然,很多地方都是经过了我的思考,然后改写的,版本顺序也不一样,因为有时候我会停下视频然后思考我的代码,然后改进了继续看,这部分改进的也许就是后面的视频要讲的。但是我个人觉得,这样提前思考,比一味的观看视频收获要大得多,特别是提前想到很难解决的问题,思考好几种解决办法,都不确定是否可行的时候,再看视频中是怎样解决的,有种豁

hzp的专栏 3321

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java阶段项目一_坦克大战游戏

首先说明,小编做这个是为了巩固面向对象的基础知识,并无其他意义 一、创建窗口、创建游戏区域 package cn.tankwar; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; public class GameFrame exte...

qq_38634814的博客 232

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Java之坦克大战(一)---绘图项目准备

学习了Java的UI绘图后我们现在可以先做一个坦克大战来练练手。(跟着韩顺平老师学习的,安利大家想学习的可以看看) 今天主要是做准备工作, 我们来先画一下基本的东西: 1、直线(其实是线段)。 2、椭圆(包括圆)。 3、矩形(实心和矩形框)。 4、图片显示。 5、汉字显示。 接下来我们正式开始: 首先我们需要先新建一个类,这个类主要用来做我们放组件的面板。也是JPanel那...

shao15232的博客 359

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

教你一小时用Java做出坦克大战---基础游戏项目开发

《坦克大战》是由日本南梦宫Namco游戏公司开发的一款平面射击游戏,于1985年发售。游戏以坦克战斗及保卫基地为主题,属于策略型联机类。 同时也是FC平台上少有的内建关卡编辑器的几个游戏之一,玩家可自己创建独特的关卡,并通过获取一些道具使坦克和基地得到强化。 1985年推出的坦克大战(Battle City)由13×13大小的地图组成了35个关卡,地形包括砖墙、海水、钢板、森林、地板5种,玩家作为坦克军团仅存的一支精锐部队的指挥官,为了保卫基地不被摧毁而展开战斗。 【尚学堂...

N_01040709的博客 2163

【Java_项目篇<1>】--JAVA实现坦克大战游戏--画出坦克(一)

为什么选择这个项目? 1.好玩,有趣 2.涉及到java基础的各个方面的技术: 面向对象思想、多线程、IO、绘图技术、监听事件、数据库、界面编程 3.巩固旧的知识 黑色框为JFrame 红色框为JPanel ,由于JFrame不提供画图方法,所以我们只能在JPanel里画图,最后把JPanel放到JFrame中。 paintComponent(g

ACMer_Shadow的博客 2万+

【java项目】全程无水分,Java老师带你实践,教你一小时做出java坦克大战游戏

【java项目】全程无水分,Java老师带你实践,教你一小时做出java坦克大战小游戏

qq_35489389的博客 196

Java 项目实战 坦克大战(一)--准备

准备(一)Graphics类的相关方法API解释drawOvalpublic abstract void drawOval(int x, int y, int width, int height)绘制椭圆的边框。得到一个...

树叶子的博客 2286

韩顺平--Java坦克大战

韩顺平坦克大战

闲言 1万+
下一篇: 坦克大战Java项目二
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值