我是编程的初学者,我一直在尝试围绕另一个物体制作一个物体轨道(或者只是围成一圈)。但我还没有成功。有什么想法吗?
答案 0 :(得分:0)
您需要一些常量来指定半径和速度:
const float speed = 100.0f;
const float radius = 50.0f;
你还需要一些变量来存储角度:
float angle;
- (void)updateObject:(NSTimeInterval)dt
{
angle += speed * dt;
angle = fmodf(angle, 360.0f);
float x = cosf(DEGREES_TO_RADIANS(angle)) * radius;
float y = sinf(DEGREES_TO_RADIANS(angle)) * radius;
float newXPosition = _yourSprite.position.x + x;
float newYPosition = _yourSprite.position.y + y;
//Assign the values to your sprite
_yourSprite.position = ...
}
答案 1 :(得分:0)
尝试使用SKPhysicsJointLimit
连接两个节点,第一个节点不可移动(可能不是动态的),将第二个节点的线性阻尼设置为零并禁用其上的引力。当然,它也不应该与任何其他物体发生碰撞。当关节被拉伸到最大值并且你对两个物体之间的连接施加垂直脉冲时,物体应该开始围绕另一个物体进行轨道运动。
我没有测试过这个。