场景编辑器里代码碰撞检测

我有一个动画在是动画编辑器里做的,做上的碰撞检测区域,然后放到了场景编辑器里面,并且能正常显示碰撞区域。

问题就是,我在代码里:
ComRender hero_render = (ComRender)(layer->getChildByTag(10026)->getComponent(“CCArmature”));
hero = (CCArmature*)(hero_render->getNode());
hero->drawContour();

这样写了以后,为什么没有画出他的碰撞区域呢?求指导。谢谢

那个是物理的debug模式,请问有开启么?

啊,什么是物理的DEBUG模式。。。在哪里开启,谢谢指导

问题是这样的,版主,我有个精灵,不规则,我在动画编辑器里定义了他的碰撞区域,主要是为了能够响应触摸事件。可是我发现根本就不行。是什么问题呢?没有开启debug模式?

drawContour()方法是针对顶点检测物理碰撞检测方法(不同于Chipmunk,BOX2d),需要写在draw()方法内,因为每帧都要更新。

getPhysicsWorld()->setDebugDrawMask()这个就是3.x整合的Physics物理开关,使用最简便。

不过如果你用原生的物理引擎就会很麻烦了~
这个是Chipmunk的开启方法
_debugLayer = PhysicsDebugNode::create(_space);
this->addChild(_debugLayer, 10000);
下面是BOX2d,这个算最麻烦了~~
需要一个GLESDebugDraw类,可以在\cocos2d-x-3.2\tests\cpp-tests\Classes\Box2DTestBed下找到GLES-Render.h/.cpp然后加入自己的项目
auto m_debugDraw = new GLESDebugDraw( PT_RATIO );
world->SetDebugDraw(m_debugDraw);////还有一些设置··具体看Testcpp

不是,用的检测方法不对吧~~编辑器帮你处理的是一个形状,所以你的问题是单独的碰撞检测不对。

谢啦。。。。。。。。。。。。。。。。。。