void HelloWorld::addtri(float x, float y)
{
auto dot = Sprite::create(“dot.png”);
auto PhysicsBody = PhysicsBody::create();
Point vert13 = { Point(19.2233543, -15.1730919), Point(11.3656549, -21.6929016), Point(-11.4475288, -21.6498070), Point(-24.48670, -0.4017976), Point(-6.27705526, 23.6718960), Point(4.93250990, 23.9881306), Point(23.2467747, 7.70373487) };
PhysicsBody->addShape(PhysicsShapePolygon::create(vert13, 7));
dot->setPhysicsBody(PhysicsBody);
Point mousePoint = Point(x, y);
dot->setPosition(mousePoint);
dot->getPhysicsBody()->setDynamic(true);
dot->getPhysicsBody()->setContactTestBitmask(3);
dot->getPhysicsBody()->setTag(1);
//设置刚体是否能够旋转
dot->getPhysicsBody()->setRotationEnable(true);
this->addChild(dot);
}
以上代码是我进行碰撞检测的代码,在运行时遇到一个问题,一直没解决,还请高手出手相助!
在设置粒子可以旋转时,会发生穿越左边界的现象,右边界不会出现类似问题,并且左边界的顶端不会被穿越;粒子穿越的时候感觉像在不停旋转
而设置粒子不旋转时,就不会发生穿越了。
还请各位高手帮忙!