游戏介绍
Priests and Devils
Priests and Devils is a puzzle game in which you will help the Priests and Devils to cross the river within the time limit. There are 3 priests and 3 devils at one side of the river. They all want to get to the other side of this river, but there is only one boat and this boat can only carry two persons each time. And there must be one person steering the boat from one side to the other side. In the flash game, you can click on them to move them and click the go button to move the boat to the other direction. If the priests are out numbered by the devils on either side of the river, they get killed and the game is over. You can try it in many > ways. Keep all priests alive! Good luck!
游戏规则
胜利目标:所有魔鬼和牧师都成功到达对岸
河的一岸有三个魔鬼和三个牧师,需要通过船过河,船每次只可载两人,且必须有一人划船才可过河。当任意一岸的魔鬼数量超过了牧师,牧师则会被魔鬼伤害,游戏失败。
游戏演示
视频链接:
MVC架构介绍
本游戏采用MVC架构
MVC是界面人机交互程序设计的一种架构模式。它把程序分为三个部分:
- 模型Model:数据对象以及关系
- 游戏对象、空间关系
- 控制器Countroller:接收用户事件,控制模型的变化
- 一个场景一个主控制器
- 实现与玩家交互的接口(即写接口包含的函数)
- 实现或管理运动
- 界面View:显示模型,将人机交互事件交给控制器处理
- 接收Input事件
- 渲染GUI
游戏实现
1.制作游戏需要的对象的预制实体
先创建3D项目,然后在Assets中创建如下文件夹,严格按此目录组织
材料Materials、预制Resources/Prefabs、脚本Scripts
然后预制出魔鬼、牧师、河流、河岸和小船的预制对象。
2.编写脚本,搭建游戏场景,实现游戏功能。
把编写好的脚本文件都放入Scripts文件夹中。
Basecode.cs
- Basecode.cs中定义了一个命名空间,命名空间中定义了重要的类与接口
- Director导演类,只有一个实例,控制场景的创建、切换、销毁、游戏暂停、游戏退出等。
- 接口SceneController, “导演”控制“场记”的渠道。
- 接口UserAction, 使用“门面”模式,对用户输入做出反应。
- Moveable类,移动物体,包括了移动物体的相关函数等。
- MyCharacterController类,将预制中的牧师和魔鬼实例化,并将Movealbe和ClickGUI挂载到每个角色上。以及游戏对象相关状态变化的相关函数。
- CoastController类,将河岸实例化,右岸是起点,左岸是终点。同时也包括游戏对象与河岸相关的交互的函数。
- BoatController,将预制中的船实例化,并将Moveable和ClickGUI挂载到了船上。以及一些游戏对象与船交互的函数。
FirstController.cs
- FirstController类,“场记”,管理所有游戏对象,协调游戏对象之间的通讯,响应外部输入事件,实现游戏的逻辑结构。
UserGUI.cs
- UserGUI类,编写UI界面,实现用户交互逻辑,展示游戏结局。
ClickGUI.cs
- ClickGUI类,接收用户鼠标点击操作。
3.创建一个空对象,命名为main,并把FirstConrtoller.cs拖入其中,游戏制作完成。
游戏测试
游戏运行
点击角色上船
点击角色上岸
游戏失败
游戏成功
演示视频
【Unity3D】魔鬼与牧师游戏演示_哔哩哔哩_bilibili
项目代码
代码地址:https://gitee.com/wu-weijia73/UnityWork4.git