资源描述:
《高级语言课程设计报告——刘阳》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、功能描述1.1游戏方块预览功能在游戏过程中,当在游戏底板出现一个游戏方块时,在游戏方块预览区域中出现下一个游戏方块,这样有利于游戏玩家控制游戏的策略。由于在此游戏中存在七种不同的游戏方块,所以在游戏方块预览区域中需要显示随机生成的游戏方块。1.2游戏方块控制功能良好的方块形状设计,绘制七种常见的基本图形(长条形、z字形、反Z形、田字形、L字形、反L形、T字型),各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。通过各种条件的判断,实现对游戏方块的左移、右移、快速下移、自由下落、沉底、
2、旋转功能,以及满行消除的功能。1.3游戏显示更新功能当游戏方块左右移动时、下落、旋转时,要清除先前的游戏方块,用新坐标重绘游戏方块。当消除满行时,要重给游戏底板的当前状态。1.4游戏速度分数更新功能在游戏玩家进行游戏过程中,按照一定的游戏规则给游戏玩家计算游戏分数。比如消除一行加10分。当达到一定的分数时,升级,设置0、1、2、3、4五级,各级下落速度不同,若在游戏中方块填满了给定区域,判定游戏失败,弹出相应提示,并记录用户信息,进入得分前十位的用户将在得分榜上显示。单次消行数的不同所加分数也不同,如消
3、除一行加10分,两行加30分,三行加50分,四行加70分。1.5游戏排行榜功能设置游戏排行榜,进入得分前十位的玩家可以进入排行榜,并在游戏主界面显示,增强了游戏的趣味性。1.6玩家信息存储功能游戏开始玩家需输入用户名,以便保存玩家的得分、等级等相关信息,以便信息的再次提取。1.7游戏界面美观良好的用户界面,有关信息显示(如操作方法、等级等)、分数和消行数显示、-1-时间显示和分数排行榜及用户信息显示。让方块在一定的区域内运动和变形,该区域用一种颜色表明,即用一种颜色作为背景,本游戏的背景设为黑色。还需用
4、另一种颜色把黑色围起来,宽度适中,要实现美感。不同的方块用不同的着色表示,使游戏界面更加清晰、有条理。消层时采用一定的时间延迟,增加视觉消行的感官效果。游戏配有背景乐和游戏音效,使用户更能身临其境。二、总体设计2.1游戏设计概述从整体上而言,在该游戏可设计一个方块类,其中包括对方块的信息描述(如:ID)、方块的操作(如:旋转、下沉)。再设计一个控制类、实现各种控制(如:获取控制信号,分发控制信号)。另定义一个游戏区类,用以处理游戏区绘制等内容。在主函数中,先通过控制类初始化游戏,再通过随机时间函数获得一
5、个随机数,该随机数确定一个方块,即用该随机数产生一个ID从而确定产生的为方块。然后从键盘取得各种操作信号,通过控类函数对操作信号进行分发处理,进而控制方块的行为改变。与此同时监控游戏区中己有方块的状态,一旦满足消行即进行消行控制,同时进行计分和等级划分,而如果游戏区己满则游戏结束,弹出提示。而对界面和方块的展现主要通过第三方软件EasyX实现,通过其画图位置的改变与时间的结合达到方块视觉移动的效果。2.2定义方块的数据结构方块是本游戏的基本要素,对于方块的设计,本游戏用4*4的矩阵画出来,在相应的位置置
6、为(‘1'和‘0'以实现各种方块的形状,以"立L形"为例,如下:而在程序设计中则赋予各种基本方块一个不同的十六进制ID即可表示该方块,如"L形"其ID为[Ox4460],再与其其他变形组合和着色分配即可得到各种L形ID的集合{Ox4460,Ox02EO,Ox0622,Ox0740,旧GENTA};其他各种方块类似设计。具体清单如下:-2-{OxOFOO,Ox4444,OxOFOO,Ox4444,RED},//I{Ox0660,Ox0660,Ox0660,Ox0660,BLUE},//口{Ox4460,O
7、x02EO,Ox0622,Ox0740,MAGENTA},//L{Ox2260,OxOE20,Ox0644,Ox0470,YELLOW},//反L{OxOC60,Ox2640,OxOC60,Ox2640,CYAN},//Z{Ox0360,Ox4620,Ox0360,Ox4620,GREEN},//反Z{Ox4EOO,Ox4C40,OxOE40,Ox4640,BROWN},//T定义方块的结构体的代码如下://定义七种俄罗斯方块structBLOCK{WORDdir[4];//方块的四个旋转状态COLOR
8、REFcolor;//方块的颜色}g_Blocks[7]={{0x0F00,0x4444,0x0F00,0x4444,RED},//I{0x0660,0x0660,0x0660,0x0660,BLUE},//口{0x4460,0x02E0,0x0622,0x0740,MAGENTA},//L{0x2260,0x0E20,0x0644,0x0470,YELLOW},//反L{0x0C60,0x2640,0x0C60,0x2640,CYAN},