本文来自:小易博客专栏.转载请注明出处:http://blog.csdn.net/oldinaction 在此小易将坦克大战这个项目分为几个版本,以此对J2SE的知识进行回顾和总结,希望这样也能给刚学完J2SE的小伙伴们一点启示! (此版本基本上就可以和电脑对打了,不信把源码放到你的电脑上就可以马上开启坦克大战之旅哦) 坦克大战V0.5实现功能: 1.产生一个敌方坦克 2.将敌人坦克击毙,相应的子弹和坦克都消失 3.添加爆炸效果 4.添加多辆坦克,并能够打掉敌方坦克 5.让敌方坦克可以随机运动,…
坦克尺寸如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>坦克大战</title> </head> <body o…
html代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>坦克大战</title> <script src="tan…
通过上一节,我们学会的用java绘图.那现在就用java绘制自己坦克. 首先通过分析坦克由这几部分组成.如图 各个部件的长宽如图.15,10为圆心. /** * 坦克游戏的1.0版 * 1.画出坦克 * */ package com.test1; import javax.swing.*; import java.awt.*; import javax.swing.JFrame; public class MyTankGame1 extends JFrame { MyPanel mp = nul…
今天是个特殊的日子,圣诞节,也是周末,在这里先祝大家圣诞快乐!喜庆的日子,我们可以稍微放松一下,扯一扯昨天雷霆对战凯尔特人的比赛,这场比赛大威少又双叒叕拿下三双,而且是一个45+11+11的超级三双,其实小托马斯的表现也不遑多让,拿下31分9个助攻,末节一开始便带队打出一波小高潮反超比分,无奈威少爷最后几分钟暴走直接带走比赛,让人直呼精彩.好了,扯完之后我们进入正题. 今天给大家带来的是一个比较好玩的东西--H5坦克大战.这个东西的实现主要用到了H5的canvas以及原生的js,如果你已经是大牛…
周一没有看圣诞大战,这几天比较忙也没有看赛后的报道,今天就先不扯NBA,随便扯扯自己.昨天在电脑里找东西的时候翻到以前兼职健身教练时的照片,思绪一下子回到学生时代,脑子久久换不过来.现在深深觉得健身和写代码真的是两个极端,一个往死里做(做动作),一个往死里坐(坐椅子),现在的体重和巅峰时期足足差了6公斤,以前80公斤5*10的卧推变成了现在5*20的下斜俯卧撑,唉...掉了的块和体重里可都藏着我写过的代码啊!这里给大家送点小福利,珍藏版的卫平-布莱恩特奉上:   好了不扯,接着上一篇H5坦克大战…
自从威少砍下45+11+11的大号三双之后,网上出现了各种各样的神级段子,有一条是这样的: 威少:Hey,哥们,最近过得咋样! 浓眉:对方开启了好友验证,请先添加对方为好友 威少:...... JRS:2333333 看到了一条比赛当天的数据统计:威少45+11+11,杜少32+8+3,伊巴卡19+11+2,雷吉杰克逊17+3+6,哈登16+6+16,雷霆管理层真应该改名雷锋管理层了,现在对雷霆管理层的每日一轮都是JRS们的常态了. 好了,不扯,接着上一篇博客(H5坦克大战之画出坦克http:/…
上篇显示了控制手柄,但是还不能用来控制坦克, 这篇将会讲手柄和坦克的移动结合起来. 1.先在CityScene场景中实现场景的虚函数virtual void onEnter(); onEnter在进入场景后将会被调用,我们在onEnter中设置一个定时器, 游戏每一帧都调用次,这样我们可以在每帧中检测手柄按钮是否被按下, 然后控制坦克的移动,onEnter和update的函数实现如下: void CityScene::onEnter() { CCLayer::onEnter(); this->s…
这个版本,只能算是一个雏形,把最基本的东西给完成了,不过,后面可添加的也不多.有一点,还是想去实现,那就是敌方坦克自己寻找对手!也就是游戏AI. emmm, 什么时候可以了解一下这个AI.顺便学学python. 这个帖子只是为了贴上代码,对后续的代码作为优化和添加游戏AI做准备的. 1. 各类接口 package Event; /* *具有攻击力的接口 */ public interface Attackable { /* * 校验具有攻击力的实物, 和, 具有被攻击的实物,是否能撞在一起 *…
JavaGUI-坦克大战 1.Java绘图坐标体系 坐标体系介绍:下图说明了一个Java坐标体系.坐标原点位于左上角,以像素为单位.在Java坐标体系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素:第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素. 坐标体系-像素: 绘图还必须要搞清一个非常重要的概念-像素 一个像素等于多少厘米? 计算机在屏幕上显示的内容都是由屏幕上的每一个像素组成的.例如:计算机显示器的分辨率是800*600,表示计算机屏幕上的每一行由800个点…
之前我们有分享过不少经典的HTML5游戏,有些还是很有意思的,比如HTML5版切水果游戏和HTML5中国象棋游戏.今天要分享的是一款简化版的HTML5坦克大战游戏,方向键控制坦克的行进方向,空格键发射子弹,命中敌方坦克后也会发出声音,效果还算可以.效果图如下: 在线预览   源码下载 实现的代码. javascript代码: window.addEventListener("load", canvasApp, false); //是否支持canvas function canvasSu…
2019-01-16 坦克大战游戏背景: 1. 需求分析 1.1环境要求 操作系统:Windows 7(SP1)以上 JAVA虚拟机:JDK1.8以上 开发环境:Eclipse(4.5以上) 1.2角色设定 用户在系统中扮演的角色,以及可以执行的职责. 玩 家 操纵玩家坦克,与敌方坦克作战,同时保护本基地.敌方坦克随机移动,发射子弹. 1.3设定玩家(玩家一,玩家二,即一个人玩还是两个人玩),我方坦克的方向和子弹由用户控制,所有墙块都可以打碎,但是铁墙是打不碎的,草地不能阻止坦克和子弹的前进,河…
Java小项目--坦克大战<TankWar1.0> 这个小项目主要是练习j2se的基础内容和面向对象的思想.项目实现了基本的简单功能,我方一辆坦克,用上下左右键控制移动方向,按F键为发射炮弹,敌方有10辆坦克,我方阵亡或者敌方挂光了游戏就结束了.用大小实心圆表示坦克和炮弹.这是最初版本,界面不够友好图形很土鳖,没有网络功能.在后续版本中会添加更炫的图片和网络功能,并加入聊天室,可以局域网内聊天和对战. 效果图: 项目包括4个文件,我把它们贴出来. 文件一:TankClient.java Tan…
Java实例-坦克大战 一.样例图片 二.类图结构 坦克大战中的所有类 类的关系图 我的坦克类 三.说明 1.每一个新的独立运行的东西就是一个线程,像我方坦克,像敌方坦克,像所有的子弹 2.每一个线程要实现run方法,也要start启动线程 3.无论坦克,子弹,都有生命,都有坐标(静),都有速度,都有运动的方向(动) 4.坦克和子弹的运动都是靠修改坐标后的刷新坐标来实现的 5.坦克的子弹的显现都是通过JPanel里面的paint出来的,不断的repaint就能显现所有的运动 6.子弹的连续运动是…
坦克大战——坦克类 一. 团队课程设计博客链接 https://www.cnblogs.com/chenhuilin/p/10275664.html 二.个人负责模块和任务说明 模块:坦克类(玩家坦克类+电脑坦克类),代码整合 三.代码的提交记录截图 四.负责模块和任务详细说明 玩家坦克继承VisibleImage类,电脑坦克类继承自玩家坦克类,UML如下: 1.玩家坦克类 构造方法: 设置坐标位置(坦克出生的位置),坦克的图片,坦克的类型(玩家还是电脑),面板(可将坦克放置于当前面板中),代码…
本文来自:小易博客专栏.转载请注明出处:http://blog.csdn.net/oldinaction 在此小易将坦克大战这个项目分为几个版本,以此对J2SE的知识进行回顾和总结,希望这样也能给刚学完J2SE的小伙伴们一点启示! 如果嫌代码太长,可以在这里下载打包好的源代码哦! 坦克大战效果图: 坦克大战V0.7图片版实现功能: 1.将方向定义为一个Enum类写在一个文件里,修正坦克子弹的颜色 2.加入坦克.子弹.爆炸的图片 3.添加配置文件,并导出可运行的jar包 注意事项: 1.Prope…
本文来自:小易博客专栏.转载请注明出处:http://blog.csdn.net/oldinaction 在此小易将坦克大战这个项目分为几个版本,以此对J2SE的知识进行回顾和总结,希望这样也能给刚学完J2SE的小伙伴们一点启示! 坦克大战V0.6实现功能: 1.超级炮弹 2.我方坦克有生命值 3.图像化我方坦克的生命值 4.添加血块,吃了可以涨生命值 5.敌方坦克死完后可以再有新的加入,我方坦克死亡可以复活 注意事项: 1.画生命值是fillRect()和drawRect()的不同 2.此处血…
写在前面 程序是五六年前读书的时候写的,里面会有一些不规范的,我已经将代码传到github上了,有时间会优化修改. 程序运行机制 定义了一个JPanel,然后每隔一小段时间重绘一遍. 重绘的内容如下: 地图信息: 敌方坦克: 我方坦克: 右边游戏基本信息: 炸弹爆炸. 涉及一些逻辑: 重叠判断: 坦克什么时候改变方向: 坦克什么时候射击: 坦克中弹之后的处理: 砖块.铁块.河流中弹,碰撞逻辑: ...等等 如何执行程序 下载源码: 执行maven命令clean package,可在target目…
要写坦克大战当然要先画出坦克.java画图是基础. package com.game; import java.awt.*; import javax.swing.*; public class Pro_1 extends JFrame { public static MyPanel mp=null; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub P…
坦克大战是我们小时候玩红白机时代的经典游戏,看到有不少小伙伴都使用各种语言实现了一下,手痒痒,也使用java做的一个比较简单的坦克大战,主要面向于学过Java的人群,与学了一段时间的人,有利于面向对象思想的提高,推荐给大家. 详情请参照注释,这里就不多废话了,实现一下儿时的经典而已. Blood.java ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3…
总结:由于这几天快过年比较忙然后没怎么写,写代码途中一些经验总结现在给忘记了.这次的小项目感觉比上次写的思路清楚了点.没有之前第一次写那么逻辑混乱,结构也搞的比之前的要好,添加功能比较容易.学习了之前的经验,操作对象的方法由对象本身提供.不过这次小项目还有不足和不完善之处,有些可以做的功能没有实现,比如游戏存档,这里应该可以用下对象的序列化,还有游戏难度的设置也可以写个文件弄出来.要过年了,到处走亲戚没什么心思写了,这里只能留个尾巴了. 前言:之前的及时通信项目完成后感觉线程方面和对java的运…
一个渣渣写坦克大战的步骤: 1.首先创造好一个坦克和一个GAME框架,并且坦克能够跟着键盘键位移动 案例:在我的博客文件中保存,它的名字是:tankwar0100.rar 主要解决了:1.坦克背景框 2.坦克的不断重画,并且解决了因为重画闪烁问题 3.坦克随着键盘移动问题 2.坦克能够8个方向移动,并且有炮筒,能够发射子弹    案例:在我的博客文件中保存,它的名字是:tankwar0400 主要解决了:1.通过枚举类型给定8个方向类型,然后通过true,false来确定走位 2.如何添加炮筒,…
这是我的坦克游戏大战的最后一版,里面添加很多新的功能.这个坦克大战的有很多不足之处,但是对于初学者来说依然是一个很好的练习项目,从中我们可以学习Java基础知识,将知识与项目结合,学习面向对象编程思想,最主要的是编程的逻辑练习,代码往往不像是写文章从上到下一气呵成完成,中间很可能为增加一个功能来添加一个类一个方法等,中间有很多细节需要我们考虑.文章最后会附加该坦克大战涉及的相关素材. 功能: 1.防止坦克重叠 2.可以分关(闪烁效果) 3.记录成绩(小型游戏都是写在文件中) 4.存盘退出,可以记…
关于这个坦克大战的项目是在学习Java基础的时候,拿来练习的最近看到这些代码,感觉很亲切,就把他们都复制下来,编辑成博客.回首看去,Java基础的学习确实应该建立在找项目练习上,这样才能将学到的基础知识用到实际当中,不然你知道什么是面向对象编程,什么是线程,什么是死锁,概念都了解了一大堆,等到实际应用的时候,还是力不从心.初学者千万不要灰心,真心是敲着敲着就有感觉了.下面还是循序渐进的介绍这个项目的几个版本,注释我写的很详细,新功能添加后部分代码有改动,如果感兴趣,可以看前几篇博客. 坦克大战(…
本文紧接上一篇讲解坦克大战这个项目,因为当初在学习的时候,是以这个案例逐步学习Java基础的,过程是先讲知识点,再将知识点逐步的融入到项目中,即给坦克添加新的功能.之前的Demo练习,想都记录下来.这里不会具体讲解知识点的概念,下面开始啦~ Demo1:Flie的基本用法 package com.fanghua1; import java.io.*; public class Demo1_9 { /** * @param args */ public static void main(Strin…
接下来的几篇博客,想记录一下通过学习坦克大战项目来循序渐进的学习Java基础.主要是为了巩固基础知识,当然学习编程重要的还是多敲,问题通常是在敲代码的过程中发现的,积累也是在敲代码中寻求的经验.这个坦克大战项目是利用Java图形界面来做的,比较简陋.但是,在不断的往里面加功能的时候,可以学到很多知识,最重要的还是体会Java的面向对象编程思想.下面介绍几个用的上的Demo,最后是坦克大战的1.0版本. Demo1:回顾事件处理机制 /* * 功能:事件处理机制(ActionListener的应用…
吃了可以加血的血块类 import java.awt.*; public class Blood { //血块移动的路径 int[][] pos = { {450,250},{450,252},{450,254},{450,256},{450,258},{450,260}, {450,310},{452,300},{454,300},{456,300},{458,300},{460,300} }; int x,y,w,h; TankClient tc; int step = 0; private…
本文来自:小易博客专栏.转载请注明出处:http://blog.csdn.net/oldinaction 在此小易将坦克大战这个项目分为几个版本,以此对J2SE的知识进行回顾和总结,希望这样也能给刚学完J2SE的小伙伴们一点启示! 坦克大战V0.4实现功能: 1.写一个Missile类,产生一个可运动的子弹 2.让子弹可以通过按键控制发射,并且从坦克中心发射出来 3.使坦克停下来仍然能发子弹.为坦克添加炮筒,炮筒的方向会随着坦克运动方向而改变 4.能打出多发炮弹 5.解决炮弹不消亡的问题,解决坦…
本文来自:小易博客专栏.转载请注明出处:http://blog.csdn.net/oldinaction 在此小易将坦克大战这个项目分为几个版本,以此对J2SE的知识进行回顾和总结,希望这样也能给刚学完J2SE的小伙伴们一点启示! 坦克大战V0.3实现功能: 1.写一个Tank类,方便以后产生多辆坦克(重要:利用面向对象的思维) 2.让坦克可以朝着8个方向运动,是完全受控,可停可走 注意事项: 1.使用Tank类的好处,方便以后产生多辆坦克,和坦克相关的变量和方法都可以在Tank类中定义,要使用…
本文来自:小易博客专栏.转载请注明出处:http://blog.csdn.net/oldinaction 在此小易将坦克大战这个项目分为几个版本,以此对J2SE的知识进行回顾和总结,希望这样也能给刚学完J2SE的小伙伴们一点启示! 坦克大战V0.2实现功能: 1.画一个圆圈代表坦克 2.让坦克能够沿着一个方向一直运动 3.利用双缓冲消除圆圈移动时屏幕的闪动 4.能让圆圈通过上下左右按键控制它的运动 注意事项: 1.实例化线程对象时不要忘了是new Thread(Runnable对象); 2.Ru…