序言
一提到开发游戏,很多人都会觉得要很高深的技术,有一种望尘莫及的感觉。其实要编一款小游戏也没有想象的那么难,下面跟着小编一起来看看C++是如何一步步制作游戏的。
本文的代码下载地址在文章末尾,有需要的同学自取。
大家应该都玩过连连看,游戏规则不多说了,我们先看看设计思路。
第一件事要根据游戏玩法确定程序的数据结构,不同的数据结构决定了不同的算法设计,用错了数据结构可能直接让代码复杂好几倍。
连连看中玩家操作的数据是一个个的图片,多个图片组成一个棋盘式的矩阵界面。程序根据玩家的点击位置计算两个图片的连接路线,这要求程序以最快、最简单的方式获得矩阵中每个格子的数据。
用二维数组表示游戏中的矩阵界面比较合适,因为数组可以通过索引快速访问数据,二维数组的两个索引刚好对应矩阵界面的(x, y)坐标。例如:
图中矩阵数据在代码中应该这样表示:
data[1][2] = 0;
data[1][3] = 1;
data[2][2] = 2;
可以用不同的数字代表不同的图片,比如:
那么上面的矩阵绘制的时候就会是这样:
0表示空格,不显示图片。初始化时的空格或消除后的空格,都会被设置为0。
// 定义数组
#define WIDTH 10
#define HEIGHT 8
int data[HEIGHT][WIDTH] = { 0 };
接下来要初始化数据,我打算用8种不一样的图片,每种6张,随机放入矩阵中,矩阵最外一圈是空的。这个算法可以用标准库函数 std::random_shuffle