36瘸腿蛤蟆笔记36-cocos2d-x-32Box2d物理引擎Ray-cast使用.docx

36瘸腿蛤蟆笔记36-cocos2d-x-32Box2d物理引擎Ray-cast使用.docx

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

瘸腿蛤蟆笔记36-cocos2d-x-3.2 Box2d物理引擎Ray-cast使用瘸腿蛤蟆原创笔记,欢迎转载,转载请标明出处:上篇回顾本篇名言:人类心灵深处,有许多沉睡的力量;唤醒这些人们从未梦想过的力量,巧妙运用,便能彻底改变一生。[澳瑞森·梅伦]上几篇中,蛤蟆学习了Box2d物理引擎中如何将我们创建的物理体给描绘在程序里面。让我们能够看到一个非常直观的物体,便于后续进一步学习和理解。具体步骤我们还是使用helloworld工程。首先将\cocos2d-x-3.2\tests\cpp-tests\Classes\Box2DTestBed目录中的6个文件GLES-Render.c, GLES-Render.h,RayCast.h, Test.cpp,Test.h,TestEntries.cpp复制到我们自己的所在工厂目录中的classes文件夹中。然后将这6个文件添加到我们自己的工程项目中。然后我们自己新建一个类,Box2D类。这个是基于Layer类的用于承载物理世界。然后在HelloWorld.Scene.h头文件中,加入如下#includeGLES-Render.h#includeTest.h#includeRayCast.h#includeBox2D.h包含刚才的头文件3、在boolHelloWorld::init()函数中加入如下代码,即可Box2D* view = Box2D::viewWithEntryID();addChild(view, 0, 2);view-setScale(15);view-setAnchorPoint( Vec2(0,0) );view-setPosition( Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/3) );编辑Test.h头文件中,找到类定义中的protected:增加friendclassBox2D;编辑TestEntries.cpp只留下如下,即可。#includecstringusingnamespace std;#includeTest.h#includeRayCast.hTestEntryg_testEntries[] ={{Ray-Cast, RayCast::Create},};intg_totalEntries = sizeof(g_testEntries) / sizeof(g_testEntries[0]);编辑Box2D.h文件如下:#pragmaonce#includecocos2d.h#includeGLES-Render.h#includeTest.h#includeRayCast.hUSING_NS_CC;classTest;classBox2D :publicLayer{public:staticBox2D* viewWithEntryID();boolBox2D::initWithEntryID();Box2D(void);~Box2D(void);RayCast* raycast;Test* m_test;Settingssettings;TestEntry* m_entry;GLESDebugDraw *m_debugDraw; //这里新建示例b2World* world;virtualvoid draw(Renderer *renderer, constMat4 transform, uint32_t flags) override;protected:CustomCommand _customCmd;voidBox2D::onDraw(constMat4 transform, uint32_t flags);};编辑Box2D.cpp文件如下:#includeBox2D.hBox2D::Box2D(void){}Box2D::~Box2D(void){}Box2D* Box2D::viewWithEntryID(){Box2D* pView = newBox2D();pView-initWithEntryID();pView-autorelease();returnpView;}boolBox2D::initWithEntryID(){m_entry = g_testEntries;m_test = m_entry-createFcn();returntrue;}voidBox2D::draw(Renderer *renderer, constMat4 transform, uint32_tflags){Layer::draw(renderer, transform, flags);_customCmd.init(_globalZOrder);

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档