1
원의 일부를 나타내는 특정 경로가있는 SKShapeNode의 텍스처를 통해 SKSpriteNode를 초기화하고 표시하고 있습니다. 이이 모양을 생성곡선 SKSpriteNode의 "중심"점을 계산하는 방법은 무엇입니까?
import SpriteKit
import PlaygroundSupport
let view = SKView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
let scene = SKScene(size: view.frame.size)
view.presentScene(scene)
let radius: CGFloat = view.frame.width * 0.40
var length: CGFloat = (.pi * 2.0)/8.0
var width: CGFloat = radius/5.0
var path: CGPath {
let path = UIBezierPath(arcCenter: view.center, radius: radius, startAngle: 0.0, endAngle: length, clockwise: true)
path.addArc(withCenter: view.center, radius: radius - width, startAngle: length, endAngle: 0.0, clockwise: false)
path.close()
return path.cgPath
}
let shapeNode = SKShapeNode(path: path)
shapeNode.fillColor = .white
let texture = view.texture(from: shapeNode)!
let spriteNode = SKSpriteNode(texture: texture, color: .white, size: texture.size())
spriteNode.position = CGPoint(x: shapeNode.frame.midX, y: shapeNode.frame.midY)
scene.addChild(spriteNode)
PlaygroundPage.current.liveView = view
: 아래는 내가 놀이터를 사용하여 발생하고있어 모양의 예입니다
내가 내 중앙에 작은 아이 SKSpriteNode을 추가 할 상기 만곡 노드의 폭 중앙 아크 점에서 매우 같은
토륨 전자 내가 spriteNode의 위치를 사용하고 올 수있는 가장 가까운이 가까이 뭔가를 생산
let childNode = SKSpriteNode(color: .red, size: CGSize(width: 5, height: 5))
childNode.position = spriteNode.position
scene.addChild(childNode)
을하지만, 완전히 잘못된 프레임, 사용하고 :
는 내가 필요 있으리라 믿고있어를 호의 경로로 무언가를하십시오. 그러나 나는 어떻게 확신 할 수 없습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있을까요? 내가 해결하기 위해 몇 가지 기본적인 삼각에 경로와 새로 고침을 사용하여 피할 의견에
SKShapeNode에서 컴퓨팅은 문제가있다. -하지만 당신은 중심으로부터의 거리와 각도를 안다. 나머지는 기본 삼각법입니다. –
재미있게 즐겨보세요 https://en.wikipedia.org/wiki/Centroid – Knight0fDragon
때로는 답을 듣는 것이 쉽지 않다는 이야기를 들으면됩니다. 감사! – Aaron