0
에서 "이미 부모가있는 SKNode을 추가 Attemped"나는 내가 꽃을 생성하기 위해 사용하고이 함수는 임의의 위치에서 매 초마다 객체가 있습니다는 스위프트
func spawnFlower() {
//Create flower with random position
let tempFlower = Flower()
let height = UInt32(self.size.height/2)
let width = UInt32(self.size.width/2)
let randomPosition = CGPoint(x: Int(arc4random_uniform(width)), y: Int(arc4random_uniform(height)))
tempFlower.position = randomPosition
var tooClose = false
flowerArray.append(tempFlower)
// enumerate flowerArray
for flower in flowerArray {
// get the difference in position between the current node
// and each node in the array
let xPos = abs(flower.position.x - tempFlower.position.x)
let yPos = abs(flower.position.y - tempFlower.position.y)
// check if the spawn position is less than 10 for the x or y in relation
// to the current node in the array
if (xPos < 10) || (yPos < 10) {
tooClose = true
}
if tooClose == false {
//Spawn node
addChild(tempFlower)
}
}
}
나는 꽃에 대한 새로운 인스턴스를 생성하고 모든 시간은 함수가 호출,하지만 난 아래와 같이 함수를 호출 어떤 이유로, 그것은 나에게 오류를 제공한다 :
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attemped to add a SKNode which already has a parent:
spawnFlower() 함수는 매 초마다 호출된다. 처음 호출 될 때 작동하고 두 번째로 충돌합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
감사합니다. tooClose가 매번 true로 설정 되었기 때문에 if 문 안에 flowerArray.append (tempFlower) 행을 추가해야했습니다. – 5AMWE5T