前言

这次带来的是 CandyCrush,一个三消类游戏。对于消除类游戏的起源,普遍公认的是,《俄罗斯方块》是这一游戏模式的鼻祖。《俄罗斯方块》是一个大名鼎鼎的游戏,就不用我去多说了,它定义了消除类游戏最核心最基本的游戏规则:在规定条件下利用游戏给出的元素达成一定状态便可消除部分游戏元素,玩家需要通过不断消除游戏中出现的元素而获得游戏最终胜利。这是一种目标明确,规则简单的游戏模式。这种游戏模式大家也许觉得很简单,但是,想想那些火爆得不忍直视的消除类游戏《糖果传奇》、《宝石迷阵》、《祖玛》等,你就可以知道,这种类型的游戏在休闲益智方面是多么的受人欢迎。

这个游戏仿照了《糖果传奇》,实现了三消游戏的主要功能,也就是游戏逻辑的实现,如糖果的生成与消除,相邻糖果之间交换位置等。这也是三消游戏的重点和难点所在。

流程梳理

游戏的核心逻辑处理由 GameController 完成。在一个游戏当中,设置一个这样的脚本是相当有必要的,在这里做各个功能的协调和处理,各个功能由各个模块实现,这样才是一个良好的编程习惯,而不是想到哪里做到哪里。否则的话,逻辑关系会越来越混乱,最后导致无法处理。这个游戏有个很重要的游戏思路,就是将这个糖果的集合和二维数组联系在一起,将糖果的生成和消除与数组元素的添加和删除联系在一起。这样就很好处理了。

在界面上使用了 unity 高版本自带的 ugui 模块,主要是标题的展示还有几个按钮的响应。开发过程中同时借助了额外的库来提升开发效率,在生成新的糖果时,用到了 iTween 这个脚本,它是一个动画库,用来方便地实现各种动画,这里只是一个简单的缓动效果,将新生成的糖果缓动到正确的位置上,用时为 0.3 秒。在消除糖果的位置添加爆炸效果,并使镜头摇动,便游戏操作起来更加带感。爆炸效果的 Prefab 和镜头摇动是也是从库中借鉴而来。

此游戏的目标平台定位于 android,最后打包成了一个 apk 程序,在测试机上表现良好。

游戏界面

start-menu.png

play-scene.png

game-over.png

链接

GitHub
APK 程序