Scene* GameScene::createScene()
{
auto gameScene = Scene::createWithPhysics();
gameScene->getPhysicsWorld()->setGravity(Vec2(0, -900));
auto gameLayer = GameScene::create();
gameLayer->setPhysicWorld(gameScene->getPhysicsWorld());
gameScene->addChild(gameLayer);
return gameScene;
}
void GameScene::createBox()
{
Sprite *a = Sprite::create();
addChild(a);
a->setPosition(vec2(100, 100));
Sprite *b = Sprite::create();
a-> addChild(b);
b->setPosition(vec2(50, 50));
}
bool GameScene::init()
{
if (!Layer::init())
return false;
//如果在init方法里create(),那个b的坐标就会有问题.解决方法要在update里写。
//create();
}
void GameScene::update(float delta)
{
//在update里create();b的坐标就没问题了。。这个3.3非正式版本没有这个bug.正式版问题真多。。真失望
create();
}
代码大概讲了一下问题。。据体逻辑不必深研。