SwiftとSpriteKitを使って1分でゲームを作る

  • 107
    Like
  • 1
    Comment
More than 1 year has passed since last update.

Swift+SpriteKit

WWDC2014で iOSアプリの新たな開発言語である「Swift」が登場しました。
今回はゲームのフレームワーク「SpriteKit」を使って簡単なゲームを作ってみたいと思います。

Xcode6 Beta をダウンロードします.

iOSDevCenterからDLできます。
(iOS Developer Programへの登録(有償)が必要です)
https://developer.apple.com/devcenter/ios/index.action

iOS>Application>Gameを選択します

スクリーンショット 2014-07-03 23.17.42.png

ProductNameを適当に入力、Languageに「Swift」を選択、GameTechnologyを「SpriteKit」にします

スクリーンショット 2014-07-03 23.18.15.png

プロジェクトが開きます。

今回使用するのはGameScene.swift(ゲームロジック)です。確認してみましょう。

画像を用意してプロジェクトフォルダにDrag&Dropで突っ込みます。入れた画像は右下のwindowに表示されます。

スクリーンショット 2014-07-04 0.49.42.png

画像を移動するときはCopy Imagesにチェックを入れるようにしましょう

スクリーンショット 2014-07-04 0.49.49.png

必要な画像はすべて読み込みます

スクリーンショット 2014-07-04 0.49.57.png

今回は「シアンのゆりかご」
http://cyanyurikago.web.fc2.com/
からフリーの画像素材
背景 "bg-space1.png"
プレイヤー "thunderbird.png"をお借りしました。
ターゲットマーカーはお手製です。 "marker.png"
marker.png

GameScene.swiftにゲームロジックを書きます。

(ユーザーがタップした場所にターゲットマーカーが表示され、
それに追従してプレイヤーが移動するという簡単なゲームサンプルです)

import SpriteKit

class GameScene: SKScene {

    var player : SKSpriteNode!
    var targetMarker : SKSpriteNode!

    override func didMoveToView(view: SKView) {
        //背景画像。SKSPriteNodeで画像を読み込む。
        let backGround = SKSpriteNode(imageNamed:"bg-space1.png")
        self.addChild(backGround)
        backGround.position = CGPointMake(500,300)

        //画面をタッチした場所を示すターゲットマーカー
        self.targetMarker = SKSpriteNode(imageNamed:"marker.png")
        self.addChild(targetMarker)
        self.targetMarker.position = CGPointMake(300,300)

        //プレイヤーとなるキャラクター画像
        self.player = SKSpriteNode(imageNamed:"thunderbird.png")
        self.addChild(player)
        self.player.position = CGPointMake(300,300)
    }

    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
        /* Called when a touch begins */
        for touch: AnyObject in touches {
            let location = touch.locationInNode(self)
            //タッチした場所にターゲットマーカーを動かす
            self.targetMarker.position = location
        }
    }

    override func update(currentTime: CFTimeInterval) {
        /* Called before each frame is rendered */
        //ターゲットマーカーの場所にプレイヤーを移動させる。
        if(self.player.position.x < self.targetMarker.position.x){
            self.player.position.x += 1;
        }else if(self.player.position.x > self.targetMarker.position.x){
            self.player.position.x -= 1;
        }
        if(self.player.position.y < self.targetMarker.position.y){
            self.player.position.y += 1;
        }else if(self.player.position.y > self.targetMarker.position.y){
            self.player.position.y -= 1;
        }
    }
}

シュミレーターで実行してみます。

ぉぉお、動いたー!
スクリーンショット 2014-06-06 18.16.27.png

おしまい

ということで、SwiftとSpriteKitを使えば、非常に簡単にiOS用のゲームを作成することができます。
Cocos2d-xを使っていた人などは違和感なく使うことができそうです。Let's enjoy Swift!!