11
5

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 3 years have passed since last update.

【Swift】 SpriteKit 入門 ①

Last updated at Posted at 2021-01-12

SpriteKitの使い方を解説します。
まずは画像を表示させてみます。
(環境:Xcode12.1  Swift5.3)

SpriteKit入門①
SpriteKit入門②
SpriteKit入門③
SpriteKit入門④
SpriteKit入門⑤

##SpriteKitの概要
SpriteKitは2Dのアニメーションやゲームを作成するためのフレームワークです。
RootNodeとなるSceneに各種Nodeを追加していくことで画面上に図形などを表示させることができます。Nodeの種類には次のようなものがあります。また、各NodeにAction(SKAction)を追加することによりアニメーションを追加することができます。

  • SKScene(RootNode)
  • SKSpriteNode(図形の描画)
  • SKLabelNode(テキストの描画)
  • SKEmitterNode(パーティクルの描画)

SpriteKitを用いてアプリを作成する手順はざっくり次の通りです。

  1. SpriteKitSceneファイルを作成※
  2. Sceneに対応するクラスを作成
  3. SceneにNode等を追加していく

※Sceneを作成する方法は、コードで書く方法とSpriteKitSeenファイルを用いる方法があります。後者の方法の場合、Storyboard上でUIパーツを配置するのと同様に画面を作成していくことができます。

##画像を表示させる
SpriteKitを使って画像を表示させて見ましょう。
###1.プロジェクト作成
プロジェクトを作成します。ここではgameではなくappを選択しています。またInterfaceはStoryboardにしています。
SK1.png

続いてSpriteKitSceneファイルを作成します。
SK2.png

これが作成したScene(MyScene.sks)になります。
SK3.png

###2.Sceneに対応するクラスを作成

MyScene.sksに対応するMySceneクラスをを作成します。ここでは新たにSwiftファイルを追加してクラスを作成しています。作成したクラスはMyScene.sksのカスタムクラスに設定します。
SK4.png

MyScene.swift
import SpriteKit

class MyScene: SKScene {
    
    override func sceneDidLoad() {
        //sceneが呼ばれたときの処理
    }
}

SK5.png

###3.MySceneにSpriteNodeを追加
まず、使用する画像を読み込みます。

sampleImage.png

SK6.png

次にMyScene.sksファイルに移動へし、ColorSpriteを追加します。
SK7.png

読み込んだTextureを設定します。これでMySceneにSpriteNodeを追加が完了しました。
SK8.png

続いてViewController.swiftファイルへ移動し、以下のコードを書きます。import SpriteKitを忘れないようにしてください。今回は画像にアニメーション等を加えないのでMyScene.swiftファイルの方は特に加筆しなくてOKです。

ViewController.swift
import UIKit
import SpriteKit

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        //SKViewの作成
        if let skView = SKView(frame: self.view.frame) as SKView? {
            //SKViewにSKSceneを追加
            if let scene = MyScene(fileNamed: "MyScene") {
                //SKSceneのサイズを設定
                scene.scaleMode = .aspectFill
                //SKViewにSKSeenを追加
                skView.presentScene(scene)
                //UIViewにSKViewを追加
                self.view.addSubview(skView)
            }
        }
    }
}

それでは実行してみましょう。以下のように画像が表示されていれば成功です。

SK9.png

次回は画像をドラッグして動かせるようにしてみようと思います。

###参考

この記事は以下の情報を参考にして執筆しました。

11
5
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
11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?