- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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.游戏方块控制处理:左移 方块的移动控制是整个
您可能关注的文档
- (ARM原理与C程序设计)第七章ARM接口程序设计.ppt
- (ARM原理与C程序设计)第三章ARM指令表.ppt
- (ARM原理与C程序设计)第一章ARM概述与开发环境.ppt
- (CC++语言程序设计)第1章 概述.ppt
- (CC++语言程序设计)第2章 数据类型和表达式.ppt
- (CC++语言程序设计)第3章 程序设计基础.ppt
- (CC++语言程序设计)第4章 数组.ppt
- (CC++语言程序设计)第5章 函数.ppt
- (CC++语言程序设计)第6章 结构体、共用体与枚举.ppt
- (CC++语言程序设计)第7章 编译预处理.ppt
- (Java面向对象程序设计与系统开发)第1章面向对象开发基本概念.ppt
- (Java面向对象程序设计与系统开发)第2章面向对象开发特点.ppt
- (Java面向对象程序设计与系统开发)第3章面向对象设计思想.ppt
- (Java面向对象程序设计与系统开发)第4章面向对象开发常用类.ppt
- (Java面向对象程序设计与系统开发)第5章异常处理.ppt
- (Java面向对象程序设计与系统开发)第6章项目需求分析.ppt
- (Java面向对象程序设计与系统开发)第7章项目开发环境搭建.ppt
- (Java面向对象程序设计与系统开发)第8章概要设计与数据库设计.ppt
- (Java面向对象程序设计与系统开发)第9章JDBC方式连接数据库.ppt
- (Java面向对象程序设计与系统开发)第10章单元测试.ppt
最近下载
- 松下录像机说明书AJD93MC.pdf VIP
- Part 1-2 Unit 1 Personal and Family Life 课件-中职高一英语(高教版基础模块1).pptx
- 中国急性胰腺炎诊治指南(2021).pptx VIP
- 2025内蒙古鄂尔多斯市东胜区市场监督管理局食品安全协管员招聘15人笔试模拟试题及答案解析.docx VIP
- 检查检验分级管理制度.docx VIP
- 《劝学》原文、注释、翻译和赏析.docx VIP
- 边坡生态护坡技术规程(DB42-T 1355-2018).docx
- 学生安全课程课件.pptx VIP
- 纪念中国人民抗日战争胜利80周年PPT铭记历史砥砺前行.pptx VIP
- Panasonic松下OM_AJ-D250 使用说明书.PDF VIP
文档评论(0)