프로그래밍 방식으로 SKSpriteNode를 여러 개 만들었습니다. 그들 중 일부는 주위를 돌아 다니고 싶습니다. 일부는 고정되어 있어야합니다 (고정 된 위치를 가짐). 노드에 물리를 추가 할 때 (충돌 감지를 수행 할 수 있어야합니까?) physicsBodyXXXX.dynamic = false
을 설정하면 다른 객체를 이동할 때 동일한 위치에 머무르게됩니다. 괜찮아!고정 된 위치로 SKSpriteNode를 만드는 법 (물리 추가 후)?
하지만 정적으로 배치하려는 노드를 잡아서 이동할 수 있습니다. 어떻게 터치 기능에서 이동하고 싶지 않은 노드를 가려 낼 수 있습니까? 아니면 다른 해결책이 있습니까? 그래서
for Character in englishWord{
// Make letters:
let letterToMove = SKSpriteNode(imageNamed: "\(Character)")
//then setting size and position
var physicsBodyLetterToMove = SKPhysicsBody(rectangleOfSize: letterToMove.size)
physicsBodyLetterToMove.affectedByGravity = false
physicsBodyLetterToMove.allowsRotation = false
physicsBodyLetterToMove.dynamic = false
letterToMove.physicsBody = physicsBodyLetterToMove
self.addChild(letterToMove)
// Make empty boxes for the letters:
let letterRecBox = SKSpriteNode(imageNamed: "EmptyBox")
//then setting size and position
var physicsBodyLetterRecBox = SKPhysicsBody(rectangleOfSize: letterRecBox.size)
physicsBodyLetterToMove.affectedByGravity = false
physicsBodyLetterRecBox.dynamic = false
letterRecBox.physicsBody = physicsBodyLetterRecBox
self.addChild(letterRecBox)
}
:
는 가 여기에 자동 생성 노드에 대한 내 코드 (override func didMoveToView(view: SKView)
에서의 ... 노드의 위치가 고정 만든
static
같은 속성을 찾을려고했는데, 그것을 찾을 수 없습니다 터치의 FUNC 년대 :
var selected: [UITouch: SKNode] = [:]
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
/* Called when a touch begins */
selected = [:]
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
selected[touch as UITouch] = nodeAtPoint(location)
}
}
override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
for (touch, node) in selected{
if !contains([self], node){
let action = SKAction.moveTo(location, duration: 0.1)
node.runAction(SKAction.repeatAction(action, count: 1))
}
}
}
}
어떤 생각