05+c++课程设计_迷你高尔夫.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05c课程设计_迷你高尔夫

C++语言课程设计一迷你高尔夫 一、实验内容 玩家通过按下键盘上的上下左右方向键控制球的移动,使其最终到达出口则游戏通关。 要求如下: 游戏分成3关,第一关、第二关、第三关界面图如下: 第一关 第二关 第三关 启动游戏进入第一关,胜利后进入第二关,如果第三关通关,则游戏重新回到第一关。 游戏玩法是通关控制键盘上的上下左右方向键控制球的运动,单击方向键,则球获得一个向该方向直线运动的速度。如果球遇到方块,则球停止运动,如果遇到黑洞,则游戏结束,重新开始该游戏,遇到出口则通关。 球静止状态下会有箭头指示球可以运动的方向,运动状态下则箭头消失。如果球运动出世界边界,则游戏结束,重新回到该游戏。 二、实验指南 实验一 开始实验 【实验任务】 步骤一、打开FunCode,创建一个的C++语言项目; 步骤二、导入GolfGame场景。 【实验思路】 按实验指导完成。 【实验指导】 打开FunCode,点击“项目”菜单,选择“创建C++工程” 注意:工程名名称要求字母开头,只能包含字母和数字,且名字中间不能有空格。 点击菜单“项目”中的“导入地图模块”,如图一。跳出一个对话框,选中“GolfGame”模板,点击“导入到工程”按钮,如图二。 图 一 图 二 导入成功后的,界面如下图所示: 地图不仅包括界面设计,还包括该游戏可能要用到的其他精灵。添加到“场景”中的精灵,都已经取好名称,并根据程序要求设置好中心点、链接点等,学生只需要直接编程就可以。 实验二 游戏关卡初始化 【实验内容】 步骤一、关卡地图初始化 步骤二、清除上一关卡数据 步骤三、根据当前关卡,选择关卡数据 【实验思路】 游戏开始的时候首先要清除上一关的游戏数据,即将上一关创建的精灵从地图中删掉。 将游戏地图分成12*12的方格界面,游戏总共分成三关,因此我们需要用三个二维数组m_iLevelData1[GRID_COUNT][GRID_COUNT] m_iLevelData2[GRID_COUNT][GRID_COUNT] m_iLevelData3[GRID_COUNT][GRID_COUNT] (其中GRID_COUNT的值为12) 来存放这三关的数据即可。二维数组中0表示该位置不创建精灵,否则根据不同的值创建不同精灵,RIGID_BLOCK(值为1)表示创建一个方块精灵,BLACK_HOLE(值为2)表示创建一个黑洞精灵,GOLF_EXIT(值为3)表示创建一个出口精灵。每次把代表该关卡的二维数组的数据拷贝到存储当前关卡m_iGridData的二维数组中。 【实验指导】 进入LessonX.h的CGameMain类中,添加以下成员变量的声明: static const float m_fGridStartX ; // 第一块方块的起始坐标 = -(GRID_COUNT * g_fGridSize * 0.5 - g_fGridSize / 2) static const float m_fGridStartY ; static const float m_fGridSize; // 每块的大小,包括球、出口等都是此大小 int m_iRigidBlockCount; // 本关卡创建的阻挡物方块数量 int m_iBlackHoleCount ; // 本关卡创建的黑洞数量 int m_iGolfExitCount; // 本关卡创建的出口的数量 int m_iCurLevel; // 当前关卡 int m_iMoveState ; // 控制球的移动状态:0当前静止,可以移动, 1、2、3、4:代表上下左右4个方向移动中,按键无响应 int m_iGridData[GRID_COUNT][GRID_COUNT]; // 二维数组,存储当 前关卡N*N的矩阵方块信息 static const int m_iLevelData1[GRID_COUNT][GRID_COUNT] ; static const int m_iLevelData2[GRID_COUNT][GRID_COUNT] ; static const int m_iLevelData3[GRID_COUNT][GRID_COUNT] ; vectorCSprite* m_vRigidBlock; //阻挡物精灵向量数组 vectorCSprite* m_vBlackHole; //黑洞精灵向量数组 vectorCSprite* m_vGolfExit; //出口精灵向量数组 int m_iControlStartX;

文档评论(0)

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

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

1亿VIP精品文档

相关文档