Xcode 围绕另一个CCSprite圆形移动CCSprite
我试图做到的是: 我们有一个圆圈A和一个圆圈BXcode 围绕另一个CCSprite圆形移动CCSprite,xcode,cocos2d-iphone,Xcode,Cocos2d Iphone,我试图做到的是: 我们有一个圆圈A和一个圆圈B 将圆B围绕圆A移动。我已经尝试创建一个CCNode并将圆B附加到它。在这种情况下,它可以完美地工作,但位置也是恒定的。我需要绕A移动圆圈并更新位置。我将在屏幕上有更多的对象,我将检查B是否与其他对象相交,但在这种情况下,我需要在旋转时更新位置。非常感谢你们的帮助。我正在使用cocos2dv3.0也许是这样的?把这个放在你的更新方法中。我在用于orbit的box2d项目中使用了此代码。根据你的需要改变它 b2Vec2 center = bod
将圆B围绕圆A移动。我已经尝试创建一个CCNode并将圆B附加到它。在这种情况下,它可以完美地工作,但位置也是恒定的。我需要绕A移动圆圈并更新位置。我将在屏幕上有更多的对象,我将检查B是否与其他对象相交,但在这种情况下,我需要在旋转时更新位置。非常感谢你们的帮助。我正在使用cocos2dv3.0也许是这样的?把这个放在你的更新方法中。我在用于orbit的box2d项目中使用了此代码。根据你的需要改变它
b2Vec2 center = bodyA->GetPosition();
int smoothness = 1000;
int radius = 100;
for (int i = 0; i < smoothness; i++) {
float angle = (i / smoothness) * 360 * DEGTORAD;
b2Vec2 pos( sinf(angle), cosf(angle));
b2Vec2 newposition = center + radius * pos;
bodyB->SetTransform(newposition, bodyB->GetAngle());
}
将B的定位点放在A的定位点的位置,然后在动画中将B旋转360。此父子解决方案是可行的。对于碰撞检测,可以使用convertToNodeSpace和convertToWorldSpace获取旋转位置的绝对坐标。此外,如果需要边界框碰撞,只需使用boundingBox属性即可。啊哈,是的,谢谢。它现在可以工作了: