에 SKNode를 회전하는 방법! Click Here To View Video of what is happening that I do not want내 SKNode이 대신 화면의 왼쪽 하단 모서리 주위에 회전 :)</p> <p><a href="https://i.stack.imgur.com/XoanY.png" rel="nofollow">Image Here</a></p> <p>아래 이미지처럼 회전 할
위의 이미지처럼 counterClockWise 또는 시계 방향을 한 위치에서 회전하려면 어떻게해야합니까?
나를 도와 줄 수있는 누군가를 미리 감사드립니다. 앵커 포인트를 변경해야하는지 확실하지 않은 경우 ... 감사합니다.
다음은 신속하게 내 코드입니다.
import SpriteKit
class GameScene: SKScene, SKPhysicsContactDelegate {
var top = SKSpriteNode()
var bottom = SKSpriteNode()
var line = SKSpriteNode()
var RightSide = SKSpriteNode()
var LeftSide = SKSpriteNode()
var pointBar = SKSpriteNode()
var Second_point_Bar_For_First_Hoop = SKSpriteNode()
override func didMove(to view: SKView) {
physicsWorld.contactDelegate = self
createHoop()
}
func createHoop() {
top = SKSpriteNode(imageNamed: "top")
top.position = CGPoint(x: self.frame.width/2, y: self.frame.height/2 + 15)
top.size = CGSize(width: 100, height: 60)
top.zPosition = 0
bottom = SKSpriteNode(imageNamed: "bottom")
bottom.position = CGPoint(x: self.frame.width/2, y: self.frame.height/2 - 45)
bottom.size = CGSize(width: 100, height: 60)
bottom.zPosition = 2
LeftSide = SKSpriteNode()
LeftSide.position = CGPoint(x: bottom.position.x - 40, y: bottom.position.y)
LeftSide.size = CGSize(width: 10, height: 10)
LeftSide.zPosition = 0
LeftSide.color = UIColor.blue
RightSide = SKSpriteNode()
RightSide.position = CGPoint(x: bottom.position.x + 40, y: bottom.position.y)
RightSide.size = CGSize(width: 5, height: 10)
RightSide.zPosition = 0
RightSide.color = UIColor.blue
pointBar = SKSpriteNode()
pointBar.position = CGPoint(x: bottom.position.x, y: bottom.position.y + 10)
pointBar.size = CGSize(width: 90, height: 2)
pointBar.zPosition = 100
pointBar.color = UIColor.green
pointBar.zPosition = 100
Second_point_Bar_For_First_Hoop = SKSpriteNode()
Second_point_Bar_For_First_Hoop.position = CGPoint(x: top.position.x, y: top.position.y - 10)
Second_point_Bar_For_First_Hoop.size = CGSize(width: 90, height: 2)
Second_point_Bar_For_First_Hoop.zPosition = 100
Second_point_Bar_For_First_Hoop.color = UIColor.green
Second_point_Bar_For_First_Hoop.zPosition = 100
let hoopPair = SKNode()
hoopPair.addChild(top)
hoopPair.addChild(pointBar)
hoopPair.addChild(Second_point_Bar_For_First_Hoop)
hoopPair.addChild(bottom)
hoopPair.addChild(LeftSide)
hoopPair.addChild(RightSide)
let rotate = SKAction.rotate(byAngle: 1, duration: 5)
let repeatRotation = SKAction.repeatForever(rotate)
hoopPair.run(repeatRotation)
self.addChild(hoopPair)
}
override func update(_ currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}
스티브, 보통 이것은 정확하고 upvote를주었습니다.하지만 그의 문제는 그의 앵커 포인트가 0.5,0.5로 설정되었지만 그의 노드는 모두 1 쿼드런트 (오른쪽 상단 사분면)에만 그림이 표시됩니다. 대답은 (0.75,0.75) 앵커 포인트를 1 사분면의 중심에 두거나 모든 4 사분면에 항목을 배치하는 것입니다 – Knight0fDragon
스티브, 예, y라고 생각합니다. ou는 매우 가깝습니다. :) 그것은 0,0의 앵커 포인트 주위를 돌고 있지만 나는 내 SKNode 주위에 어떤 앵커 포인트를 변경하는 방법을 알아낼 수없는 것. :) –
* node.anchorPoint = CGPoint (0.5, 0.5) * –