102
104

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

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

Last updated at Posted at 2014-06-06

##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!!

102
104
1

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
102
104

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?