CoreAnimation 파티클을 Swift3에서 사용해 보았습니다.
(파라미터를 바꾸면 폭발이나 비 등 다양한 연출을 할 수 있다)
참고로 한 사이트는 모두 Objective-C이었으므로, xcode8상에서 swift3로 고쳤습니다.
SpriteKit의 view를 ViewController에 올리는 방법도 있는 것 같아서 시도해 보았습니다만, 파티클 파일을 만들어, SKScene 파일을 만들어, 그것을 ViewController에 연결해...등 수고가 많이 귀찮았습니다. (게임 연출을 많이 사용한다면 번거롭게 하는 의미는 있다고 생각하지만)
【참고 링크】 SpriteKit과 UIKit을 결합하여 조금 풍부한 연습 화면을 만들고 싶습니다.
SpriteKit을 싣는 것은 조금 번거로운 것이 판명되었으므로, CoreAnimation의 파티클을 시험해 보았습니다 (CoreAnimation 처음 만졌습니다).
【참고로 한 것은 이쪽】 UIKit에서 파티클 효과 표시
매우 간단했습니다 (Obj-C도 Swift도 익숙하지 않으므로 변환하는 데 힘들었습니다).
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// viewControllerの背景を黒くして(背景白だと見づらいので)、
view.backgroundColor = UIColor.black
// CAEmitterLayer(パーティクルを載せるレイヤー)を作って、
let layer = CAEmitterLayer()
let size = view.bounds.size
layer.emitterPosition = CGPoint(x: size.width/2, y: size.height/2)
layer.renderMode = kCAEmitterLayerAdditive
// ViewControllerに載せて、
view.layer.addSublayer(layer)
// CAEmitterCell(パーティクル本体)を作って、
let cell = CAEmitterCell()
cell.contents = #imageLiteral(resourceName: "particle1").cgImage
cell.emissionLongitude = CGFloat(M_PI)*2
cell.emissionRange = CGFloat(M_PI)*2
cell.birthRate = 800
cell.lifetimeRange = 1.2
cell.velocity = 240
cell.color = UIColor(red: 0.89, green: 0.56, blue: 0.36, alpha: 0.5).cgColor
// CAEmitterLayerに載せる
layer.emitterCells = [cell]
}
}
그러나 문제가 하나. 파티클은 파라미터 조정을 하고 원하는 연출의 이미지에 도달할 때까지 힘들다. 이것을 파라미터 고쳐 빌드하고 반복해서 있으면 참을 수 없다. SpriteKit이라면 xcode에서 빌드하지 않고 조정할 수 있지만 CoreAnimation에서는 할 수없는 것 같습니다 ....
라고 생각해 모야 모야 하고 있었습니다만, 조사해 보면 이런 Mac 어플리가 있는 것 같네요.
Particle Playground
약 1000엔. 아직 사서 시험하지 않아도 어디가 있으면 편하게 만들 수 있을 것 같습니다.
Reference
이 문제에 관하여(CoreAnimation 파티클을 Swift3에서 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ika_tarou/items/a5fcfdf7dcc540006fbb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)