Как вращать узел вокруг точки вне объекта (т.е. не вращать вокруг центральной точки объекта) - PullRequest
0 голосов
/ 19 февраля 2020

Что у меня сейчас , моя игра загружается на симуляторе на XCode, как и должно, но когда я нажимаю на экран, «basi c Top» не вращается. Basi c top - это один из четырех треугольников, составляющих квадрат.

Что я хочу Для того, чтобы этот квадрат вращался, мне нужно заставить все четыре треугольника вращаться. Прямо сейчас, basi c top не вращается, даже когда я нажимаю на экран. Как только я получу поворот поворота basi c top, я могу скопировать код для других треугольников, чтобы сделать квадрат, который вращается. Мне нужно, чтобы все эти четыре треугольника вращались вокруг определенной точки.

Код

class GameScene: SKScene { 
var brickSwitch: SKSpriteNode!
var basicTop = SKSpriteNode(imageNamed: "Top Side");
var basicBottom: SKSpriteNode!
var basicLeft: SKSpriteNode!
var basicRight: SKSpriteNode!   
override func didMove(to view: SKView) {
layoutScene()     
}

func turnBasicTop() {
  basicTop.isUserInteractionEnabled = true
  basicTop.run(SKAction.rotate(byAngle: .pi/2, duration: 0.25))
}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    turnBasicTop()
}

func spawnBasicTop() {
let basicTop = SKSpriteNode(imageNamed: "basic top")
basicTop.size = CGSize(width: 400, height: 400)
basicTop.position = CGPoint(x: 230, y: 200)
basicTop.zPosition = 1

basicTop.physicsBody = SKPhysicsBody(rectangleOf: basicTop.size)
basicTop.physicsBody?.categoryBitMask = PhysicsCategories.basicTopCategory
basicTop.physicsBody?.isDynamic = false
basicTop.physicsBody?.allowsRotation = true

addChild(basicTop)
}
...