한 번에 두 개의 동일한 스프라이트를 사용할 수 있는지 궁금합니다. 내 문제는 구름과 관련이 있습니다. 두 개의 구름 스프라이트가 화면을 가로 질러 움직입니다. Cloud1 및 Cloud2. 첫 클라우드 1이 화면 중간에있을 때 다른 Cloud1이 스폰되기를 원합니다. 또한 첫 번째 Cloud1이 화면 끝에 도달하면 제거해야합니다. 스프라이트를 사용하는 것이 가능합니까 아니면 텍스처를 사용해야합니까?스프라이트 추가 및 제거
override func update(currentTime: CFTimeInterval) {
var moveCloud1 = SKAction.moveByX(-CGRectGetMidX(self.frame)*3, y:0, duration: 45)
var moveCloud2 = SKAction.moveByX(-CGRectGetMidX(self.frame)*3, y:0, duration: 60)
if(cloudSprite1.frame.origin.x < self.frame.size.width/2){
let cloudSprite1a = SKSpriteNode(texture: cloudTexture1)
self.addChild(cloudSprite1a)
cloudSprite1a.position = CGPoint(x:CGRectGetMidX(self.frame)*2.4, y:CGRectGetMidY(self.frame)*1.8);
cloudSprite1a.size = CGSize(width: 75, height: 60)
cloudSprite1a.runAction(moveCloud1)
}
}
.
self.addCloudSprite1(CGPointMake(100, 500))
self.addCloudSprite2(CGPointMake(100, 300))
}
func addCloudSprite1(position : CGPoint)
{
cloudSprite1a.position = CGPoint(x:CGRectGetMidX(self.frame)*2.4, y:CGRectGetMidY(self.frame)*1.8);
self.addChild(cloudSprite1a)
var moveCloud1 = SKAction.moveByX(-CGRectGetMidX(self.frame)*2.8, y:0, duration: 40)
cloudSprite1a.runAction(moveCloud1, completion: {() -> Void in
cloudSprite1a.removeFromParent()
self.addCloudSprite1(position)
})
}
func addCloudSprite2(position : CGPoint)
{
cloudSprite2a.position = CGPoint(x:CGRectGetMidX(self.frame)*2.4, y:CGRectGetMidY(self.frame)*1.5);
cloudSprite2a.size = CGSize(width: 75, height: 60)
self.addChild(cloudSprite2a)
var moveCloud2 = SKAction.moveByX(-CGRectGetMidX(self.frame)*2.6, y:0, duration: 60)
cloudSprite2a.runAction(moveCloud2, completion: {() -> Void in
cloudSprite2a.removeFromParent()
self.addCloudSprite2(position)
})
}
스프라이트에 텍스처가 표시되는 경우 질문은 스프라이트와 텍스처가 혼동 스럽다는 것을 나타냅니다. 첫 번째와 같은 방법으로 다른 클라우드 스프라이트를 만드십시오. – LearnCocos2D