硬件原理图 这次制作俄罗斯方块所涉及的器件比较少,Mega16、240370PQ模块、四个轻触按键、一个带锁存案件构成,它的硬件原理图如下:
图3-8 硬件原理图4 软件设计
在制作一种游戏时候最先要解决的是先了解或者制定该游戏的规则。
俄罗斯方块的规则是:游戏开始后,地图(Map)是空的,生成一个方块,因为地图是空的,不存在碰撞问题,所以直接把方块写入地图,接收按键(旋转、左移、右移、下落),有按键后方块响应对应的动作。方块的动作有四种,即旋转、左移、右移、下落。动作执行的过程是以左移为例说明,其他类似:先把方块从地图清除出来,然后判断地图中对应的位置(即方块将要左移到的地方)有没有空位置,若有空,则把方块写入地图对应的位置;若没有空,不能移动(我们称为发生碰撞),则把方块重新写回原来的位置。一定时间内没有按键,方块自动下落。碰撞是指当前方块和地图左边界、有边界、下边界还有之前下落失败的方块有重合。需要注意的是,如果是下落中发生碰撞,则意味着这个方块已经不能再移动了,把方块写回地图原来的位置后,要检测地图中有没有满行的。若有,消行并加分,地图整体下移,最上面补一个空行;若没有满行,重新生成一个方块,再次循环这个过程。直到地图无法容下新的方块。
下面是此次设计所涉及的软件:论文网
http://www.youerw.com/ 1 编译软件:ICCAVR。
2 仿真软件:AVR Studio。
3 烧写软件:PonyProg2000。
4 制图工具:protel99se。
4.1Mega16单片机俄罗斯方块建模
4.4.1游戏建模
在编写俄罗斯方块前,必须对这个游戏进行建模,在标准俄罗斯方块中,游戏区为10列×20行,而这次我们要制作的俄罗斯方块为12列×20行。方块种类为7中(本次为节省空间选取其中5中),每种方块又可以旋转。
它们的初始化状态为:
图4-1 俄罗斯方块初始化状态
旋转状态为下图,拿最后一个图来说它有四种状态:
图4-2 俄罗斯方块旋转状态
在四个点的设计中,只是为了方便以后方便的编程和存储数据,其实可以通过上面发现,在方块变化后,如果检测前面的位置时候,可以按4*4的单位在内存中检测某一个位置的填充情况而判断是否可以写入该位置,这样通过两个区域通过运算后得出某些特征值,因此可以很方便的判断方块落入下一个位置的情况,在上面的模型中方块的位置是一个全局变量,模块中的每一个函数都可以访问方块的地址(now_x,now_y)。
同样为了编程的方便,在游戏区域的左右两边增加每边增加两行被置1的列
由于该模块彩屏显存很大,首先先在内存中建立一张BUFFER缓存模拟这个游戏,缓存中的游戏界面为:
图4-3 BUFFER中的游戏界面原文请加优;文^论,文'网QQ752018766
4.1.2数据存储
现在,我们把这些点,转换为数据,每点代表1byte(●为1,○为0),这样一个方块可以保存在16个字节(BYTE)中,转换方式如下:
图4-4 存储方块数据
5种方块共80个字节。按顺序ABCD我们把这些数据放在一个5*4*4的三文数组中:
const unsigned char[5][4][4]={
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
Mega16单片机+AVR彩屏游戏机设计 第5页下载如图片无法显示或论文不完整,请联系qq752018766