如何用 Creator 快速合成大西瓜?
撇开这两天挂在热搜上的负面不谈,这个游戏本身还是有许多可探讨的空间,毕竟技术永远可以学习,更何况《合成大西瓜》这款游戏还是用 Cocos Creator 开发的,得废寝忘食地学!
尤其昨天还发布了 Cocos Creator 3.0 正式版,建议错过的朋友点击阅读,它值得你一个转发。
经过几天的探索,社区许多同学对这款游戏的理解已经走在了时代的前沿。今天 B 站活跃 Up 主就携项目代码来给大家讲解一下大西瓜的游戏制作思路,看完也许你春节假期就有事做了。
以下投稿来自 Nowpaper,欢迎阅读!
合成大西瓜
大家好,我是 B 站 up 主 Nowpaper,互联网上突然起了瓜风,各种大西瓜飘来飘去凌乱眼花,作为吃瓜运动积极份子,怎么能轻易放过?抓紧时间,咱们也吃一口。
合成大西瓜的玩法非常简单,丢下随机生成的水果,二合一逐步升级,最终合成“大西瓜”。在开发群里,一帮人还在探讨这个游戏的时候,我不合时宜的说一句:就这?我大概俩小时就开发一个。
群里的突然沉默,让我顿时紧张了起来,是隔着屏幕唏嘘不已?还是狂笑我不自量力?切,我是谁?让你们见见中年老男人的厉害。
当晚草草吃了饭,开启了直播,大约两个多小时,用 Cocos Creator 完成了《合成大西瓜》第一个版本,还原度 80%。
我开直播只是证明,这游戏开发出来很容易,没想到这个举动引来好多人的围观,瞬间涨粉好几十,高兴地唠嗑到了 12 点半。
你们是不是觉得特牛掰,特大神,其实依赖于 Cocos Creator 快速开发的特性,这事任何人都能做到。不信,你顺着我这个思路看下去就知道了。
任何游戏的开发工作量可以分为核心工作量和附加工作量,游戏最核心的内容开发完,可能就已经 90% 完成了。
但是最后的 10%,没准可能会用上很长很长的时间,这在游戏行业中非常常见,因为游戏核心玩法完成并不代表着游戏功能的完成。各种围绕玩法构建出来的游戏功能,可能是核心玩法的几倍甚至几十倍的工作量。
所以,像合成大西瓜这种核心玩法明确,功能单一的游戏,只要掌握开发知识,选择好的工具,其实搞起来真的非常简单。
很多人看到我这个开发过程感叹非常急速,其实是没有分辨出核心和附加工作量的边界,那么,让我们分解一下《合成大西瓜》:
游戏玩法:合成,相同的两个合成一个
操作方法:点击屏幕,掉落水果
表现形式:物理掉落,碰撞检查
界面流程:合成得分,超过死线失败
就这些了,现在我们只需将上述分解点的代码写出来,那么这个游戏就完成了。我两个小时的开发中,基本上就是解决上面的分解点。完成游戏开发,总共写了 300 多行代码。
能够如此急速的开发出来,完全得益于一个好的开发引擎和开发工具。Cocos Creator 解决大部分工作,比如 UI 制作、物理编辑等等,这些已经帮开发者全部解决了,所以才能这么快的完成开发。
在 Cocos Creator 中(本游戏使用的是 2.4.0 版本),可视化的编辑游戏场景,能够快速的搭建 UI 界面,省去了很多工作量。
在很多的游戏引擎中,物理系统并不能可视化编辑,需要借助开发者的数学知识来完成物理世界的构建。
这就非常蛋疼了,反正我是不具备那么深厚的知识,而 Cocos Creator 中的物理编辑,是直接通过组件化的方式呈现,通过参数调整可视化地完成物理参数修正。
如果没有这个功能,我估计要在物理编辑方面浪费两个小时以上的时间,除了编辑还得测试,那将是一个痛苦的过程。
界面和物理基本都完成的情况下,就可以进行编码开发了。在直播的版本中,我只写了两个组件脚本,分别为 Ball 和 Game。
这两个组件脚本,分别处理水果和游戏本身,水果的脚本处理非常直接,它只需要处理物理事件中的 onBeginContact 回调,对应的处理如下:
由于合成变大,除了消除合成体以外,还要添加更加高级的一个水果进入到游戏场景。所以,在 Game 脚本中统一处理水果的 LevelUp,Game 脚本至少需要知道都有哪些水果,这些水果为了方便,我们给制作成了预制体 Prefab,建立一个数组来保存它们。
除此之外还有用于显示分数的文本标签、水果的节点层、死亡线、喷水特效的场景中引用,方便它们在 Game 组件脚本中随时处理。
剩下的逻辑判断代码,结合一些私有变量的处理,其实是非常简单的,它们总计可能还不到 100 行,可见 Cocos Creator 是一个多么方便的开发工具,让游戏开发变得如此简单。
说了这么多,其实我并没有展示很多代码方面的细节,我觉得贴代码不如将整个游戏的思路说清楚来的有用。
如果你对这个项目的代码有兴趣,我写的《合成大西瓜》版本已经上架了Cocos Store,不过优惠期已经过去了,所以看起来有点小贵。
如果你觉得有点过分,这里有其他同学免费版本的源码分享。仓库地址是:https://github.com/trending
也可以多关注 Cocos 官方公众号的推送,其实有很多不错的免费资源,当然了还可以关注我的 B 站账号 Nowpaper,我会不定期开启一个小游戏开发之旅,没准是直播,没准是视频,我们下次再见!
那么,以上就是本次分享的全部内容,欢迎对游戏开发的感兴趣小伙伴点击【阅读原文】前往作者 B 站首页一起学习和研究游戏开发,在此也感谢 Nowpaper 的倾情分享。
最后祝大家都准时拔电,奖金多多,冲鸭