【发布时间】:2014-09-08 17:20:59
【问题描述】:
我制作了一个小 SpriteKit 游戏,其中敌人正在跟随 UIBezierPath。 (顺便说一句,还有其他方法可以做到这一点吗?这似乎很没有生产力)
反正我的敌人表现得很奇怪。这是一个直径为 300 的简单圆的代码:
enemy.position = CGPointMake(0, 0);
UIBezierPath* circlePath = [UIBezierPath bezierPathWithOvalInRect: CGRectMake(0, 0, 300, 300)];
CGPathRef pathRef = [cicrlePath CGPath];
SKAction *followPath = [SKAction followPath:pathRef
asOffset:NO
orientToPath:NO
duration: pathSpeed];
SKAction *forever = [SKAction repeatActionForever:followPath];
[enemy runAction:forever];
现在看看我是如何在 (0,0) 指定敌人位置和 circlePath 位置的?
不知何故,它给了我这个结果:http://www.gfycat.com/DistinctSnarlingAracari
我认为这不太合理,因为它不合时宜?还是我错过了什么?
哦,就像我之前提到的,我怎样才能以最有效/最高效的方式为我的游戏进行敌人移动?我目前正在使用带有 UIBeziers 的 PaintCode,但它总是给我一个奇怪的结果。我真的很期待你的回答..
【问题讨论】:
-
您的 GIF 到底有什么问题?如果您认为“1”图标放错了位置,您希望它在哪里?
-
好吧,因为 Sprite Kit 场景的默认锚点位于左下角(如此处所示:developer.apple.com/library/ios/documentation/GraphicsAnimation/…)我希望 1 仅在左下角可见编辑:我刚刚意识到我的错:我认为它会使用 BezierPath 的中心来定位它的路径..
标签: objective-c sprite-kit nodes uibezierpath cgpath