cocos2dx 跑酷游戏跑酷中金币是怎么排放的

3327人阅读
cocos2d-x游戏开发(67)
对象管理类的原理是这样的:
ObjectManager类是一个单例类,全局只有一个对象实例存在。初始化的时候创建两个数组CCArray来保存金币和岩石。为什么要保存,因为在地图重载的时候,要销毁看不见的那些对象。金币和岩石是随机添加的,每个金币和岩石都有一个地图索引,就是说它是在第几个地图上的,删除的时候根据这个来删除。
我的博客:,欢迎转载
CCArray有个遍历的宏CCARRAY_FOREACH,如果你在遍历的时候进行增删的操作就会导致错误,这里我用了一个临时的CCArray来保存要删除的对象,然后再遍历这个临时数组对源数组进行删除,最后清空临时数组。
CCArray* tempCoins = CCArray::create();
CCArray* tempRocks = CCArray::create();
// 遍历CCArray的时候不能做增删操作,否则会出错
// 这里分两步来完成,第一次遍历,将要删除的对象存到一个临时CCArray里
// 第二步遍历临时CCArray,将里面的对象从源数组里删掉,最后清空临时数组
CCARRAY_FOREACH(mCoins,itor)
Coin* coin = dynamic_cast&Coin*&(itor);
if ((coin != NULL) && (coin-&getMap() == mapIndex)) {
tempCoins-&addObject(coin);
coin-&destroy();
CCARRAY_FOREACH(tempCoins,itor)
mCoins-&fastRemoveObject(itor);
tempCoins-&removeAllObjects();
这个类在PlayScene的init里面初始化:
ObjectManager* ObjM= ObjectManager::sharedObjectManager();
ObjM-&initManager(spriteBatch, mWorld);
ObjM-&setObjectToMap(1, mMapManager-&getMapWidth());
然后在PlayScene的update里面添加金币和岩石,
// 如果发生地图重载,就回收废的金币和岩石,添加新的金币和岩石
if (mMapManager-&chechReloadMap(mLastEyeX)) {
ObjectManager::sharedObjectManager()-&recycleObjectOfMap(mMapManager-&getCurMapIndex() - 1);
ObjectManager::sharedObjectManager()-&setObjectToMap(mMapManager-&getCurMapIndex() + 1, mMapManager-&getMapWidth());
好了,看碰撞检测。box2d的碰撞检测由物理世界维护,物理世界能知道所有发生的碰撞事件,并用一个回调来处理。我们要自己处理碰撞检测,就要实现这个回调b2ContactListener
让PlayScene继承这个类,实现里面的一个函数BeginContact,然后给world设置碰撞监听器
mWorld-&SetContactListener(this);
看下碰撞检测的实现:
void PlayScene::BeginContact(b2Contact *contact)
CCLog(&begin contact!&);
void* bodyUserDataA = contact-&GetFixtureA()-&GetBody()-&GetUserData();
void* bodyUserDataB = contact-&GetFixtureB()-&GetBody()-&GetUserData();
if (bodyUserDataA && bodyUserDataB)
B2Sprite* contactA = static_cast&B2Sprite*&(bodyUserDataA);
BaseObject* obj = NULL;
if (contactA == mRunner-&getRunnerSprite())
obj = static_cast&BaseObject*&(bodyUserDataB);
obj = static_cast&BaseObject*&(bodyUserDataA);
if (COINTAG == obj-&getObjSprite()-&getTag()) {
((Status*)(this-&getParent()-&getChildByTag(STATUSTAG)))-&addCoin(1);
mRemoveObjs-&addObject(obj);
SimpleAudioEngine::sharedEngine()-&playEffect(pickUpCoins);
}else if(ROCKTAG == obj-&getObjSprite()-&getTag())
mRunner-&die();
unscheduleUpdate();
mState = GameOverS
GameOver* over = GameOver::create();
this-&getParent()-&addChild(over);
碰撞发生后,通过body的用户数据来进行辨别。这个用户数据userData是一个void*指针,存放用户的任何数据。在做物理精灵的时候对它进行设置,就是为了这个时候用的。
地板的userData是NULL,所以如果这个userData不为NULL的话,那么它要么是Runner要么是金币要么是岩石。Runner的userData是一个B2Sprite,金币和岩石的userData都是BaseObject的子类,所以做类型转换。再用tag来区分金币和岩石。如果是金币,就添加到一个CCArray里面,然后在update里面做清除,如果是岩石,就GameOver了。
分数和跑酷的距离是一个单独的CCLayer,因为PlayScene是一个无限的Layer,所以分数要单独出来,不然它会跑出屏幕。GameOver是一个CCLayerColor,因为要做一个有透明度的层,表示游戏结束了。
图我就不上了,稍后放出源码。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:526339次
积分:6291
积分:6291
排名:第3867名
原创:124篇
评论:276条
QQ: Email:
文章:16篇
阅读:32456
文章:18篇
阅读:141851
(1)(1)(2)(19)(4)(1)(3)(1)(2)(15)(1)(1)(2)(3)(2)(1)(16)(3)(1)(4)(8)(9)(1)(5)(5)(6)(7)(5)(3)软件工程硕士论文:基于Cocos2d-x移动平台跑酷类游戏的设计与实现
专业论文资料,
,为你解忧愁!详情请咨询我们客服。
获取免费的论文资料? 欢迎您,提交你的论文要求,获取免费的帮助
1.1项目背景介绍
跑酷也叫&城市疾走&或Parkour。它诞生于80年代的法国,&Parkour& 一词自法文&parcourir&,直译就是到处跑,跑酷游戏是根据跑酷运动衍生而来的一款游戏类型,这类游戏在其他平台并未受到过多关注,但是被搬上移动端后竟然受到玩家的热烈欢迎。跑酷游戏秉承了跑酷这项极限运动的含义&&挑战极限,同时又符合精品游戏的设计特质&&易上手、难精通,因此受到了广大玩家的青睐。虽然今年来随着卡牌等手机游戏的崛起,跑酷游戏的市场份额有所减少,但由于跑酷游戏相比其他类型游戏所带来的刺激感,仍然对玩家具有很大的吸引力,因此跑酷类游戏仍然具有很大的市场价值和一定的发展空间。腾讯移动游戏平台的众多游戏应用中,《天天酷跑》所创造的成绩一直在不断刷新新的纪录。作为国内第一款月收入破亿的移动游戏,就在半个月前新版发布后,其游戏的收入、在线用户数和活跃率又达到了一个新的里程碑数字。《天天酷跑》游戏首席策划师沈晓弊近日接受了腾讯科技专访,他表示,这些数字目前还不方便公布,但从用户反馈和数据上看,的确大大超出了团队的预期。《唯星忍者》正是基于这样的背景下设计和开发的。《唯星忍者》是一款基于Cocos2d-x的手机跑酷类游戏。相比于其他跑酷类游戏,《唯星忍者》分为教学模式、闯关模式、无尽模式三种模式,其中无尽模式的场景每次都是随机变化的,更能带给玩家新鲜感和刺激感。游戏通过武器技能升级、元素解锁、道具购买等方式,来不断吸引玩家。
1.2跑酷类游戏介绍
跑酷类游戏从最初相似概念的游戏的诞生,到现在拥有庞大用户群和市场份额,经历了 20多年的发展。下面将从跑酷类游戏的发展历程和未来发展两个方面介绍跑酷类游戏。在高速运动中越过障碍的快感也是很多游戏的灵感来源,从玩法角度来讲,红白机时代的经典游戏《南极大冒险》、《冒险岛》、《马戏团》并不能被归类为&跑酷&游戏,也很难说设计师知道&跑酷&这种东西,但这些游戏的玩法和乐趣来源则和&跑酷&运动不谋而合。1991年,世嘉(SEGA)出品的《索尼克》进入了玩家的视野,游戏的设计者相当重视&速度&在作品中的重要性,玩家可以操作索尼克在画面里高速冲刺,从而获得极强的速度感和爽快感。让跑酷游戏真正进入玩家视野中的游戏是EA在2008年发行的《Mirror'sEdge》(镜之边缘),该游戏画面极具风格化。游戏讲述了一个&反对老大哥&的故事,&跑酷&是游戏的主要玩法,也是幵发者用以表达&年轻人反叛&的重要标签。在2010年,跑酷游戏标志性产品终于出现了,由Halfbriek Studio推出的《Monster Dash》(怪物狂奔)成功挤身澳大利亚排行榜前10,第一次在移动端展现出了跑酷游戏的强大魅力。当2011年,风靡全球的《神庙逃亡》出现在大众面前时,很多人并不觉得奇怪,更像是大势所趋。《神庙逃亡》系列真正将移动设备上的跑酷游戏推向了高潮,几乎全球的手机游戏玩家都在移动设备上开始操控奔跑的角色,让他们奔跑、跳跃、躲避。在《神庙逃亡》成功之后,大量的跑酷游戏出现在市场上,诸如《地铁跑酷》《幻影骑士团》《天天酷跑》《爸爸去哪儿》等产品不断地释放着玩家对于跑酷游戏的热情,几乎每一款产品都获得了大量的人气和收入。
2.1 Cocos2d-x引擎研发技术
该部分从框架结构、主要控件、动作功能、声音处理、粒子系统五部分介绍Cocos2d-x引擎研发技术,针对这五部分分别介绍了其基本概念及具体分类,对游戏中经常用到的知识点进行了重点介绍。Cocos2d-x引擎将游戏画面按照层次逻辑进行细分。游戏画面是由各种不同的场景组成,通过导演控制,来完成不同场景的切换[4]。每个场景又由不同的层次构成,层次中又添加了许多的精灵对象【5】。由此引擎就构成了整个游戏画面。上面提到的四个概念:场景、导演、层次、精灵,在引擎中对应的四个类为CCScene,CCDirector、CCLayer、CCSprite[6]。场景是游戏运行期间的显示界面。一个应用里面可以有多个场景,但是每次只能有一个是激活状态,也可以理解为一次只能显示一个界面。每个场景是由一个或者多个CCNode[力组成,可以将CCNode添加到场景中,CCNode是所有节点的基类。CCNode的子类,比如CCLayer和CCSprite,能够给场景提供外观和行为。导演可以理解为整个游戏的控制器,控制不同场景之间的切换。其本身是一单例,它知道当前哪个场景是活动的,并且允许程序通过替换当前的场景或者把一个新的场景放到场景栈中来改变场景。当把一个新场景放到场景找里,CCDirector暂停当前的场景,并且把它保存在内存里,然后显示新场景。当栈顶场景执行了出找操作,上一个场景将会恢复其最后的状态并显示出来[8]。
2.2物理模拟和碰撞检测
《啼星忍者》使用了 80^20[1]引擎完成了游戏中的物理模拟计算。Bo)c2D是一款具有强大功能,强劲性能的物理引擎。它是由一个资深游戏开发者Eric Catto提供的遵循MIT幵源协议的二维物理引擎。自从Box2D引擎公布以后,其幵发和升级工作一直很活跃,几乎成为了 2D游戏产品的必备物理引擎。本人使用Box2D引擎来模拟整个物理世界。所谓物理世界就是由各种的刚体,框架,形状相互作用的集合。使用物理世界可以更真实地模拟现实世界,实现以牛顿力学为基础地游戏效果。精灵地各种运动效果,如自由下落,抛物运动等将会更加逼真。而且可以增大游戏呈现地随机性,游戏中地物体将会按照物理规律进行运动,从而使其结果充满了不可预知性。物理世界和渲染世界,它们都有各自的周期,各自独立运转。在两个世界间的数据交互,主要是将在物理世界中物体地信息给植染世界一次来绘制游戏的内容。同时這染世界接受用户的操作,将它们传递给物理世界。两个世界的数据交互将会按照一定的时间周期运行。Box2D物理引擎的基本概念包括刚体、形状、框架、关节等。B0X2D物理引擎只支持拥有刚性属性地物体。在物理学里,理想刚体是一个有限度,可以忽略行变的固体。不论是否受到作用力,在刚体内部,点与点之间地距离都不会改变。在Box2D物理世界中,所有的物体都是刚体。这些物体一旦被创建出来,其形状将不会发生改变。而形状是依附于框架的2D平面几何形状,用要用于世界里物理碰撞的检测。至于框架,它代表着物理世界中固体物质形态,是连接物体和形状之间的框架。一个物体可以有多个框架,每个框架连接一个形状。它本身存储着物体的质量,密度,磨擦系数,同时包含碰撞标志,用户数据和是否使用碰撞探测器的标志。关节的作用是将两个有一定运动自由度的物体连接起来。同时,它也会约束连接的两个或多个物体。
3项目需求分析.........&9
3.1游戏介绍........&9
3.2功能性需求........&9
3.3本章小结........&15
4项目概要设计&........16
4.1世界地图场景........&16
4.2游戏主场景........&17
4.&3 关卡升级场景........&18
4.4 本章小结........&18
5项目详细设计与实现........&19
5.&1 游戏开始场景........&19
5.2游戏加载场景........&21
5.3世界地图场景........&23
5.4游戏主场景........&32
5. 5 关卡升级场景........&43
5.6游戏主场景实物........&43
5.7本章小结&........53
6.1标识界面测试
该部分介绍游戏标识界面测试,测试内容及结果如表6-1所示。标识界面指游戏安装完成后,在手机上显示图标的界面。经测试,游戏图标显示正常,且能正常打幵。本章对标识界面、文字、声音、菜单界面、主界面五个部分的测试做了介绍,给出了测试用例和测试结果。通过各种测试用例的测试,各测试单元均达到了预期效果。世界地图场景包括模式选择,查看唯星忍者信息、武器技能升级、道具购买、元素解锁以及任务查看六个模块。世界地图场景流程图。玩家在世界地图场景主要进行选择和设置操作,针对每一个操作可建立相应的功能控件,如果该操作较为复杂,则建立相应的功能层进行具体的处理。选择无尽模式,会生成选择框。除选择框外,屏幕其他位置变暗,以突出选择框。玩家可以选择不同难度的关卡,难度分别为普通、英雄、炼狱。普通难度可以直接进入,英雄和炼狱则需要玩家满足一定的条件才能解锁,未达到解锁要求,生成提示层,提示玩家需要解锁的条件,点击屏幕任一位置提示层消失。选用不同的图片表示普通、英雄、炼狱难度,使普通难度按键呈现出使能状态,如英雄、炼狱难度已解锁,则其选用与英雄按键相同颜色图片,显示使能状态。难度按键右边列出该难度所跑的最大距离。在选择框右下角,建立&1.5倍速&开启和关闭按键,左边给出按键说明,即&1.5倍速&。点击选择框左上角的关闭按钮,关闭选择框,返回世界地图场景。
《喵星忍者》游戏基于IOS平台,运用C0C0S2d-x游戏引擎,釆用C++进行开发的。论文分为两部分,论文前半部分在游戏的开发背景、相关技术方面进行了详细的阐述,开发背景方面介绍了跑酷类游戏幵发的商业价值,相关技术方面对游戏幵发过程经常遇到的知识点进行了重点介绍。论文后半部分以软件工程思想为指导,介绍了《喵星忍者》游戏的需求分析、设计、具体实现和测试整个开发流程。通过游戏各个场景的需求分析以及功能模块的划分,对游戏设计和实现上的难点给出了解决方案。最后详细叙述了各个场景的实现过程和技术要点,对于一些技术难点供了合理的解决办法。项目组在开发过程中,注重代码的复用性和扩充性,采用Scrum敏捷幵发周期模式,为以后新功能的添加提供了便利。本项目完成了所有开发任务,游戏运行流畅、各界面的正常跳转、游戏数据显示正确、声音播放正常,游戏界面清晰美观;用户体验出色,操作简单,情节设计刺激,通过奖励、升级、解锁、购买的方式不断吸引用户,提高了用户粘性。但游戏中还有一些地方有待优化:
(1)无尽模式的敌人出兵算法可以进一步优化,敌人的出兵方式和数量可以更多元化。
(2)游戏主要以单机为主,玩家之间缺少交流,增强玩家之间的互动是增加玩家粘性的重要手段。可以增加玩家之间的竞技、排行榜以及各项附加元素的排名。
(3)游戏主场景背景画面可以增加一些动态效果,增强游戏的视觉感官。
以上问题为游戏新版本的开发指明了方向。
............
参考文献(略)
提供海量毕业论文,论文格式,论文格式范文,留学生论文,商务报告相关资料检索服务。
本论文由整理提供 /
需要专业的学术论文资料,请联系我们客服
本文地址:
论文关键字:软件工程硕士论文 手机游戏 跑酷 Cocos2d-x
最新添加论文分享给朋友:通用代码: <input id="link4" type="text" class="form_input form_input_s" value="" />复 制flash地址: 复 制html代码: <input type="text" class="form_input form_input_s" id="link3" value="" />复 制分享视频到站外获取收益&&手机扫码分享视频二维码2小时内有效cocos2d-x跑酷游戏制作教程第四讲金币的摆放和碰撞下载至电脑扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效cocos2d-x跑酷游戏制作教程第四讲金币的摆放和碰撞扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本选集
药品服务许可证(京)-经营-请使用者仔细阅读优酷、、Copyright(C)2017 优酷
版权所有不良信息举报电话:&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
该文档贡献者很忙,什么也没留下。
&#xe602; 下载此文档
正在努力加载中...
基于Cocos2d-x多动平台跑酷类游戏的设计与实现
下载积分:648
内容提示:基于Cocos2d-x多动平台跑酷类游戏的设计与实现
文档格式:PDF|
浏览次数:1|
上传日期: 16:05:48|
文档星级:&#xe60b;&#xe60b;&#xe60b;&#xe60b;&#xe60b;
全文阅读已结束,如果下载本文需要使用
&#xe71b; 648 积分
&#xe602;下载此文档
该用户还上传了这些文档
基于Cocos2d-x多动平台跑酷类游戏的设计与实现
官方公共微信需求发布后1小时内收到服务商响应每个需求平均有10个服务商参与95%以上的需求得到了圆满解决所有需求不向雇主收取任何佣金淘宝秋季上新 火力全开抢占流量
收购一份跑酷类题材源码(语言为:cocos2d-x)
有相似问题想解决?专业顾问来帮助您
匹配服务商
选择服务商,签单
服务商工作
验收并付款
参与报价,开始赚钱
提交你的报价和方案
中标后交付作品
获得任务赏金
根据浏览的需求为您推荐
交易成功的需求
其它游戏开发相关需求
关注猪八戒微信}

我要回帖

更多关于 cocos2dx 跑酷 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信