在《2048小游戏演示和说明》一节中,我们对 2048 小游戏进行了介绍和演示,这节就来说一下它的设计思路。
2048 小游戏源代码下载地址(百度网盘):https://pan.baidu.com/s/1i4Ty7K5 密码: 636s
各位读者不妨先将源码下载下来浏览一遍,记住关键的几个函数,整理一下不了解的知识点,做到心中有数。
2048 小游戏整体的设计思路是:
用 windows.h 头文件中的 GetAsyncKeyState()函 数来获取键盘的输入。
#include <windows.h>
int upArrow = 0;
int downArrow = 0;
int leftArrow = 0;
int rightArrow = 0;
int direction = 0;
upArrow = GetAsyncKeyState(VK_UP); //如果键盘的输入是↑,则函数返回值为1
downArrow = GetAsyncKeyState(VK_DOWN); //如果键盘的输入是↓,则函数返回值为1
leftArrow = GetAsyncKeyState(VK_LEFT); //如果键盘的输入是←,则函数返回值为1
rightArrow = GetAsyncKeyState(VK_RIGHT); //如果键盘的输入是→,则函数返回值为1
数字的合并和移动都是根据键盘输入的方向进行。如果是按下的↑键,则把每一行的数字向上移动,如果上一行的方格为空则直接移动,如果上一行的方格的数字与移动的数字相同则合并,如果两个数字不同则数字的位置不变。其他方向类似,注意每次把数字移动后要把原来位置的数字设置为0。
每次显示更新后的游戏方格之前,都要把之前的显示内容清空,这时候应该调用system("cls")函数。