欢迎来到天天文库
浏览记录
ID:29003195
大小:109.50 KB
页数:5页
时间:2018-12-15
《俄罗斯方块游戏界面的设计与实现.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、7俄罗斯方块游戏界面的设计与实现实验目的:(1)理解WindowsAPI应用程序接口,并学会使用(2)掌握利用API函数控制光标在控制台移动的方法(3)掌握C程序的基本结构,编写规范的程序(4)掌握循环结构的程序设计方法(5)掌握全局变量的定义和使用实验内容:综合应用所学知识,设计俄罗斯方块游戏的界面,如下图1所示:图1俄罗斯方块游戏界面游戏界面分为两大区域:游戏区域和信息提示区域。其中:游戏区域高度为20个单位,宽度为10个单位,为该区域绘制边框时,上下边框使用“┅”,左右边框“┇”,四角的边框分别使用“┏”、“┓”、“┗”、“┛”进行绘制
2、。信息提示区域高度为20个单位,宽度为4个单位。除了边框外,还有三个信息,即“NEXT”、“SCORE”、“LEVEL”。他们分别表示下一个要下落方块的类型、玩家当前得分和等级。这三个提示文字分别在该区域的第2、8、14行显示,并在每一行空一个字符位置处显示。一般情况下,控制台的光标是随着输入/输出向后移动的,而利用WindowsAPI函数,可以将光标移动到控制台的任意位置,这里介绍一下移动光标的方法。#include#includeHANDLEg_hOutput;//声明一个句柄voidMySetCu
3、rsor(intx,inty)//自定义的光标定位函数{COORDcd={x,y};//定义坐标//调用WindowsAPI中设置光标位置的函数,传入句柄和位置信息做参数SetConsoleCursorPosition(g_hOutput,cd);}voidmain(){//通过调用WindowsAPI函数返回一个标准输出的句柄,并为句柄变量赋值g_hOutput=GetStdHandle(STD_OUTPUT_HANDLE);MySetCursor(2,3);//将光标定位到标准输出的第3行第2列的位置printf("World!");My
4、SetCursor(0,0);//将光标定位到标准输出的第0行第0列的位置printf("Hello");}输出结果为:图2输出结果图实现俄罗斯方块游戏界面的源代码如下:#include#include#include#include#defineHEIGHT20//定义游戏区域高度#defineWIDTH10//定义游戏区域宽度constintSysAlign=WIDTH*2+4+3;//提示文字起始水平坐标constintNextLine=2;//“NEXT”
5、所在垂直坐标constintScoreLine=8;//“SCORE”所在垂直坐标constintLevelLine=14;//“Level”所在垂直坐标intiScore,iLevel;//玩家的即时得分,等级HANDLEg_hOutput;//声明一个句柄voidMySetCursor(intx,inty)//本游戏中适用的光标定位函数{COORDcd={x,y};//调用WindowsAPI中设置光标位置的函数,传入句柄和位置信息做参数SetConsoleCursorPosition(g_hOutput,cd);}//注意:一个"┅"占
6、2个字符宽度voidDrawBoarder(intx,inty,inth,intw){inti;for(i=0;i7、边框位置的坐标printf("┇");}MySetCursor(x,y);//定位左上角边框位置坐标printf("┏");MySetCursor(x,y+h+1);//定位左下角边框位置坐标printf("┗");MySetCursor(x+w*2+2,y);//定位右上角边框位置坐标printf("┓");MySetCursor(x+w*2+2,y+h+1);//定位右下角边框位置坐标printf("┛");}voidDrawSystemInfo(){MySetCursor(SysAlign,NextLine);//定位“NEXT”所在位8、置坐标puts("NEXT");MySetCursor(SysAlign,ScoreLine);//定位“SCORE”所在位置坐标puts("SCORE");MyS
7、边框位置的坐标printf("┇");}MySetCursor(x,y);//定位左上角边框位置坐标printf("┏");MySetCursor(x,y+h+1);//定位左下角边框位置坐标printf("┗");MySetCursor(x+w*2+2,y);//定位右上角边框位置坐标printf("┓");MySetCursor(x+w*2+2,y+h+1);//定位右下角边框位置坐标printf("┛");}voidDrawSystemInfo(){MySetCursor(SysAlign,NextLine);//定位“NEXT”所在位
8、置坐标puts("NEXT");MySetCursor(SysAlign,ScoreLine);//定位“SCORE”所在位置坐标puts("SCORE");MyS
此文档下载收益归作者所有