休闲游戏大白版泡泡堂的设计与实现.docVIP

休闲游戏大白版泡泡堂的设计与实现.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文档。上传文档
查看更多
休闲游戏大白版泡泡堂的设计与实现   摘 要 大白版泡泡堂游戏使用Visual C++和MFC开发,游戏画面精美,用户体验良好,达到Q版泡泡堂的基本功能,并且在原有游戏界面上进行一定改进。但是“关于如何判断玩家当前是否应该运动、当前往哪个方向运动、当前是已经到达目标单元格只需要修正到中间,还是尚未到达目标单元格需要走到目标单元格”的问题未解决。这篇文章针对存在的这些问题,进行了分析,提出了通过设定多个标记变量,像素推导所在单元格的方法的解决问题。最终实现了自动生成地图、武器数量限制、背景音乐、网格吸附、敌人寻找建筑安放炸弹、敌人遇见我方自动安放炸弹,分数自动累加的功能。游戏推出后,用户体验良好。   【关键词】泡泡堂游戏 C++ MFC 炸弹游戏   1 背景   《泡泡堂》是由韩国游戏公司Nexon开发的一款休闲游戏。游戏讲述了在哈巴森林的一个村落的村民们利用神奇的水泡来打猎和采集宝石,故事由为拯救村民和夺回被海盗抢去的宝石而展开。游戏画面精美,功能友好,得到了很多人的欢迎和喜爱,并且风靡一时。我们根据Q版泡泡堂为灵感,以《泡泡堂》为原型,以大白(Baymax)--迪士尼动画《超能陆战队》中的健康机器人为角色,设计开发一款大白版泡泡堂游戏,讲述大白通过采集宝石攻击敌人,摧毁邪恶势力的故事。游戏更加生动有趣,容易上手,可以满足玩家的娱乐需求。   2 游戏需求   2.1 功能需求   (1)游戏需要设定游戏元素,摆阔建筑物、人物、地图、炸弹均为自己构造的类对象;   (2)游戏初始化:以一个二维vector存储建筑物地图并绘制,生成电脑玩家和用户玩家角色的类对象;   (3)安置炸弹:在释放处生成一个炸弹类对象并根据释放者角色配置炸弹和颜色等;   (4)炸建筑、敌人:炸弹以所在位置为原点,向上下左右搜索相应的地图方块,根据地图数组判断攻击范围内有无可炸元素,如有,摧毁之,自己的炸弹伤不到自己;   (5)电脑玩家移动:电脑玩家随机选择一个方向,在该方向前方无障碍的情况下朝该方向移动,遇障碍物则转方向,若任意时刻四周有可炸的建筑物或者敌人,则自动安放炸弹;   (6)分数统计:每个人物对象有数据成员记录分数,炸开一个建筑物+10分,炸死敌人+1000分;   (7)死路规避:生成地图时,若人物被包围在不可炸的建筑物中,则人物处于死路里。解决方案:生成人物时,清空以人物为中心的九宫格内的建筑。   2.2 存在难点及解决方式   在制作游戏的过程中,存在着以下六个较难实现的问题,针对这些问题提出了简单的解决方法。   (1)屏幕上同时需要管理的对象实例很多,比如说有人,建筑物,炸弹等等,但是只要程序逻辑清晰,可以解决;   (2)对象间关系紧密复杂,如炸弹-建筑关系、建筑-人物关系,人物-人物关系,所以要设计好对象之间关联方式;   (3)电脑用户需要一定的智能以自己行动,需要简化行动规律,用简单代码写出活动的算法;   (4)敌我判断,防止误伤:可以炸弹记录主人信息,若是主人则不摧毁;   (5)元素吸附网格、多键响应问题:需要多个标记变量解决问题,通过像素推导所在单元格;   (6)电脑玩家遇见我方知道袭击:通过把我方当做建筑来判断来解决。   3 游戏设计及实现   3.1 游戏设计   游戏以Flash上 Q版泡泡堂为原型复刻一个BayMax版泡泡堂,开发环境使用Visual C++ 6.0,MFC工程;达到Q版泡泡堂的基本功能,包括安置炸弹、炸开建筑、炸死敌人、敌人自动移动等;大致复制Q版泡泡堂的功能:自动生成地图、武器数量限制、背景音乐、网格吸附、敌人寻找建筑安放炸弹、敌人遇见我方自动安放炸弹,分数自动累加等功能。   3.2 游戏实现   大白版泡泡堂要实现游戏角色在自动生成的地图中活动,玩家通过方向键控制角色上下左右移动,空格键释放炸弹,炸弹沿上下左右方向释放爆炸威力,以炸开一些建筑或者炸死敌人。下面介绍游戏主要部分的实现方法。   3.2.1 类及成员   游戏中设置Game、Player、Building、MapOfBuilding、Bomb类,类之间相互联系、相互制约。   Game类中包括drawScore,getcomputerPlayerPointer,getPlayerPointer,theBomb等成员。   Player类中包括moveToNextUnit,getScore,getXpos,getYpos等成员。   MapOfBuilding类中包括drawMap,theVectorMap等成员。   3.2.2 运行流程图   如图1所示。   3.2.3 重点类,函数实现   (1)View类OnDraw函数。为了使

文档评论(0)

小马过河 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档