У меня есть мир в cocos2d с box2d, который имеет гравитацию.Теперь, чтобы добавить тело для каждого спрайта, я вызываю функцию и отправляю ей спрайт.
sprite1, должен двигаться в соответствии с гравитацией, но sprite2 должен быть статичным, без гравитации, до тех пор, пока sprite1ударить его, тогда мировые силы должны воздействовать на него.
как мне установить только спрайт1 / гравитацию тела равным нулю, пока другой спрайт не ударит его?
моя проблема в том, что все спрайты используютта же функция для тела:
- (void)addBoxBodyForSprite:(CCSprite *)sprite {
b2BodyDef spriteBodyDef;
spriteBodyDef.type = b2_dynamicBody;
spriteBodyDef.position.Set(sprite.position.x/PTM_RATIO,sprite.position.y/PTM_RATIO);
spriteBodyDef.userData = sprite;
spriteBody = world->CreateBody(&spriteBodyDef);
b2PolygonShape spriteShape;
spriteShape.SetAsBox(sprite.contentSize.width/PTM_RATIO/2,sprite.contentSize.height/PTM_RATIO/2);
b2FixtureDef spriteShapeDef;
spriteShapeDef.shape = &spriteShape;
spriteShapeDef.density = 10.0;
spriteShapeDef.isSensor = true;
spriteBody->CreateFixture(&spriteShapeDef);
}
Я хочу применить гравитацию в начале только для sprite1, НО я хочу также создать тело для sprite2, потому что позже это будет зависеть от мира.
Итак, после создания 2 тел при запуске, как я могу остановить падение только sprite2?
Большое спасибо.