[Unity3D]自己动手重制坦克舰队ArmadaTank

我玩过一款坦克游戏ArmadaTank(坦克舰队),如下图所示

几个月前我尝试用Unity3D重制这款游戏,已经可以玩起来了。下面是在PC上的重制版截图。

还有Android版的

重制版

重制版有这么几个重点。

拥有所有原版的模型

所有的模型(坦克、老巢、树、建筑、石头、奖励……)都与原版的模型完全相同。通过分析原版模型的数据,我写了一个格式转换器,把原版模型格式转换为通用的3DS格式。这样一来,这些模型就可以用到各种App里了。

好吧有一个模型与原版可能不同,就是砖块。在原版里没有存储砖块模型,大概是编码生成的。我只能做到尽量相似。

拥有所有原版的关卡

一个关卡其实就是一个地图。通过分析原版的地图文件,我写了一个地图分析和加载器。这样就可以直接使用原版的地图文件。所以重制版的关卡也与原版完全相同。

好吧关卡也有那么一点点不同。我发现有几个关卡加载进来会有一个格子的错位,我只好修改一下地图文件,使其加载后与原版的效果相同了。

下面是几个关卡的例子。

拥有原版的3种武器

目前已经实现了玩家的3种武器(加农炮、机关枪、导弹),其发射频率、飞行速度等都与原版相同。当然这也是通过分析原版的数据精确计算出来的。还剩下3种武器暂时没有实现。

拥有所有原版的装备

防御、移动速度、射击速度、子弹速度、子弹破坏力这5种装备都与原版相同。同上,这也是通过分析原版的数据精确计算出来的。

攻击、碰撞

原版里,玩家与其它坦克碰撞时,玩家与对方都不能移动;而敌方坦克之间相互碰撞时,是无视碰撞直接穿透的。子弹只对敌对方的坦克有伤害。这些功能的实现需要一些特殊的设计。

试玩Demo

您可以到这里下载PC和Android版试玩。

链接:http://pan.baidu.com/s/1kTCFU3X 密码:jg6u

如果您需要项目源码请捐赠100元并留下您的联系方式。

如果您希望我详细介绍这次重制的重点难点,可以留言。需求多的话我就抽时间写写。

[Unity3D]自己动手重制坦克舰队ArmadaTank的更多相关文章

  1. [Unity3D]自己动手重制坦克舰队ArmadaTank(2)从碰撞说起

    [Unity3D]自己动手重制坦克舰队ArmadaTank(2)从碰撞说起 在上一篇里我给出了重制的坦克舰队效果图和试玩程序.本篇介绍一下玩家坦克和敌方坦克碰撞问题. +BIT祝威+悄悄在此留下版了个 ...

  2. Xamarin.Forms之UserDialogs 重制版本

    在 forms 里面,目前使用比较多的弹出组件是 Acr.UserDialogs ,但是这个组件有些小问题,比如 loading .hide 会同时把 toast 给一起关掉,android 下的 t ...

  3. 使用AndEngine重制《是男人就上一百层》

    1.为什么还要做<是男人就上一百层> 一是在用Android原生API开发完<是男人就上一百层>以后,一直想体验一下用引擎开发游戏是个什么感觉,顺便也让游戏听上去高大上一些(使 ...

  4. 重制AdvanceWars第一步 -- 搞定地图

    首先来聊下高级战争吧Advance Wars,由任天堂旗下的Intelligent Systems开发的战棋游戏.初作诞生于GBA上,后来继续跟进了高战2黑洞崛,而后在下一代掌机DS上也出了三代续作高 ...

  5. 替换/重制Homebrew源

    homebrew主要分两部分:git repo(位于GitHub)和二进制bottles(位于bintray),这两者在国内访问都不太顺畅.可以替换成国内的镜像,git repo国内镜像就比较多了,可 ...

  6. 微软重制Windows 1.0系统:祖师爷出山了

    Windows官方推特在7月1日发布了一条很有趣的动态,“向大家介绍全新的Windows 1.0,带MS-DOS.时钟等”.配发的视频回顾了从Windows 1.0/3.1到Windows 10期间, ...

  7. BIT祝威博客汇总(Blog Index)

    +BIT祝威+悄悄在此留下版了个权的信息说: 关于硬件(Hardware) <穿越计算机的迷雾>笔记 继电器是如何成为CPU的(1) 继电器是如何成为CPU的(2) 关于操作系统(Oper ...

  8. Unity3D 回合制 网上源码 目前还在研究构思

    我们已将回合制的战斗模式讲解得很清楚了.那么,如果在Unity3D游戏中实现一个回合制游戏呢?我们从最简单的一对一模式来设计回合制游戏的原型.我们可以游戏的状态划分为下面三种状态:        1. ...

  9. 图文详解Unity3D中Material的Tiling和Offset是怎么回事

    图文详解Unity3D中Material的Tiling和Offset是怎么回事 Tiling和Offset概述 Tiling表示UV坐标的缩放倍数,Offset表示UV坐标的起始位置. 这样说当然是隔 ...

随机推荐

  1. Oracle存储过程语法

    原文链接:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程  1 CREATE OR REPLACE PROCEDURE 存储过程名  ...

  2. Drools API的使用学习

    Drools API的使用学习在 Drools 当中,规则的编译与运行要通过 Drools 提供的各种 API 来实现,这些 API 总体来讲可以分为三类:规则编译.规则收集和规则的执行.完成这些工作 ...

  3. 增删改查--windows下mysql客户端--表的使用

    >>>>>>>>>>>>>>>>>>>> selet 5种子句之where常用运 ...

  4. strip_tags、htmlspeciachars

    strip_tags:过滤html.xml标签: htmlspecialchars:把预定义自负转化为html实体:包括<.>.'.".& sql注入:将'." ...

  5. WEB开发入门

    对服务器的概念需要更新一下: 从物理上来说,服务器就是一台PC机,至少8核,以T计算,带宽100M以上 一般有的服务器 1. web服务器 -- PC机上安装一个具有web服务的软件 2. 数据库服务 ...

  6. Coming

    Hi,there, I am coming here to keep a great habit-one day a blog to share what new I have learned tod ...

  7. Git 创建本地仓库

    前面已经搭好环境了,现在我们缺的是一个管理版本控制的仓库.这次的实验是在电脑本地创建本地仓库.指定路径 默认的位置是在你所安装Git的目录下.Git的仓库你可以建在你电脑的任何目录下(最好不要包含有中 ...

  8. css/js(工作中遇到的问题)-4

    JS生成随机的由字母数字组合的字符串 Math.random().toString(36).substr(2)

  9. 微信禁用右上角的分享按钮,WeixinJSBridge API以及隐藏分享的子按钮等菜单项

    <!--禁用微信分享按钮--> <script> function onBridgeReady() { WeixinJSBridge.call('hideOptionMenu' ...

  10. shell中${ } 的一些特异功能

    假设我们定义了一个变量为: file=/dir1/dir2/dir3/my.file.txt 我们可以用 ${ } 分别替换获得不同的值: ${file#*/}:拿掉第一条 / 及其左边的字符串:di ...