- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7 俄罗斯方块游戏界面的设计与实现
实验目的:
理解Windows API应用程序接口,并学会使用
掌握利用API函数控制光标在控制台移动的方法
掌握C程序的基本结构,编写规范的程序
掌握循环结构的程序设计方法
掌握全局变量的定义和使用
实验内容:
综合应用所学知识,设计俄罗斯方块游戏的界面,如下图1所示:
图1 俄罗斯方块游戏界面
游戏界面分为两大区域:游戏区域和信息提示区域。其中:
游戏区域高度为20个单位,宽度为10个单位,为该区域绘制边框时,上下边框使用“┅”,左右边框“┇”,四角的边框分别使用“┏”、“┓”、“┗”、“┛”进行绘制。
信息提示区域高度为20个单位,宽度为4个单位。除了边框外,还有三个信息,即“NEXT”、“SCORE”、“LEVEL”。他们分别表示下一个要下落方块的类型、玩家当前得分和等级。这三个提示文字分别在该区域的第2、8、14行显示,并在每一行空一个字符位置处显示。
一般情况下,控制台的光标是随着输入/输出向后移动的,而利用Windows API函数,可以将光标移动到控制台的任意位置,这里介绍一下移动光标的方法。
#include stdio.h
#includewindows.h
HANDLE g_hOutput; //声明一个句柄
void MySetCursor(int x, int y) //自定义的光标定位函数
{
COORD cd = {x, y}; //定义坐标
//调用Windows API中设置光标位置的函数,传入句柄和位置信息做参数
SetConsoleCursorPosition(g_hOutput, cd);
}
void main()
{
//通过调用Windows API函数返回一个标准输出的句柄,并为句柄变量赋值
g_hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
MySetCursor(2, 3); //将光标定位到标准输出的第3行第2列的位置
printf(World!);
MySetCursor(0, 0); //将光标定位到标准输出的第0行第0列的位置
printf(Hello);
}
输出结果为:
图2 输出结果图
实现俄罗斯方块游戏界面的源代码如下:
#include string.h
#include stdio.h
#includewindows.h
#includestdlib.h
#define HEIGHT 20 //定义游戏区域高度
#define WIDTH 10 //定义游戏区域宽度
const int SysAlign= WIDTH*2+4 + 3; //提示文字起始水平坐标
const int NextLine=2; //“NEXT”所在垂直坐标
const int ScoreLine=8; //“SCORE”所在垂直坐标
const int LevelLine=14; //“Level”所在垂直坐标
int iScore, iLevel; //玩家的即时得分,等级
HANDLE g_hOutput; //声明一个句柄
void MySetCursor(int x, int y) //本游戏中适用的光标定位函数
{
COORD cd = {x, y};
//调用Windows API中设置光标位置的函数,传入句柄和位置信息做参数
SetConsoleCursorPosition(g_hOutput, cd);
}
//注意:一个┅占2个字符宽度
void DrawBoarder(int x, int y, int h, int w)
{
int i;
for (i=0;iw;i++)
{
MySetCursor(x+2*i+2, y); //依次定位上边线边框位置的坐标 printf(┅);
MySetCursor(x+2*i+2, y+h+1); //依次定位下边线边框位置的坐标
printf(┅);
}
for (i=0; i h; i++)
{
MySetCursor(x, y+i+1); //依次定位左边线边框位置
您可能关注的文档
- 低碳经济与碳币论研究低碳经济与碳币论研究.doc
- 低碳经济与可持续发展考试(85分)低碳经济与可持续发展考试(85分).doc
- 低碳经济公需科目继续教育考试试题低碳经济公需科目继续教育考试试题.doc
- 低碳经济对企业理财环境的影响低碳经济对企业理财环境的影响.doc
- 低碳经济公需科目考试题库低碳经济公需科目考试题库.doc
- 低年级数学生活化的研究课题结题报告低年级数学生活化的研究课题结题报告.doc
- 低碳经济发展模式的初步研究—以中国为例低碳经济发展模式的初步研究—以中国为例.doc
- 低调的奢华——浅析珠绣在服装设计中的应用低调的奢华——浅析珠绣在服装设计中的应用.doc
- 低速电动小绞车毕业设计低速电动小绞车毕业设计.doc
- 低碳考试:杭州市建设低碳城市的标志性建筑低碳考试:杭州市建设低碳城市的标志性建筑.doc
- 开关电源从入门到精通全集导论.pdf
- 讲稿综合详解apworld hist frq1.pdf
- 节通过crt2 mhs证书项目信息被颁发重新发布暂停撤回评估外贸.pdf
- 22 whatismef定义aauni22source blots practice question练习问题.pdf
- 参见annex研究普遍价值pantin中心愿景.pdf
- 七章企业战略环境调研企管练习qyglgl lx0701.pdf
- 文稿案例者繁殖peter and olson 1983.pdf
- 2025年份一月Blender三维设计案例教程第6章摄像机技术.pptx
- 2025年份4月唯美中国风说课课件古典荷花PPT.pptx
- 2025年份1月统编版高中语文必修上册《沁园春长沙》课件.pptx
最近下载
- 肺结核的诊断及鉴别诊断.doc VIP
- 高考题型逐个击破10应用文写作升级之咨询信(必备素材,写作模版,写作训练)(解析版)-2025届高三英语一轮复习闯关攻略.docx VIP
- 施耐德微段 ACTI9选型手册pdf.pdf VIP
- EKD 316 中文.pdf VIP
- 江苏师范大学《物理化学》教学PPT第9章 可逆电池的电动势及其应用.ppt VIP
- 第5章星间链路及星座组网技术20121007电子科技大学.ppt VIP
- GB/T 4490-2021织物芯输送带 宽度和长度.pdf
- 2025年江苏译林版八年级下册英语单词默写表.pdf VIP
- 风电场项目工程建设监理投标文件.pdf VIP
- 危险废物规范化管理培训课件.pptx VIP
文档评论(0)