6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Qiita全国学生対抗戦Advent Calendar 2023

Day 4

【SwiftUI】SpriteKitでうんこの雨を降らす

Posted at

はじめに

SpriteKitを今まで触ったことがなかったので入門してみました。
実用的なのを作っても面白くないのでうんこを降らせてみました。

サンプルアプリ

Simulator Screen Recording - iPhone 15 - 2023-12-04 at 22.38.33.gif

フリーのうんこ

今回はこちらのうんこを使用します。

unchi_character.png

やりかた

SpriteKitと検索します。
SpriteKit Particle Fileを選択します。
③ 「Next」を選択します。
スクリーンショット 2023-12-04 22.16.19.png

④ 「Show」を選択します。
⑤ 「Next」を選択します。
スクリーンショット 2023-12-04 22.18.56.png

⑥ ファイル名を指定します(今回はUnkoParticleにしました)
⑦ 「Create」を選択します。
スクリーンショット 2023-12-04 22.20.57.png

⑧ Assetsの中に「Particle Sprite Atlas」というフォルダができていると思うので、そこにうんこを投入します。
スクリーンショット 2023-12-04 22.29.01.png

⑨ 「UnkoParticle」を選択します。
⑩ 「Texture」にUnkoを指定します。
スクリーンショット 2023-12-04 22.30.51.png

⑪ ちょっと大きかったので「Scale」に0.005を指定して小さくします。
スクリーンショット 2023-12-04 22.33.41.png

⑪ 実装します

import SwiftUI
import SpriteKit

struct ContentView: View {
    var body: some View {
        GeometryReader { geometryProxy in
            SpriteView(scene: scene(size: geometryProxy.size))
        }
    }
    
    private func scene(size: CGSize) -> SKScene {
        let emitterNode = SKEmitterNode(fileNamed: "UnkoParticle")!
        let scene = SKScene()
        scene.addChild(emitterNode)
        scene.size = size
        scene.anchorPoint = .init(x: 0.5, y: 1)

        return scene
    }
}

おわり

うんこが降ってきましたね大成功

参考記事

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?