多语言展示
当前在线:764今日阅读:11今日分享:15

全新的3.0物理世界

摘要:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程,用cocos2d-x2.X 版本重写的,目前我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记从这里开始,就和之前前辈的有很多不同啦。关键词:MainScene、物理世界、cocos2d在MainScene中,开始按钮中,我们就要通过回调函数,进入到我们的游戏场景啦。那么在游戏场景中我们定义为:PlayScene ,而且是一个带物理世界的场景,cocos2d-x 3.0中要创建物理Scene是很简单的,因为它都帮我们封装好了。那么这一步,我们在PlayScene 中主要完成以下功能:1.物理世界创建2.创建一个地面的物理刚体相关知识个人见解:所谓的创建物理世界,个人觉得是一个抽象的东东,作为新手,开始并不能理解,开始你可以就理解为一个游戏Scene,只是有它自己的特性,具体是什么特性先不管而所谓的刚体,你可以先认为就是一个实体,能看得见,摸得着的东东,并且不会被力所改变形状。我们知道,一个个的游戏人物、物体都用精灵来表现出来,精灵就是一个看得见,摸不到的东西。如:有两个精灵,它们面对面走呀走,那么就会重叠起来,后面放置后绘制,也就是你会看到后面的精灵挡住前面的精灵。那么跑酷中,主角和金币也都是精灵,当主角所在的区域遇到金币,那么就会把金币“吃掉”,两个精灵重合在一起,我们就需要做出一系列的判断:“碰撞检测”,来看看主角是不是吃到金币啦。那么就可以用到物理的刚体,主角和金币用精灵展示,但是都带着一个刚体,当它们刚碰到一起,我们就可以运用物理碰撞检测。由于在物理世界中,所有物体都是有重力的,将来主角会带有一个带刚体,那么为了不让主角掉出屏幕外,就需要创建一个地面的刚体,主角就能放置在地面刚体上。那么你可能要问:地板也是刚体,那么地板不也会掉下去吗?那么cocos中有两种不同的刚体,一种就是受重力影响的,另外一种就是静态刚体,你可以把它放在任何位置,那么这里地板就是用的静态刚体直接看代码:PlayScene.h:这两句代码在后面的过程,看不到它的使用,但是是必要的PlayScene.cpp:而在initPhysicWorld函数中,我们为这个物理世界初始化,仅仅只为物理世界弄一个地面刚体,那么由于刚体需要物体来展示,我们就用一个node 来绑定刚体。那么这里还有一个宏定义 ground_hight59因为后面很多东西的放置都是要基于这个地面的高度的,查看了一下资源中的地的图片,它的高度像素是59 ,所以。。。。然后我们就可以开始游戏界面的初步显示啦在MainScene.cpp的回调函数 start中,这里的TransitionFade::create 只是一个切换场景的方式,你可以转到定义,还有其他的很多方式,比如可以让你的游戏场景像百叶窗那样出现运行游戏,按下按钮之后的游戏场景如下:图中的那条红色的细线就是我们的地面静态刚体,由于开启的调式,所有我们这里能看到OK,下面就让我们的主人公,进入游戏场景并且跑起来这里贴出一个关于3.0物理引擎的入门教程:个人愚昧观点,欢迎指正与讨论
推荐信息