Unity3D 巡逻兵

智能巡逻兵

参考博客: Unity3d学习之路-简单巡逻兵
(偷了一下懒,主人公和巡逻兵的预制体均为上述博客博主所用的预制体)

游戏和设计要求:

  • 创建一个地图和若干巡逻兵(使用动画);
  • 每个巡逻兵走一个3~5个边的凸多边型,位置数据是相对地址。即每次确定下一个目标位置,用自己当前位置为原点计算;
  • 巡逻兵碰撞到障碍物,则会自动选下一个点为目标;
  • 巡逻兵在设定范围内感知到玩家,会自动追击玩家;
  • 失去玩家目标后,继续巡逻;
  • 计分:玩家每次甩掉一个巡逻兵计一分,与巡逻兵碰撞游戏结束;

程序设计要求:

  • 必须使用订阅与发布模式传消息
  • 工厂模式生产巡逻兵

游戏规则和背景:

  • 背景:
    小新(主角)不知道怎么回事被送到了一个小迷宫中,迷宫中有九间房,每间房都有一个巡逻兵,小新若是被这些巡逻兵发现,则会被杀死(游戏结束)。小新要逃离这个地方,他必须得先找到三把钥匙,然后,找到迷宫的出口(一个门口),才能离开这里。
  • 游戏规则:
    通过WASD或方向键控制人物走动,在一个房间中,当人物被巡逻兵发现时,巡逻兵会追赶人物,人物必须要逃离出该房间才能脱离该巡逻兵的追赶,每逃离一次追赶,分数加一,当人物被巡逻兵追赶上时,游戏失败。人物从迷宫中找到三把钥匙,并走到迷宫的门口,即可赢得游戏。

游戏场景说明

刚开始进入游戏,屏幕显示的为游戏说明,此时,点击任意地方进入游戏。

这里写图片描述

进入游戏后,主摄像头会跟随人物移动,而另一个摄像头则负责从上空拍摄整个地图(因为之前没这个小地图时,发现很难过关)。总共有九个房间,每个房间都会有一名巡逻兵,在没有捉捕玩家的时候,巡逻兵走一个正方形。下面,对地图做一下分析。

这里写图片描述

游戏胜利或游戏失败后,点击屏幕中间的字,即可重新开始游戏。

部分代码

游戏代码量比较多,这里就选择一部分来说明,若有需要,请传送——传送门

玩家操作处理:

//玩家操作,为增加难度,玩家每次只能上下左右其中一个方向
        if(FirstSceneController.gameStatus == 0)
        {
            if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W))
            {
                action.MovePlayer(0);
            }
            else if (Input.GetKey(KeyCode.DownArrow) || Input.GetKey(KeyCode.S))
            {
                action.MovePlayer(2);
            }
            else if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.A))
            {
                action.MovePlayer(-1);
            }
            else if (Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D))
            {
                action.MovePlayer(1);
            }
        }

记分员类

//记分员,记录分数和各种必要信息
public class ScoreRecorder : MonoBehaviour
{
    public FirstSceneController sceneController;
    //分数
    public int score = 0;        
    //已找寻了的钥匙的数目
    public int keys = 0;    
    //是否在出口前
    private bool inDoor = false;

    // Use this for initialization
    void Start()
    {
        sceneController = SSDirector.GetInstance().CurrentScenceController as FirstSceneController;
        sceneController.recorder = this;
    }
    //获取当前分数
    public int GetScore()
    {
        return</
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值