unity learning 3

这是一个关于牧师与魔鬼过河的经典谜题游戏解析,游戏目标是在限制时间内帮助三名牧师与三名魔鬼过河,同时确保任何时候牧师数量都不少于魔鬼以避免被攻击。游戏通过简单的点击操作实现人物移动及船只操控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阅读以下游戏脚本

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!

牧师和魔鬼是一个益智游戏,你将帮助牧师和魔鬼在时限内过河。河的一边有三个祭司和三个魔鬼。他们都想到河对岸去,但是只有一艘船,这艘船每次只能载两个人。必须有一个人把船从一边转到另一边。在flash游戏中,你可以点击它们来移动它们,然后点击go按钮将船移动到另一个方向。如果在河的两旁,祭司的人数超过魔鬼,他们就会被杀,游戏就结束了。你可以用许多>方法来尝试。让所有的牧师都活着!

程序需要满足的要求:

  • play the game ( http://www.flash-game.net/game/2535/priests-and-devils.html )
  • 列出游戏中提及的事物(Objects)
  • 用表格列出玩家动作表(规则表),注意,动作越少越好
  • 请将游戏中对象做成预制
  • 在场景控制器 LoadResources 方法中加载并初始化 长方形、正方形、球 及其色彩代表游戏中的对象。
  • 使用 C# 集合类型 有效组织对象
  • 整个游戏仅 主摄像机 和 一个 Empty 对象, 其他对象必须代码动态生成!!! 。 整个游戏不许出现 Find 游戏对象, SendMessage 这类突破程序结构的 通讯耦合 语句。 违背本条准则,不给分
  • 请使用课件架构图编程,不接受非 MVC 结构程序
  • 注意细节,例如:船未靠岸,牧师与魔鬼上下船运动中,均不能接受用户事件!

 游戏提及的事物有船,牧师,魔鬼,河流,两岸。

玩家动作执行条件运行结果
点击角色(牧师或魔鬼)船在岸边角色上船或下船
点击船船上至少有一个角色,不能为空船到另一边岸

将所有游戏提及到的对象设好大小形状,加上颜色材料做成预制,预制如图:

 一共写了5个scripts,分别是

其中Models文件中是放了 SSDirector类, ISceneController接口,IUserAction接口,还有角色类(角色,岸,船),角色类包括了生成的方法(名字,状态等属性),行为方法(怎么移动,上下船,上下岸等)。

Move文件是定义了船在水上的移动方法。

然后是Click是定义了用户可以点击的对象。

Controller文件则是控制游戏,先是拿到单例,生成GUI,生成所有对象资源的LoadResources,LoadCharacter,然后是用户行为产生的事件,就是点击船,点击角色,然后是判断游戏输赢的check,最后是游戏输了可以restart。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值