200905070201刘宇-游戏程序设计课程设计.docVIP

200905070201刘宇-游戏程序设计课程设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
200905070201刘宇-游戏程序设计课程设计

游戏程序设计课程设计 学院:信息科学与技术学院 专业:软件工程 班级:09级软件(二)班 姓名:刘宇 学号:200905070201 摘要 娱乐一直是计算机的一大应用。在中国,随着网络的发展,休闲化游戏拥有了大量的玩家,且逐渐发展出棋牌类、音乐类、竞速类、体育类、格斗类和益智类等多种游戏类型。 最常见的竞速类游戏就是,玩家可从疾驰的速度中获得刺激感,而从高超技巧带来的流畅性操作中还可获取一定的满足感。 当前随着计算机的深入普及,越来越多的人有了个人电脑,人们运用计算机完成许多重要的工作,计算机在人们的生活中变得越来越重要。随着计算机的应用和发展计算机已经不单纯是一个工作工具,人们越来越重视计算机的娱乐性。今年来游戏产业规模持续成长,全球每年游戏业总产值已经突破200亿美金,远远超越好莱坞电影产业以及音乐娱乐事业,而成为目前娱乐事业的最大主流。不过游戏产业光鲜亮丽的背后却隐含着高风险、高成本的危机,显示游戏产业慢慢步入微利时代。 在这种趋势下各种小型的低成本的游戏软件应运而生。这些小游戏都以益智和娱乐为目的,不仅给紧张工作的人们以轻松,还可以让人们的大脑得到开发。 关于本课题 使用游戏软件自然是为了满足人们对娱乐性的要求,本次课程设计是采用3D设计,对系统配置有一定的要求。 作为本系统的开发工具,Microsoft Visual C++成为首选。它具有可视化的编程界面、详细的提示、以及完善的帮助文档,使得软件开发人员感到无比的亲切感。另外,还需要配置OpenGL。 一、游戏的总体分析与设计 1.1游戏的功能简介 通过仿真游戏地图和游戏场景,完成本系统后,能通过W、A、D、S键控制赛车行驶方向。 1.2系统设计 1.2.1模块与流程规划 1.2.2系统流程图 初始化:这部分执行与其他任何程序类似的标准操作,如内存分配,资源获取,从磁盘加载数据等; 进入游戏循环:这部分进入游戏循环,用户将在这里不断地执行动作,知道退出主循环为止; 接收玩家输入:这部分处理玩家输入,或将其存储到缓冲区,供游戏逻辑使用; 执行游戏逻辑:这部分包含游戏代码的主体部分,将执行人工智能,物理系 统和通用游戏逻辑,并根据结果在屏幕上绘制下一帧; 图形渲染:在这一部分中,讲根据玩家输入以及逻辑的执行结果,生成下一个游戏动画帧。 关闭:退出游戏; 1.2.3各类的设计 1)GGameMap 方法:(1)载入位图高程 static bool loadHightMap(const char *fileName, int **ymap, int w, int h); (2)构造地图单例对象 static GGameMap * create(); (3)释放地图单例对象 static void destroy(); (4)得到地图单例对象指针 static GGameMap * getCurrent() (5)检测指定点与赛道是否发生碰撞 bool isCollision(double x, double z); (6)清空数据结构, 释放资源 void clear(); (7)载入地图 bool load(const char *fileName, GTreeBillboard *pTreeBillboard); Gpool 方法:(1)池塘构造函数, 传入池塘地面纹理和水波纹理 GPool(GTexture2D *pLandTex, GTexture2D *pWaterTex); (2)绘制池塘 virtual void draw(); GSkyDome 方法:(1)初始化 GSkyDome(GTexture2D *pTex, double r=1000); (2)绘制 virtual void draw(); GTree 方法:(1)从文件流中载入树木 bool load(FILE *fp); (2)根据视点坐标更新旋转角度和距离 void update(double cx, double cz); (3)绘制树木 virtual void draw(); (4)根据视点到树木的距离反比较树木对象指针 int gCompareTreePtr(const void *ptr1, const void *ptr2); GCurvedRoad 方法:(1)得到旋转角 double getRotAngle() (2)设置旋转角 void setRotAngle(double rot) (3)绘制直赛道(调用前, 请先设置正确的旋转角度和顺时针标志) virtual void draw(); GCar 方法:(1)判断是否刹车 bool isBreak() (2)设置状态为刹车

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档