3 添加坦克 3.1 本节效果预览   3.2 另存新场景 首先打开上次的场景s1,另存为s2,放到同一个文件夹下面.   3.3 添加坦克模型 在Model文件夹下面找到Tank模型   将Tank拖放到Hierarchy里面   选中Tank,在Inspector面板里面设置Layer为Players   在弹出的面板里面选择No,this object only.   在后面章节子弹碰撞检测的时候需要检测一定范围之内有没有坦克,就是通过判断这个Layer是否为Players来实现的. 3.…
上篇我们完成了简单的AI编写,但是各个坦克移动时之间是可以重合的, 这节课我们来完成坦克之间的碰撞检测,还是在上篇的EnemyAI中完成. 1.我先现在坦克类Tank中添加两个成员变量: CC_SYNTHESIZE(CCRect, mMovedRect, MovedRect); CC_SYNTHESIZE(bool, IsBlock, Block); mMovedRect是移动后的位置,目的是保存移动后的位置来检测碰撞, 如果发现与其他坦克碰撞了,则不执行移动动作: IsBlock是用来标记坦克…
在上篇我们完成了子弹和地图碰撞的检测,在这篇我们将完成敌方坦克AI的编写. 具体思路是屏幕中保持有四个敌方坦克,然后坦克随机方向运动,并且子弹消失后1秒发射一次 1.我们新建一个敌方坦克的AI类来控制地方坦克AI行为: static const char* enemyTankType[] = { "normalU.png", "speedU.png", "armor1U.png" }; class EnemyAI { public: EnemyA…
要能够控制坦克运动,必须用到事件处理的知识. 事件处理的一个demo. /** * 事件处理机制:委派事件模型.指当事件发生的时候,产生事件的对象(事件源),会把此 * "消息"传递给"事件的监听者"的一种处理方式,而这里的"信息"指java.awt.event事件类库种 * 某个类创建的对象. 在java种,消息 是一种事件对象. * * * 事件源-----事件(一个事件对象)----->事件监听者[事件处理方法] */ package…
周一没有看圣诞大战,这几天比较忙也没有看赛后的报道,今天就先不扯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:/…
11 游戏流程控制 使用协程来控制游戏流程 11.1 添加MessageText 首先添加一个Text来显示文字   image 设置GameMgr   image 11.2 游戏整体流程 下面GameMgr.cs最终代码预览,后面我们逐个讲解. using UnityEngine; using UnityEngine.UI; using System.Collections; public class GameMgr : MonoBehaviour { private int roundNum…
10 相机控制 本节主要学习如何控制相机自动调整位置和焦距,使两个坦克一直同时在视野内.   image 在Hierarchy点击右键   image 点击 Create Empty,生成空对象,改名为CameraRig   image 设置CameraRig rotation为(40,60,0)   image 将MainCamera拖拽到CameraRig中,使之成为CameraRig的子对象 设置MainCamera的position为(0,0,-65),rotation为(0,0,0)…
全部html5都采用绘图技术完成.坦克是画出来的.(坦克,子弹,墙,水,草坪) 首先我们画出坦克. 坦克是两边两个矩形,中间一个大矩形,矩形了有一个圆,还有一根线. 画出坦克的思路是以坦克的左上角为参照点,画出坦克的其他部分. 这样的好处是,当左上角的点发生改变是,坦克才能发生改变. 不使用图片的原因就是图片是比较耗费资源的.因为图片的像素点很大. tankGame1.html的代码 <!DOCTYPE html><html><head><meta charset…
这是前几天学习的案例,这两天学习了NGUI和UGUI,被UI搞得很烦躁,但是今天还是将前几天学习的坦克大战总结以下.这个游戏是小时候的经典红白机游戏的复刻,见截图: 一.游戏物体 游戏中包含地图元素(墙.障碍.水.空气墙.水等).敌方坦克.我方坦克.核心等一系列物体,在选择进入游戏后,由一个空物体生成场景-各种游戏物体,之后各游戏物体按照自身带着的脚本和组件进行运动或产生和玩家的交互,下面主要是分析刚才的内容. 二.主菜单界面 public class Option : MonoBehaviou…
9 发射子弹时蓄力 实现效果如下   image 按下开火键(坦克1为空格键)重置力为最小力,一直按着的时候蓄力,抬起的时候发射.如果按着的时候蓄力到最大,则自动发射,此时在抬起则不会重复发射. 首先定义和力相关的几个变量 private float crtForce = 15; // 当前的力 private float minForce = 15; // 最小力 private float maxForce = 30; // 最大力 蓄力还需要一个速度 private float force…
4 坦克移动和旋转 本节课的目标是实现同时wsad和上下左右控制两个坦克分别移动和旋转 4.1 本节代码预览   image 将上节课场景s2另存为s3. 4.2 添加车轮扬沙效果 从Prefabs里面找到DustTrail,拖放到Tank里面   image 单击DustTrail,改为LeftDustTrail,设置坐标为(-0.5,0,-0.75) 在Hierarchy里面使用快捷键Ctrl+D,复制LeftDustTrail,改为RightDustTrail, 设置坐标为(0.5,0,-…
0.案例介绍 0.1开始界面   点击Play Now 进入游戏界面   左边的坦克使用ws控制前后移动,ad键左右旋转,空格键开火   右边的坦克使用方向键上下控制前后移动,方向键左右键实现左右旋转,enter键开火   1.准备工作 本案例需要unity5.2以上版本. 素材为Tanks Tutorial.unitypackage 1.1新建3d项目   点击unity右上角的Layout将布局方式切换为2by3   拖动Project面板到Hierarchy面板下方   点击Project…
2  场景设置 2.1 本节效果预览   2.2 项目目录设置 点击Project面板的Create按钮,在根目录下面新建wm文件夹   Wm文件夹用于存放我们自己生成的Prefab和脚本等其他资源,主要是与Tanks项目原始资源和素材做区分. Wm文件夹下面有三个子文件夹   Prefabs用于存放我们自己定义的预设体 Scenes用于存放我们的游戏场景 Scripts用于存放我们自己写的C#脚本 2.3 新建场景 点击菜单File -> New Scene新建一个场景,保存到Scenes下面…
5 子弹 本节的任务是创建子弹的Prefab   image 首先从Model/Shell找到子弹的模型,拖入Hierarchy中,添加刚体组件,所有属性默认值. 添加Capsule Collider,选中 Is Trigger,设置center为(0,0,0.2),radius为0.15,Height为0.55, Direction为Z-Axis.   image 效果如下   image 从Prefabs中找到爆炸效果预设体ShellExplosion,拖放到Shell里面   image…
6 发射子弹 本节完成发射子弹的功能,最终代码如下:   image 首先,发射子弹得确定发射的位置和方向,还有发射的初始速度.具体的发射速度和按下发射按键的时间长短有关,这个关于子弹的蓄力我们在第九小节中会讲到. 首先我们在Tank上添加一个空物体,命名为FirePosition,设置Position为(0,1.7,1.35), Rotation为(350,0,0)   image 在wm/Scripts中创建C#脚本Shooter.cs   image 首先我们是在按下开火键的时候发射子弹的…
7 坦克血条 点击菜单GameObject->UI->Slider创建Slider   选中EventSystem,设置Horizontal Axis为HorzontalUI,Vertical Axis为VerticalUI   image 选中Canvas,设置Render Mode为World Space, Reference Pixels Per Unit为1   image 将Canvas拖到Tank中,使其成为Tank的子对象,相关参数设置如下   image 将Slider改名为H…
8 子弹碰撞处理 为了处理子弹打到坦克的伤害我们在这里新建一个Shell.cs 子弹有两种情况,碰到坦克炸开,没有碰到坦克则过2s子弹销毁. void Start () { Destroy (gameObject, 2); // 过2秒子弹销毁 } 碰到子弹我们这里使用OnTriggerEnter,要想这个发生首先要确保Shell预设体里面Collider的Is Trigger已经被选中了.   image 然后在OnTriggerEnter里面我们检测在一定范围之内的坦克有哪些. privat…
本文来自:小易博客专栏.转载请注明出处:http://blog.csdn.net/oldinaction 在此小易将坦克大战这个项目分为几个版本,以此对J2SE的知识进行回顾和总结,希望这样也能给刚学完J2SE的小伙伴们一点启示! (此版本基本上就可以和电脑对打了,不信把源码放到你的电脑上就可以马上开启坦克大战之旅哦) 坦克大战V0.5实现功能: 1.产生一个敌方坦克 2.将敌人坦克击毙,相应的子弹和坦克都消失 3.添加爆炸效果 4.添加多辆坦克,并能够打掉敌方坦克 5.让敌方坦克可以随机运动,…
在JavaScript中,不要在变量为定义之前去使用,这样很难察觉并且无法运行. 颜色不对. 当我的坦克移动时,敌人坦克消失. tankGame3.html <!DOCTYPE html><html><head><meta charset="utf-8"/></head><body onkeydown="getCommand()"><h6>HTML5坦克大战</h6>&l…
在JavaScript中,不要在变量为定义之前去使用,这样很难察觉并且无法运行. 颜色不对. 当我的坦克移动时,敌人坦克消失. tankGame3.html <!DOCTYPE html><html><head><meta charset="utf-8"/></head><body onkeydown="getCommand()"><h6>HTML5坦克大战</h6>&l…
  公司这几天在准备新版本的上线,今天才忙里偷闲来写这篇博客.接着上一篇的"H5坦克大战之[玩家控制坦克移动2]"(http://www.cnblogs.com/zhouhuan/p/H5_tankgame3.html),这一篇来写怎么建造敌人的坦克. 我的想法是,基于可扩展性和性能等方面的考虑,用构造函数改造之前的部分代码,再在这个基础上,实例化出来不同的坦克.   1.一开始的两个步骤不变 //封装一个获取绘图环境的函数 function getCxt(){ var myCanva…
本文来自:小易博客专栏.转载请注明出处:http://blog.csdn.net/oldinaction 在此小易将坦克大战这个项目分为几个版本,以此对J2SE的知识进行回顾和总结,希望这样也能给刚学完J2SE的小伙伴们一点启示! 坦克大战V0.3实现功能: 1.写一个Tank类,方便以后产生多辆坦克(重要:利用面向对象的思维) 2.让坦克可以朝着8个方向运动,是完全受控,可停可走 注意事项: 1.使用Tank类的好处,方便以后产生多辆坦克,和坦克相关的变量和方法都可以在Tank类中定义,要使用…
PS:这个坦克大战是在网上下的一段源码之后,自己进行的重写.   写这个的目的是为了巩固自己这段时间对js的学习.整理到博客上,算是对自己近端时间学习js的一个整理. 同时也希望可以帮助到学习js的园友.由于自己也是刚学js不久,所以难免出现错误.如果发现希望给予指正.   这个教程适合熟悉js基本语法和面向对象语法的园友学习. 本身没有太难的东西,这个案例将js面向对象用的比较好,可以作为js面向对象的入门教程. 1.   创建基本对象,实现坦克简单的移动. 1.1    如何在地图中绘制画布…
前几天粗略地学了HTML5,然后就用它写了一个<经典坦克大战>游戏. 现在想分享一下我写的代码,写得不好请大家多多指教. 给大家推荐一个网站,这个网站是为大学生而做,为方便学习编程的同学而做的.(淘课学院)http://www.taokeschool.com/ <经典坦克大战>游戏截图 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <…
今天想将自己去年自己编写的坦克大战的代码与大家分享一下,主要面向学习过java但对java运用并不是很熟悉的同学,该编程代码基本上涉及了java基础知识的各个方面,大家可以通过练习该程序对自己的java进行一下实战. 每个程序版本代码中,都附有相关注释,看完注释大家就可以对本程序设计有个很明显的思路.真的很有趣,想对java重新温习的同学完全不必再对厚厚的java基础书籍进行阅读了,在跟着本次代码练习并分析后,大家一定会对java各方面基础知识 尤其是线程的知识有更深一步的了解!!! 本次坦克大…
[坦克大战]Unity3D多人在线游戏 http://www.taikr.com/my/course/937 1.NetworkManager的介绍: 说明:选择固定生成时会自动寻找有StartPosition组件的位置 2.NetWorkDiscovery组件的介绍: 使用在局域网中的一个组件,在英特网上不能使用 官方文档: 说明:NetWorkDiscovery与Network managerHUD相似: Network managerHUD介绍:就是显示Network manager的,如…
最近学习了马士兵老师直播的单机版坦克大战,模仿的做了一个,整理一下思路记录下来,项目git地址:https://github.com/zhuchangli/TankWar/tree/master 视频地址:https://www.bilibili.com/video/av5949029  TankClient类:管理其他类,作为主程序的接口, package cc.openhome; import java.awt.*; import java.awt.event.KeyAdapter; imp…
之前我们有分享过不少经典的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设定玩家(玩家一,玩家二,即一个人玩还是两个人玩),我方坦克的方向和子弹由用户控制,所有墙块都可以打碎,但是铁墙是打不碎的,草地不能阻止坦克和子弹的前进,河…