【Unity3D】Tank对战

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 运行效果

猜你喜欢

转载自blog.csdn.net/m0_37602827/article/details/126132666