当前位置:网站首页>【Unity3D】Tank对战
【Unity3D】Tank对战
2022-08-03 21:04:00 【little_fat_sheep】
1 需求实现
1)人机交互
- 玩家通过 ↑ ↓ ← → 键(或 W、S、A、D)键控制己方坦克平移;
- 玩家通过滑动鼠标右键控制己方坦克左右旋转;
- 玩家通过鼠标左键(或空格键)控制己方坦克发射炮弹;
- 玩家通过 ESC 键控制窗口全屏和恢复;
- 玩家通过 Q 键控制退出游戏;
2)相机
- 主相机跟随:主相机始终在玩家后上方的位置,并保持与玩家的相对位置不变;
- 次相机实现小地图:次相机俯拍战场,并将影像在右上角显示;
- 单击小地图,小地图全屏,再单击,小地图恢复,在全屏和恢复的过程中实现动效。
3)坦克属性
- 坦克有属性:血量、移动速度、旋转速度、颜色、初始位置、初始方位。
4)炮弹属性
- 炮弹有属性:伤害、飞行速度、冷却时间、射程、颜色。
5)敌方坦克生成策略
- 敌方坦克根据能力值分为三个级别,对应比例为 3:2:1,颜色分别为灰、浅蓝、黄;
- 敌方坦克初始生成 10 个,之后每隔 2 秒生成一个,总共 50 个坦克;
- 敌方坦克生成位置和朝向都是随机的,并且能够保证坦克位置不会重叠。
6)敌方坦克作战策略
- 转向再开炮:玩家在敌方坦克 0.5 倍射程范围内,敌方坦克转向玩家,再向玩家开炮;
- 转向再靠近并开炮:玩家在敌方坦克 1 倍射程范围内,敌方坦克转向玩家,再向玩家移动,同时向玩家开炮
- 转向再靠近:玩家在敌方坦克 1.5 倍射程范围内,敌方坦克转向玩家,再向玩家移动;
- 随机巡逻:玩家在敌方坦克在 1.5 倍射程范围外,敌方坦克随机巡逻:将其 10 ~ 30米外的随机一处位置作为目标位置,转向目标位置,再向目标位置移动;如果到中途满足以上条件,则执行相应操作;如果不满足,继续向目标位置移动;如果中途发现前方 5 米范围内有友军,重新换一个目标位置继续巡逻;如果达到目标位置仍不满足以上条件,再换一个目标位置继续巡逻。
7)血条
- 玩家血条显示在屏幕左上角,玩家被命中时,扣除相应血量,血量进度条向左滑动,血量比例更新;
- 敌方坦克血条显示在坦克的上方,随坦克一起运动,坦克被命中时,血量进度条向左滑动;
- 敌方坦克在运动时,其血条始终朝向主相机。
8)摇杆
- 摇杆显示在屏幕左下角,拖拽摇杆可以控制己方坦克平移;
- ↑ ↓ ← → 键(或 W、S、A、D 键)除了能控制己方坦克平移,还能控制摇杆移动。
9)死亡策略
- 坦克在死亡时,停止运动并停止发射炮弹,渐变为透明;
- 己方坦克死亡时,生成一个空对象替换己方坦克,使得玩家可以通过 ↑ ↓ ← → 键(或 W、S、A、D 键)及鼠标右键,继续查看战场。
2 游戏对象
3 游戏框架
4 代码实现
5 运行效果
边栏推荐
- Linux操作Jmeter(附带:关于连接上redis无法进行写入操作的问题),JMeter配置多用户进行压力测试
- 6. XML
- PyCharm函数自动添加注释无参数问题
- leetcode 461. Hamming Distance
- C. Divan and bitwise operations
- 15 years experience in software architect summary: in the field of ML, tread beginners, five hole
- 服务器安装redis
- MMA安装及使用优化
- leetcode 2119. Numbers reversed twice
- nvm的使用 nodejs版本管理,解决用户名是汉字的问题
猜你喜欢
随机推荐
leetcode 326. Powers of 3
ES6--residual parameters
B. Paranoid String
云图说丨初识华为云微服务引擎CSE
系统运维系列 之CSV文件读取时内容中包含逗号的处理方法
False label aggregation
leetcode 16. 数值的整数次方(快速幂+递归/迭代)
这几个常用 alias,带你高效做事(下)
博士申请 | 美国明尼苏达大学葛畅教授招收隐私数据管理方向全奖博士/硕士/博后/访问学者...
2022年强网杯rcefile wp
Power button - 203 - remove the list elements linked list
E - Swap
How can a cloud server safely use local AD/LDAP?
收藏-即时通讯(IM)开源项目OpenIM-功能手册
Why BI software can't handle correlation analysis
Interesting opencv - record image binarization and similarity
leetcode 268. Missing Numbers (XOR!!)
LitJson报错记录
剑指 Offer 07. 重建二叉树
idea2021.1.3配置Gradle步骤