私はパスとSKShapeNodeを持っており、SKShapeNodeをパスに従うようにしたいと考えています(六角形)。SKActionの開始位置の変更を繰り返します。
let pathHexagon:SKShapeNode = SKShapeNode()
let player:SKShapeNode = SKShapeNode()
pathHexagon.path = playerHexagonPath(pathHexRadius)
pathHexagon.position = CGPoint(x: CGRectGetMidX(frame), y: CGRectGetMidY(frame))
pathHexagon.strokeColor = UIColor.blackColor()
pathHexagon.lineWidth = 5
addChild(pathHexagon)
player.path = playerPath(playerSize)
player.position = CGPoint(x: CGRectGetMidX(frame), y:CGRectGetMidY(frame))
player.strokeColor = UIColor.blackColor()
player.fillColor = UIColor.blackColor()
addChild(player)
let action = SKAction.followPath(playerHexagonPath(pathHexRadius), speed: CGFloat(300.0))
player.runAction(SKAction.repeatActionForever(action))
それは多少動作しますが、開始位置は、サイクルごとに変更されます。
ですが、なぜでしょうか?
最終的に私はこのアニメーションをユーザー入力にリンクしたいと思います。練習として、私はスーパーヘキサゴンを複製しようとしています。だからあなたがこのより良いアプローチを知っていれば私にも知らせてください。
[+ followPath:asOffset:orientToPath:スピード:](https://developer.apple .com/library/mac/documentation/SpriteKit/Reference/SKAction_Ref/index.html#// apple_ref/occ/clm/SKAction/followPath:asOffset:orientToPath:speed :)メソッドを呼び出し、 'offset'パラメータを' false'に設定します。 '+ followPath:speed:'メソッドを呼び出すことは 'followPath:asOffset:orientToPath:speed:'メソッドを呼び出し、 'offset'と' orient'パラメータの両方に 'true'を渡すのと同じです。 – Whirlwind
私は投稿しました[こちら](http://stackoverflow.com/a/35991232/3402095) – Whirlwind
@Whirlwindありがとうございました。それは実際にそれがもはやすべてのサイクルをシフトさせないようにします。しかし、今はオフスクリーンのどこかを動かす(左下に)。開始位置は間違っているようです。 player.positionを無効にしても効果はありません。 – SecondLemon