说实在的,发这篇帖子是我忍无可忍了,如果可以投诉的话,我已经投诉几亿次了,cocostudio的文档能不能补充一下在代码里调用碰撞区之类的新功能的说明,每次查论坛都有一大堆同样的问题,而回答永远都是getshapelist() ,好C++的研究一天可以用了,那LUA呢,版主一直说test里有,那到是要有啊,而且这个问题问多了,就没下文了,如果能在test中不管是lua还是在C++的的代码中能够找到getshapelist() 的用法的,我直播吃一斤狗粮
很抱歉,帮助文档已经在做新的了。
关于碰撞区这个一直没加上~~这次给大家贴一下:另外那个方法我开始确实对物理不了解,受到其他人的误导,在此给大家说一声抱歉。
// 加载
ArmatureDataManager::getInstance()->addArmatureFileInfo(“DemoPlayer0.png”,“DemoPlayer0.plist”,“DemoPlayer.ExportJson”);
armature = Armature::create("DemoPlayer");
armature->setPosition(Point(visibleSize.width * 0.8,visibleSize.height * 0.5));
armature->getAnimation()->playByIndex(0);
armature->setScale(0.25);
this->addChild(armature);
// 设置body
auto playerPos = Point(armature->getPositionX(), armature->getPositionY());
b2BodyDef bodyDef2;
bodyDef2.type = b2_dynamicBody;
bodyDef2.position.Set(playerPos.x/PT_RATIO, playerPos.y/PT_RATIO);
bodyDef2.userData = armature;
b2Body *playerBody = world->CreateBody(&bodyDef2);
//playerBody->CreateFixture(&fixtureDef2);
playerBody->SetGravityScale(10);
armature->setBody(playerBody);
// 设置filter
b2Filter filter;
filter.categoryBits = 1;
filter.maskBits = 1;
for (b2Fixture* shapes = armature->getBody()->GetFixtureList(); shapes; shapes = shapes->GetNext())
{
//shapes->SetSensor(true);
shapes->SetDensity(5.0f/CC_CONTENT_SCALE_FACTOR());
shapes->SetRestitution(1.0f);
shapes->SetFriction(0.2f);
shapes->SetFilterData(filter);
}
另外lua没有对这部分物理引擎进行tolua操作,需要自己添加这个类的tolua转换。