(CC++语言程序设计)俄罗斯游戏案例剖析_C语言版.ppt

(CC++语言程序设计)俄罗斯游戏案例剖析_C语言版.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
当把旋转点一般化为Q(x0,y0),得到: x′ = x0 + (x - x0) cos θ - (y - y0) sin θ y′ = y0 + (y - y0) cos θ + (x - x0) sin θ 旋转 任意点(x, y)绕其中心 (x0, y0)逆时针旋转angle角度后,新的坐标位置(x1, y1)的计算公式为: x1 = (x - x0) cosθ - (y - y0) sinθ + x0; y1= (x - x0) sinθ + (y - y0) cosθ + y0; 将坐标(x,y)绕(x0,y0)顺时针旋转90度(相当于逆时针-90度),得到的新坐标(x1,y1),则满足: x1=x0+y-y0 y1=y0+x0-x 旋转 输出到游戏面板 void output( int binImage[20][10]) { int i; for(i=0;i4;i++) binImage[y[i]][x[i]]=1; } /*检查是否有一行填满*/ 游戏功能设计 定义用于程序流程控制的变量 一个游戏面板类CBin对象 若干个砖块对象 砖块的形状、数量是未知的,怎么处理? 新砖块什么情况下产生? 什么情况下游戏结束 每一个tick砖块要下落,需刷新绘图区域 如何计分 暂停功能 游戏流程图 游戏界面设计 应用输入输出函数 清屏函数system(“cls”) 定位函数SetConsoleCursorPosition 休眠函数实现sleep 课后练习 添加预测下一方块的功能 仿照俄罗斯方块游戏,编制贪吃蛇游戏。 游戏案例剖析 俄罗斯方块游戏开发 C/C++语言程序设计 龚尚福,贾澎涛主编 《C/C++语言程序设计》 西安电子科技大学出版社 游戏说明及规则 俄罗斯方块是由俄罗斯人阿列克谢·帕基特诺夫发明的。俄罗斯方块原名是俄语Тетрис(英语是Tetris),这个名字来源于希腊语tetra,意思是“四”,而游戏的作者最喜欢网球(tennis)。于是,他把两个词tetra和tennis合而为一,命名为Tetris,这也就是俄罗斯方块名字的由来。 游戏规则 Tetris游戏在一个m*n的矩形框内进行。游戏开始时,矩形框的顶部会随机出现一个由四个小方块构成的砖块,每过一个很短的时间(我们称这个时间为一个tick),它就会下落一格,直到它碰到矩形框的底部,然后再过一个tick它就会固定在矩形框的底部,成为固定块。接着再过一个tick顶部又会出现下一个随机形状,同样每隔一个tick都会下落,直到接触到底部或者接触到下面的固定块时,再过一个tick它也会成为固定块,再过一个tick之后会进行检查,发现有充满方块的行则会消除它,同时顶部出现下一个随机形状。直到顶部出现的随机形状在刚出现时就与固定块重叠,表示游戏结束。 操作说明: ‘a’ 或 ‘4’ —左移 ‘d’ 或 ‘6’ —右移 ‘w’ 或 ‘8’ —旋转 ‘s’ 或 ‘5’ —快速下落 ‘x’ 或 ‘2’ —快速下落 项目规划 在做项目前一定要好好地构思和规划项目,根据需求规划开发流程。 项目开发流程图 功能分析:分析整个系统所需要的功能; 模块结构规划:规划系统中所需要的功能模块; 总体设计:分析系统处理流程,探索系统核心模块的运作; 数据结构:设计系统中需要的数据结构; 规划函数:预先规划系统中需要的功能函数; 具体编码:编写系统的具体实现代码。 功 能 分 析 做一个简单的项目规划书,整个规划书分为两个部分: 系统需求分析; 结构规划。 系统需求分析(1) 1) 游戏方块的随机生成功能 当游戏运行开始或方块成为固定块后,应能在游戏面板顶部随机生成一个新方块,这样便于玩家提前进行控制处理。 2) 游戏方块的控制功能 游戏玩家可以对出现的方块进行移动处理,分别实现左移、右移、快速下移、自由下落和行满自动消除功能的效果。 3) 更新游戏显示 当在游戏中移动方块时,需要先消除先前的游戏方块,然后在新坐标位置重新绘制新方块。 系统需求分析(2) 4) 游戏速度设置和分数更新 通过游戏分数能够实现对行数的划分,例如,可以设置消除完整的一行为10分。当达到一定数量后,需要给游戏者进行等级上的升级。当玩家级别升高后,方块的下落速度将加快,从而游戏的难度就相应地提高了。 5) 系统帮助 游戏玩家进入游戏系统后,通过帮助了解游戏的操作提示。 结构规划 系统模块结构图 总体设计——1.方块生成 新游戏的方块使用随机函数rand( )可以产生0-6之间的游戏方块编号。 2.游戏方块控制处理:左移 方块的移动控制是整个

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档