Scratch游戏《2048》实战(一)

今天开始,我们来对前几日说的游戏《2048》,来进行一个系统的分析,对制作过程进行一个比较详细的说明,后期也会有视频教程放出,大家有兴趣的朋友们可以跟着一起来做做看。

作为游戏制作的第一篇内容,我们首先就要对游戏进行一个分析,有了分析思考的过程,才可以在制作的过程中有的放矢。

首先,《2048》这个游戏的规则大致是这样的,玩家需要控制所有方块向同一个方向运动,两个相同数字方块撞在一起之后合并成为他们的和,每次操作之后会随机生成一个2,最终得到一个“2048”的方块就算胜利了。

那么我们在构建这个游戏系统的时候,就需要先想好游戏的主框架,包括核心算法的主思路、主要的变量、主要的角色等等。由于是在Scratch中进行开发,所以我们在设定核心算法时要考虑到Scratch本身的特点和局限性,下面我们来具体分析。

游戏中存在一个4*4的棋盘,而后面反复出现的棋子很容易使我们联想到要使用到的是“克隆”功能。在这里,我使用一个相对比较容易理解的思路来进行构想,假如4*4的棋盘里每个位置都有一个克隆角色,而每个位置在数据存储中都有一个数字与之对应,0代表不显示,1代表显示2,2代表显示4,以此类推,11代表显示2048。反应比较快的朋友可能已经看出来,除了0以外,这刚好是2的整数次幂的规律所在。而且,用来代表的那个数字是从1到11,刚好可以与角色的造型功能相结合,实现起来也比较容易。

内部数据 → 前景显示

好了,经过上面的分析,我们发现,游戏的显示部分,通过16个克隆体和一个用来存储棋盘数据的列表变量就可以完美的解决。那么问题的重点就挪到了用来存储棋盘数据的列表变量上,它里面应该如何存储,它又该如何根据玩家的按键发生变化成为了我们接下来要思考的核心问题。