基于Qt的俄罗斯方块游戏1新版.pptVIP

  • 11
  • 0
  • 约2.22千字
  • 约 27页
  • 2021-03-03 发布于湖北
  • 举报
接口控制 本游戏通过键盘进行操作,在Windows的操作系统下,利用键盘的上、下、左、右键对方块进行移动变形,要使用键盘的接口事件。 .精品课件. * Qt简介 Qt是一个跨平台的C++图形用户界面的应用开发框架。它支持windows、linux/unix平台、macintosh、Embedded平台等,所以Qt所开发的应用具有良好地可移植性。 .精品课件. * .精品课件. * Qt的优良特性 可移植性 国际化 面向对象 可用户化的外观 独有的Signal Slot机制 开发程序的方便性 强大的功能 高性能的工具 .精品课件. * 信号与槽的连接原理图 .精品课件. * 定义一个枚举类型,表示方块的七种形状,通过图形实体类TetrixPiece的setRandomShape()方法随机产生一个初值,用于产生图形的某种状态,如图: 随机产生一个数 随机数 Z字形 S字形 直线型 T字形 正方形 L字形 反L型 游戏详细设计 图形的产生 .精品课件. * 每个形状由4个小方块组成,这里每行的四个坐标即4个小方块的坐标,其中横向为X,纵向为Y,上图分别为Z字形、S字形、直线型、T字形、正方形、L字形和反L字形,各个图形的坐标依次如下: { { 0, -1 }, { 0, 0 }, { -1, 0 }, { -1, 1 } }, { { 0, -1 }, { 0, 0 }, { 1, 0 }, { 1, 1 } }, { { 0, -1 }, { 0, 0 }, { 0, 1 }, { 0, 2 } }, { { -1, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 } }, { { 0, 0 }, { 1, 0 }, { 0, 1 }, { 1, 1 } }, { { -1, -1 }, { 0, -1 }, { 0, 0 }, { 0, 1 } }, { { 1, -1 }, { 0, -1 }, { 0, 0 }, { 0, 1 } } .精品课件. * 图形的旋转 图形的旋转是通过绘制4 个方向的方块,在不同旋转角度显示不同方向的方块来实现的。定义一个函数rotatedLeft() const,当每次响应键盘向上的方向键时,方块顺时针旋转90度,同时画布刷新一次,这样,方块的变形就实现了。 .精品课件. * 方块下移 功能:判断图形能否向下移动,显示下移后的界面,或者游戏结束。 实现:先向下移动一步,此时并不在界面上显示下移后的界面,判断是否到底,若到底则消行记录分数、出现下一个图形;判断是否是否一开始就与其它图形重合,若是则游戏结束;经过以上判断,此时方可显示一下一步后的界面,并进入下一次计时,流程图如图所示: .精品课件. * .精品课件. * 满行及消行判断 功能:判断是否有已满行,然后把该行消去。 实现:游戏在方块下移到底后,利用循环判断有几行已满,并对已满行进行清零和进行加分操作,同时更新窗口,从而实现消行的效果。 .精品课件. * 绘制游戏区域及方块 通过调用QPainter的drawLine的方法绘制游戏网格,调用QPainter的drawPixmap和drawRect绘制方块背景和边框。 .精品课件. * 键盘事件响应 俄罗斯方块是通过上下左右来控制游戏的运行,键盘响应事件功能图如图所示: .精品课件. * 键盘事件功能图 具体代码实现:通过重新实现虚函数QWidget::keyPressEvent来响应相应的键盘按键事件。 判断按键 判断可否变形,图形变化调用函数 判断可否移动。可以则移动 判断可否移动。可以则移动 可以则默认下移一步,否则下到底 不是这4个按键,则接收其他按键。 .精品课件. * 游戏主窗体的实现 游戏主窗体是整个游戏的显示部分,主要用于放置绘制好的游戏区域,显示游戏玩家的得分情况、关卡和其它基本信息。游戏区域的宽分成10等分,高分成22等分,也就是说每行有10小矩形,总共有22行(BoardWidth = 10, BoardHeight = 22)。左边是LCD的显示部分,LCD的显示最大为五位数。分为得分(scoreLcd)、关卡(levelLcd)、消行(linesLcd)。另外,主窗体还设计了游戏的选项按钮,方便游戏者的操作。 游戏的设计是在Qt中整个工程下完成的,游戏设计完成后,系统源文件布局如图所示: .精品课件. * .精品课件. 基于Qt的俄罗斯方块游戏开发 湖南工学院电气与信息工程学院 答辩人:曾奇凡 专业:电子信息工程 指导老师:戴日光 .精品课件. * 设计任务与要求 可行性研究 Qt

文档评论(0)

1亿VIP精品文档

相关文档