一、玩法简介
牧师与魔鬼是一款益智类型的小游戏,其核心玩法是确保三位牧师安全地到达河的对岸,同时避免被三位魔鬼伤害。游戏的挑战在于只有一艘船,且船每次只能载两个人,而且船在移动时必须至少有一个人在船上操作。玩家需要通过点击操作,将牧师和魔鬼移动到船上,并控制船的移动方向,以确保在任何时候河的两岸都不会出现魔鬼数量超过牧师的情况,否则牧师会被魔鬼伤害,游戏结束。
二、实现
1.对象预制
把游戏中需要用到的船、恶魔、牧师、墙壁、河流对象预制制作好
2.脚本架构
(1)Actions
该文件下的脚本包括了从简单动作到复杂组合动作的实现
每个脚本的大致功能教案中已经有所介绍,在此不再赘述
(2)Models
Models文件夹包括了各个对象的类的实现,如船、角色等,还有点击Click的事件处理
(3)Views
这个文件夹下主要是设计了游戏的界面,能够显示例如游戏标题、游戏时长等元素
(4)Controllers
这是游戏的控制部分,由多个控制脚本组成,例如船的控制、角色的控制等等,其中FirstController这个脚本是重点
可以看出,此游戏的脚本使用了MVC框架来整理代码的结果,并且进行了动作的分离
3.部分代码讲解
船这个类的代码,包括了承载角色数目等变量,船上最大只能承载两个人,构造函数的内容是加载预制好的船的模型,并把它放到预先设想好的位置坐标上
public class Boat
{
public GameObject boat;//船对象
public Role[] roles;//船上的角色
public bool isRight;
public int priestCount, devilCount;
public Boat(Vector3 position) {
boat = GameObject.Instantiate(Resources.Load("Prefabs/boat", typeof(GameObject))) as GameObject;
boat.name = "boat";
boat.transform.position = position;
boat.transform.localScale = new Vector3(2.8f,0.4f,2);
roles = new Role[2];
isRight = false;
priestCount = devilCount = 0;
boat.AddComponent<BoxCollider>();
boat.AddComponent<Click>();
}
}
角色类的代码
包括判断身份,是否在船上等等的变量,构造函数的作用与B