欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    俄罗斯方块游戏设计课程论文.doc

    • 资源ID:854926       资源大小:418.02KB        全文页数:62页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    俄罗斯方块游戏设计课程论文.doc

    1、俄罗斯方块游戏的设计与实现目 录一、综合训练目的与要求11-1 训练目的11-2 训练要求1二、综合训练任务12-1 训练任务12-2 任务描述1三、总体设计23-1 运行环境23-2 游戏的总体设计思路:23-3 游戏功能图:23-4 游戏流程图33-5 类的关系图3四、详细设计说明34-1 游戏的开始,结束,退出34-1-1、游戏的开始34-1-2 游戏的退出44-2 形状的随机产生44-2-1 形状的表示:44-2-2 形状的随机产生44-2-3 形状随机旋转n( n 开始按钮时,游戏开始进行。 首先初始化游戏:调用CRussia类对象的中m_russia.InitGame()操作,然后

    2、设置游戏的默认等级,游戏状态,游戏得分等;M_russia.InitGame()中的主要设置如下:m_board.ResetSize(width, height);m_currentShape.CreateRandomShape();m_nextShape.CreateRandomShape();InitShapePos();m_hasShape = true;m_score = 0;m_status = RS_NORMAL;其中界面实现是菜单操作,菜单项和响应事件完成。 ID_START-开始-OnStart()4-1-2 游戏的退出 当点击界面中的游戏退出按钮时,出发OnQuit()函数,

    3、退出游戏整个界面。OnQuit()函数给系统发送窗口关闭的消息,用系统将窗口关闭。SendMessage(WM_CLOSE);4-2 形状的随机产生4-2-1 形状的表示:形状类封装了矩阵类对象,形状的旋转主要通过矩阵的旋转来完成,因此形状类中主要完成7种形状在矩阵上的表示,其用来存储矩阵的数据结构时数组,我们用整型数0 和 1 来表示矩阵中方块的无和有,这样,7种形状即可表示如下:0100111000000000反T型1111000000000000直线型1100011000000000Z型0011011000000000反Z型0001000100110000反L型1000100011000

    4、000L型1100110000000000正方形图4-2-1 形状在矩阵中的表示4-2-2 形状的随机产生 调用系统的随即数产生函数random()*6,产生06这七个随机数,分别对应上述七种形状,然后用switch语句随机选择形状中的任意一个,即可完成形状的随机产生。4-2-3 形状随机旋转n( n 1000#pragma once#endif / _MSC_VER 1000/以上几行都是在类视图下,用new class自动生成的代码#ifndef NULL#define NULL 0#endifclass CMatrix public:CMatrix();CMatrix(int width

    5、, int height);CMatrix(int width, int height, int initValue);virtual CMatrix();void ResetSize(int width, int height); /重置矩阵的宽和高void SetAll(int value); /设置所有单元格的值void SetAt(int row, int col, int value); /设置指定单元格的值int GetWidth() const; /const主要是指明该函数不修改类中的非静态成员的值int GetHeight() const;int GetAt(int row,

    6、 int col) const;bool Rotate(bool clockWise = true);/矩阵的旋转int* operator(int row) const; /重载, 返回矩阵的首指针CMatrix& operator=(CMatrix &srcMat); /重载=, 以便矩阵的直接复制protected:int *m_pData; /矩阵的首指针int m_width; /矩阵的宽int m_height; /矩阵的高protected:void ReleaseData(); /清楚矩阵中的所有数据void InitData(int width, int height); /

    7、void SetData(int initValue);static void MemCopy(int *dest, int *src, int len);#endif / !defined(AFX_MATRIX_H_D99244D0_ACB9_4087_A4AF_DB379A4DC7BE_INCLUDED_)8-1-2 CMatrix类的定义/ Matrix.cpp: implementation of the CMatrix class./#include stdafx.h#include Matrix.h/ Construction/Destruction/CMatrix:CMatrix

    8、()m_pData = NULL;m_width = m_height = 0;CMatrix:CMatrix(int width, int height)InitData(width, height);CMatrix:CMatrix(int width, int height, int initValue)InitData(width, height);SetData(initValue);void CMatrix:ResetSize(int width, int height)InitData(width, height);void CMatrix:SetAll(int value)Set

    9、Data(value);void CMatrix:SetAt(int row, int col, int value)if (row = m_height | col = m_width)return;*(m_pData + row * m_width + col) = value;int CMatrix:GetWidth() constreturn m_width;int CMatrix:GetHeight() constreturn m_height;int CMatrix:GetAt(int row, int col) constif (row = m_height | col = m_

    10、width)return 0;return *(m_pData + row * m_width + col);bool CMatrix:Rotate(bool clockWise)int i, j;int *pNew = new intm_width * m_height; /申请新矩阵if (pNew = NULL)return false;if (clockWise)/当clockwise为true时,逆时针旋转for (i=0;im_height;i+)for (j=0;jm_width;j+)*(pNew + j * m_height + (m_height - i - 1) = *(

    11、m_pData + i * m_width + j);else/当clockwise为false时,逆时针旋转for (i=0;im_height;i+)for (j=0;jm_width;j+)*(pNew + (m_width - j - 1) * m_height + i) = *(m_pData + i * m_width + j);ReleaseData();m_pData = pNew;m_width = i;m_height = j;return true;int* CMatrix:operator(int row) constif (row = m_height)return

    12、NULL;return (m_pData + row * m_width);CMatrix& CMatrix:operator=(CMatrix &srcMat)ReleaseData();InitData(srcMat.m_width, srcMat.m_height);CMatrix:MemCopy(m_pData, srcMat.m_pData, m_width * m_height);return *this;CMatrix:CMatrix()ReleaseData();void CMatrix:ReleaseData()if (m_pData != NULL)delete m_pDa

    13、ta;m_pData = NULL;m_width = m_height = 0;void CMatrix:InitData(int width, int height)ReleaseData();if (width = 0 | height = 0)return;m_pData = new intwidth * height;if (m_pData != NULL)m_width = width;m_height = height;void CMatrix:SetData(int initValue)int i, j;for (i=0;im_height;i+)for (j=0;jm_wid

    14、th;j+)*(m_pData + i * m_width + j) = initValue;void CMatrix:MemCopy(int *dest, int *src, int len)if (dest = NULL | src = NULL)return;int i;for (i=0;i 1000#pragma once#endif / _MSC_VER 1000/(以上代码都是在类视图中,用new class新建类时自动生成的代码)#include Matrix.h#include common.hclass CShape public:CShape();virtual CShap

    15、e();void CreateRandomShape(int posX = 0, int posY = 0); /随机产生七个形状中的任一个void SetPos(int posX, int posY); /设置形状左上角的坐标(posX,posY)void Rotate(); /形状的旋转void CancelRotate(); /取消旋转,主要用在旋转时越界的情况。void MoveDown(); /下移void MoveUp(); /上移,主要用在下一过程中碰到地盘的情况void MoveLeft(); /左移void MoveRight(); /右移int GetShapeType()

    16、 const; /获取形状的类型(类型用整型的0-6表示)POINT GetPos() const; /得到形状左上角的坐标(形状所在的矩阵在地盘上的坐标)int GetWidth() const; /得到形状的宽度int GetHeight() const; /得到形状的高度const int* operator(int row) const; /重载操作符,便于获取矩阵中单元格的值CShape& operator=(CShape& srcShape); /重载操作符=,以便形状直接拷贝,主要用在 /当前形状固定时,把下一个形状赋给当前 /形状;protected:CMatrix m_mat

    17、; /封装的矩阵类对象;int m_type; /用以标明当前方块的形状bool m_needJump; /除去正方形的方块外,剩下的方块旋转时有的会有4种形状,/有的只有2种,因此可用bool型标明;int m_posX; /当前方块所在的矩阵m_mat在底盘上的横坐标;int m_posY; /当前方块所在的矩阵m_mat在底盘上的横坐标;protected:void RandCreate(); /随机产生一个方块;void RandRotate(); /随机将方块选装n(n 4)次;void RotateShape(bool clockwise); /旋转方块;主要是通过其封装的矩阵的旋转实现的;#endif / !defined(AFX_SHAPE_H_E8F2190E_01BF_4F92_B29D_27412A279F1D_INCLUDED_)8-2-2 CShape类的定义/ Shape.cpp: implementation of the CShape class./CShape类中功能的实现/#include stdafx.h#include Shape.h#include stdlib.h#include time.h/ Construction/Destruction/


    注意事项

    本文(俄罗斯方块游戏设计课程论文.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922