旋转像雷达探测敌人的三角形图像时出现问题。
b2Body *body;
CCSprite *actor;
if (b->GetType() == b2_kinematicBody && myActor == [loader spriteWithUniqueName:@"radar."]){
radar = b;
radarSprite = myActor;
}
这是一个用LevelHelper制作的运动体,我想旋转它。所以我需要它围绕静止点旋转,并向后重复运动。由于它是一个Body而不是一个Sprite,我不知道怎么做到围绕顶点旋转。
我有个主意,但我不确定。 如果我旋转CCSprite并将Body移动到sprite.position怎么办?有可能吗?
非常感谢
答案 0 :(得分:2)
以下是我如何根据他们的精灵更新box2d体的位置和旋转:
// Box2d updates.
// We set position of b2Bodies according to their sprites.
_world->Step(delta, 10, 10);
for(b2Body *b = _world->GetBodyList(); b; b=b->GetNext())
{
if (b->GetUserData() != NULL)
{
GameObject *sprite = (GameObject *)b->GetUserData();
b2Vec2 b2Position = b2Vec2(sprite.position.x/PTM_RATIO,
sprite.position.y/PTM_RATIO);
float32 b2Angle = -1 * CC_DEGREES_TO_RADIANS(sprite.rotation);
b->SetTransform(b2Position, b2Angle);
}
}