一:前期准备
用到的硬件材料Arduino Mega2560 + LCD4884 Joystick Shiled
屏幕分辨率为48*84
软件平台 Arduino IDE, 需要用到的库 U8glib +MsTime2
二:设计思路
1:游戏整体界面
标准的俄罗斯方块为行宽为10,列高为20,结合屏幕大小每个最小单位点设为2*2像素,共计七种方块,19种形状,使用[10][20]的二维数组存放方块位置信息,需要显示则将相应位置的数组值改为1,空白则为0。并在左侧显示下一个方块形状,右侧显示当前分数和等级
游戏界面如图所示
2:方块的产生、变换和移动
我没有采用使用整体存放方块图形信息的方法,因为不知道怎么使用U8glib库旋转单个图形,采用的是一种比较笨的方法。
每一种方块选取一个中心点,围绕这个中心点来绘制方块,移动的时候也是直接移动中心点然后重新在中心点绘制方块,总共有16种方块图形这里选取其中一种来做例子说明
(1) 方块的产生
例如Z形方块
选取B为中心点,只需要获取B的坐标信息,设为(x,y)那么其他几个方块的坐标也能相应求出来,然后将二维数组中的这几个对应值设为1,循环绘制的时候就能显示出方块图形了
(2)方块的变换和移动
我们想要控制方块旋转的时候就需要重新获取方块生成的方式