このプロジェクトのインスピレーションは、最近の桜の季節から来ています。そのため、関連する画面を作成したいと思います。
結果は以下の通りです:
音楽付き:
class ViewController: UIViewController {
func sakutaEmitterCell() {
let sakutaEmitterCell = CAEmitterCell()
sakutaEmitterCell.contents = UIImage(named: "sakura_fubuki")?.cgImage
sakutaEmitterCell.birthRate = 3
sakutaEmitterCell.lifetime = 20
sakutaEmitterCell.velocity = 100
sakutaEmitterCell.scale = 0.5
sakutaEmitterCell.scaleRange = 0.3
sakutaEmitterCell.yAcceleration = 70
sakutaEmitterCell.emissionRange = CGFloat.pi
let sakuraEmitterLayer = CAEmitterLayer()
sakuraEmitterLayer.emitterCells = [sakutaEmitterCell]
sakuraEmitterLayer.emitterPosition = CGPoint(x: view.bounds.width / 2, y: -50)
sakuraEmitterLayer.emitterSize = CGSize(width: view.bounds.width, height: 0)
sakuraEmitterLayer.emitterShape = .cuboid
view.layer.addSublayer(sakuraEmitterLayer)
}
let player = AVPlayer()
override func viewDidLoad() {
super.viewDidLoad()
// ビューの追加設定
view.backgroundColor = UIColor(red: 255, green: 255, blue: 255, alpha:0.4)
sakutaEmitterCell()
let SakuraSongUrl = Bundle.main.url(forResource: "Spring – Sakura Girl (No Copyright Music)", withExtension: "mp3")!
let playerItem = AVPlayerItem(url: SakuraSongUrl)
player.replaceCurrentItem(with: playerItem)
player.volume = 1
player.play()
}
}
機能概要
桜の花びらのアニメーション:CAEmitterLayerとCAEmitterCellを使用して、リアルな桜の花びらの落ちるエフェクトを作成します。
背景音楽の再生:
AVFoundationのAVPlayerを使用して背景音楽を再生し、春の雰囲気を追加します。
インターフェースデザイン:
Storyboardを使用して桜を持つ女の子の画像を追加し、視覚効果を向上させます。
桜の花びらのエフェクト
まず、CAEmitterCellを定義して桜の花びらの外見と挙動を指定します。例えば、発生率、寿命、速度、サイズ、加速度、放射範囲などです。次に、CAEmitterLayerで発射器の位置、サイズ、形状、含まれる発射ユニットを指定します。