이 루프는 정상적으로 작동하지만 배열의 이미지를 한 세트 씩 다른 시퀀스에 넣고 싶습니다. 나는 루프에 추가 한이 SKAction을 만든for 루프의 addChild가 지연되어 오류가 발생했습니다! Swift
if transitionSprite.name == nil || transitionSprite.name == "rd-d2c" || transitionSprite.name == "rd-f2c" {
for (index, roadImage) in cityArrays[randomIndex].enumerated() {
roadSprite = SKSpriteNode(imageNamed: roadImage)
roadSprite.anchorPoint = CGPoint(x: 0.5, y: 0.5)
roadSprite.position = CGPoint(x: 0, y: CGFloat(screenCounter) * roadSprite.size.height)
roadSprite.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: self.size.width, height: self.size.height))
roadSprite.physicsBody?.categoryBitMask = PhysicsCategory.RoadImageCategory.rawValue
roadSprite.physicsBody?.collisionBitMask = PhysicsCategory.NoCollisionsCategory.rawValue
roadSprite.physicsBody?.contactTestBitMask = PhysicsCategory.BroomCategory.rawValue
roadSprite.physicsBody?.affectedByGravity = false
roadSprite.zPosition = 1
roadSprite.name = "Road \(index)"
// RUNNING THE SKACTION DELAY ON THIS
self.addChild(roadSprite)
addCollectables()
addJerryCans()
if roadImage == "rdc-02_05" {
addBackgroundDetail(detailType: "cityBridge2")
}
screenCounter += 1
}
,
loopDelay = SKAction.wait(forDuration: Double(index + 1))
let addRoad = SKAction.run {self.addChild(self.roadSprite)}
let action = SKAction.sequence([loopDelay, addRoad])
self.run(action)
하지 내가 그것을 만든 SKAction 지연을 실행할 때이 원인이 있지만 것이 무엇인지 충돌이 발생하고이 오류가 발생합니다.
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'Attemped to add a SKNode which already has a parent:
<SKSpriteNode> name:'Road 4' texture:[<SKTexture> 'rdc-02_05' (750 x
1334)] position:{0, 6670} scale:{1.00, 1.00} size:{750, 1334}
anchor:{0.5, 0.5} rotation:0.00'
왜 지연이 원인입니까? 감사합니다
와우는 간단했습니다. 실제로이 시간을 얼마나 소비했는지 조금 당황 스럽습니다. 고마워요, 시간을 절약 할 수 있어요! – Dave
도움이 되니 기쁩니다;) – tanzolone