我正在制作游戏,我希望敌人绕圈移动,但敌人也应该不断向左移动。我尝试使用 CGPath 创建一个圆形路径并使其遵循该路径,然后添加一个不断向左移动的 SKAction。但节点似乎只是沿着 CGPath 没有向左移动。
有没有其他方法可以做到这一点?
这是我目前的代码:
CGMutablePathRef circle = CGPathCreateMutable();
CGPathAddArc(circle, NULL, 0, 0, 80, 0, 2*M_PI, true);
CGPathCloseSubpath(circle);
SKAction *followTrack = [SKAction followPath:circle asOffset:NO orientToPath:NO duration:1.5];
SKAction *forever = [SKAction repeatActionForever:followTrack];
[enemy runAction:[SKAction moveByX:-1000 y:0 duration:3.0]];
[enemy runAction:forever];
最佳答案
您不能使用 2 个移动操作移动同一个节点。您可以做的是将节点放在容器节点中。然后将容器节点向左移动,同时其子节点绕圈移动。
另一种选择是不使用 SKActions 并通过手动计算向心速度并超时移动向心点来使用更动态和实时的东西。你可以在我的回答中看到这样的例子 here .
关于ios - SKSpriteNode 跟随 CGPath 加上 SKAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31479096/