使用建造者模式做一个密室逃脱类游戏

本文介绍了作者在开发密室逃脱游戏时,对比了常规编写UI和使用建造者模式的方法。建造者模式允许在资源有限的情况下,通过配置加载不同关卡的控件,减少了代码冗余,提高了开发效率。文中详细阐述了如何实现物品栏功能,包括动态添加物品、坐标转换和处理问题的经验。

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

     最近连续做了两个密室逃脱类的游戏,分别使用了两种不同的代码构建思路。第一种就是像常规那样子去每一关写画一个单独的UI,然后再配上对应的脚本,再添加上点击动画,效果。第二种使用的是建造者模式,将游戏中每一个控件,比如说桌子啊,沙发什么的单独写出来。然后在构建游戏的时候创建一个通用的场景,根据关卡和配置的参数加载进本关的一些控件。

   一开始公司考虑的是要上微信小程序,微信小程序限制包体只能在4M,服务器可以放4M资源,但是我们又没有服务器。所以就要把所有的资源限制在4M以内。再这样的前提下我选择了建造者模式,至少它不需要构建那么多不同的场景层。不过这样做的话就要布一个很大的框架,代码冗余显得很重,但是好处也是显而易见的,随着关卡的增加,你会越做越快,因为这种密室逃亡类的游戏一般资源的复用率很高,并且在代码上的改动什么的也可以很快的定位到。你需要的只是每一关的关卡配置信息,然后加载相应的控件。不幸的是我这个游戏,只让我做了15关,费尽心力终于到了可以轻松做下去的时候,却要停下来。资源代码也控制在了4M以下。然后还突然说不上微信了,换做另一款游戏。不同的风格,不同的布局,又要再搭一遍框架。这一次我没有选择建造者,而是用了最原始的,反正又是十五关,布那么大个局浪费。写个关卡基类,继承 ,拓展,仅仅用了五天就完成了新游戏并接入了广告和SDK。虽然也存在这种游戏做起来难度不大的原因。

  在游戏中我们会得到相应的物品,然后使用物品去做一些操作。物品栏是必须的。

    物品栏我是使用的创建几个固定大小的空的父节点,然后得到物品的时候把得到物品的名字通过事件冒过去,然后遍历这几个父节点,找到第一个没有子节点的父节点,动态生成一个并添加上去,加载相应的图片。创建一个图片,需要首先创建一个节点,然后在这个节点上增加组件,cc.Sprite,写好的脚本等等。碰撞的脚本是挂在父节点上的,移动什么的也是挂在父节点上。图片只负责展示这是什么东西。

getGameItem(event){

         var self = this;

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值