Вот мой рабочий код.
import SpriteKit
let player = SKNode()
let playerTopLeft = SKSpriteNode(color: UIColor.yellowColor(), size: CGSizeMake(20, 20))
let playerTopRight = SKSpriteNode(color: UIColor.yellowColor(), size: CGSizeMake(20, 20))
let playerBottomRight = SKSpriteNode(color: UIColor.yellowColor(), size: CGSizeMake(20, 20))
let playerBottomLeft = SKSpriteNode(color: UIColor.yellowColor(), size: CGSizeMake(20, 20))
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
backgroundColor = SKColor.blackColor()
player.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))
addChild(player)
playerTopLeft.position = CGPoint(x:-40, y:-40)
player.addChild(playerTopLeft)
playerTopRight.position = CGPoint(x:40, y:-40)
player.addChild(playerTopRight)
playerBottomRight.position = CGPoint(x:40, y:40)
player.addChild(playerBottomRight)
playerBottomLeft.position = CGPoint(x:-40, y:40)
player.addChild(playerBottomLeft)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch in touches {
let rotate = SKAction.rotateByAngle(CGFloat(-M_PI_2), duration:1)
player.runAction(rotate)
}
}
}
Просто поместите SKSpriteNodes внутри SKNode и вращать, что SKNode – Whirlwind
@Whirlwind предложение должно работать. Ты пробовал? – Stefan
@ Предложение Whirlwind зависит от того, как вы хотите, чтобы спрайты вращаются. Если вы ищете, чтобы спрайты оставались в направлении вверх, пока вы вращаетесь по кругу, вам нужно будет применить еще одну математику, чтобы исправить проблему, но если вы хотите, чтобы спрайт вращался с квадратом, тогда сделайте то, что Вихрь предполагает – Knight0fDragon