2016-09-11 6 views
1

저는 SpriteKit을 배우는 과정, 특히 기존 SKSpriteNode에 SKEmitterNode 효과를 적용하는 방법을 배우고 있습니다.SKEmitterNode "영역"크기 제어?

입자 편집기에서 놀고 간단한 "비"입자를 만들었습니다. 나는 다음과 같이 내 게임에서 기존 스프라이트에 그 연결 :

let emitter = SKEmitterNode(fileNamed: "RainParticle.sks") 
emitter?.targetNode = dogSprite 
// dogSprite is just an SKSpriteNode 
dogSprite.addChild(emitter!) 

는 내가 얻을 것은이처럼 보이는 효과 : 내가 기대하는 것처럼 입자 효과가 적용

enter image description here

그리고 효과는 제가하려고하는 것입니다. 내가 바꾸고 싶은 것은 입자 효과의 "영역"뿐입니다.

개 스프 라이트는 대략 60x50입니다. 강아지 스프라이트 맨 아래에서 입자 효과를 "차단"하고 싶습니다. 다시 말해, 나는 입자가 개 스프라이트의 "타일"외부로 이동하는 것을 원하지 않습니다.

에미 터의 등록 정보를 변경하여이 작업을 수행 할 수 있습니까? 아니면 다른 각도에서이 문제를 해결해야합니까? 정말 고마워!

(아무도 눈치 채지 못할 경우를 대비하여이 작품은 상업적 프로젝트가 아닙니다. 웹에서 배우기를 좋아하는 일부 스프라이트를 간단히 움켜 잡았습니다. 라이센스를 준수해야합니다.)

답변

0

xCode 입자 편집기의 일부 설정을 가지고 놀아야 할 것입니다. 가장 가능성이에 대한 관련성 수 있습니다

값은

1) 수명에게 있습니다

2) PositionRange (Y)

또한 그게 전부 경우 입자 효과의 규모를 변경할 수있는 너는 필요해. 나는이

1

당신은 단순히이 예제와 같은 SKCropNode을 만들 수 있습니다 코드에서

emitter.setScale(...) 

희망을 이렇게 :

// initialize the SKCropNode 
let cropNodeDog = SKCropNode.init() 

// create the dog sprite and give a position 
let dogSprite = SKSpriteNode(imageNamed: "dogSprite.png") 
dogSprite.position = CGPoint(x: CGRectGetMidX(self.frame),y:CGRectGetMidY(self.frame)) 

// create the SKEmitterNode and give a high zPosition 
emitter = SKEmitterNode(fileNamed: "RainParticle.sks") 
emitter.zPosition = 2 

// Define the SKCropNode mask and add elements to it 
cropNodeDog.maskNode = dogSprite 
cropNodeDog.addChild(dogSprite) 
cropNodeDog.addChild(emitter) 

//Finally add the SKCropNode to the scene 
addChild(cropNodeDog) 

당신은 Apple docs-SKCropNode에 대한 자세한 내용을 확인할 수 있습니다.

+0

SKCropNode를 지적 해 주셔서 감사합니다. 원하는 동작처럼 보입니다. 하지만, 당신의 예제와 비슷하게 연결하려고했는데 이미 터가 나타나지 않습니다. – bitops

+1

이미 터와 dogsprite에 대한 zPositions를 수정 해보십시오. –

+0

사실 iOS에서 버그 일 수 있습니다! http://www.openradar.me/22821166 – bitops